Merge branch 'master' into cairocanvas
[ardour.git] / tools / windows_packaging / package.sh
1 #!/bin/bash
2
3 . ./mingw-env.sh
4
5 . ./print-env.sh
6
7 cd $BASE || exit 1
8
9 if ! test -f $BUILD_CACHE_FILE; then
10         echo "ERROR: $APPNAME is not configured and built yet..."
11         exit 1
12 fi
13
14 if [ -d $PACKAGE_DIR ]; then
15         echo "Removing old package directory structure ..."
16         rm -rf $PACKAGE_DIR || exit 1
17 fi
18
19 ./waf --destdir=$PACKAGE_DIR install || exit 1
20
21 echo "Moving Ardour dll's and executable to $PACKAGE_DIR ..."
22
23 mv $PACKAGE_DIR/lib/ardour3/*.dll $PACKAGE_DIR || exit 1
24 mv $PACKAGE_DIR/lib/ardour3/*.exe $PACKAGE_DIR || exit 1
25
26 echo "Deleting import libs ..."
27
28 rm $PACKAGE_DIR/lib/*dll.a
29
30 # delete sh script
31 rm $PACKAGE_DIR/ardour3
32
33 if test x$WITH_TESTS != x ; then
34         echo "Copying tests and test data to $PACKAGE_DIR ..."
35         cp $BUILD_DIR/libs/pbd/run-tests.exe $PACKAGE_DIR/pbd-run-tests.exe
36         cp -r $BASE/libs/pbd/test $PACKAGE_DIR/pbd_testdata
37
38         cp $BUILD_DIR/libs/evoral/run-tests.exe $PACKAGE_DIR/evoral-run-tests.exe
39         mkdir -p $PACKAGE_DIR/test/testdata
40         cp -r $BASE/libs/evoral/test/testdata/TakeFive.mid $PACKAGE_DIR/test/testdata
41
42         cp -r $BASE/libs/ardour/test/data $PACKAGE_DIR/ardour_testdata
43 fi
44
45 echo "Copying mingw config files to $PACKAGE_DIR ..."
46 # just copy it all for now
47 cp -r $MINGW_ROOT/etc $PACKAGE_DIR
48
49 cp -r $MINGW_ROOT/lib/gtk-2.0 $PACKAGE_DIR/lib
50 cp -r $MINGW_ROOT/lib/gdk-pixbuf-2.0 $PACKAGE_DIR/lib
51 cp $TOOLS_DIR/loaders.cache $PACKAGE_DIR/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache
52
53 mkdir -p $PACKAGE_DIR/lib/pango/1.6.0/modules
54 cp -r $MINGW_ROOT/lib/pango/1.6.0/modules/*.dll $PACKAGE_DIR/lib/pango/1.6.0/modules
55 cp $TOOLS_DIR/pango.modules $PACKAGE_DIR/etc/pango
56
57 cp $TOOLS_DIR/README $PACKAGE_DIR
58
59 DLLS='
60 jack-0.dll
61 jackserver-0.dll
62 libart_lgpl_2-2.dll
63 libatk-1.0-0.dll
64 libatkmm-1.6-1.dll
65 libbz2-1.dll
66 libcairo-2.dll
67 libcairo-gobject-2.dll
68 libcairomm-1.0-1.dll
69 libcairo-script-interpreter-2.dll
70 libcppunit-1-12-1.dll
71 libcrypto-10.dll
72 libcurl-4.dll
73 libexpat-1.dll
74 libfftw3-3.dll
75 libfftw3f-3.dll
76 libfontconfig-1.dll
77 libfreetype-6.dll
78 libgailutil-18.dll
79 libgcc_s_sjlj-1.dll
80 libgdkmm-2.4-1.dll
81 libgdk_pixbuf-2.0-0.dll
82 libgdk-win32-2.0-0.dll
83 libgio-2.0-0.dll
84 libgiomm-2.4-1.dll
85 libglib-2.0-0.dll
86 libglibmm-2.4-1.dll
87 libglibmm_generate_extra_defs-2.4-1.dll
88 libgmodule-2.0-0.dll
89 libgnomecanvas-2-0.dll
90 libgnomecanvasmm-2.6-1.dll
91 libgnurx-0.dll
92 libgobject-2.0-0.dll
93 libgthread-2.0-0.dll
94 libgtkmm-2.4-1.dll
95 libgtk-win32-2.0-0.dll
96 libharfbuzz-0.dll
97 libiconv-2.dll
98 iconv.dll
99 libFLAC-8.dll
100 libogg-0.dll
101 libvorbis-0.dll
102 libvorbisenc-2.dll
103 libffi-6.dll
104 libidn-11.dll
105 libintl-8.dll
106 liblo-7.dll
107 libpango-1.0-0.dll
108 libpangocairo-1.0-0.dll
109 libpangoft2-1.0-0.dll
110 libpangomm-1.4-1.dll
111 libpangowin32-1.0-0.dll
112 libpixman-1-0.dll
113 libpng15-15.dll
114 libsamplerate-0.dll
115 libsigc-2.0-0.dll
116 libsndfile-1.dll
117 libssh2-1.dll
118 libssl-10.dll
119 libstdc++-6.dll
120 libxml2-2.dll
121 pthreadGC2.dll
122 zlib1.dll
123 '
124
125 echo "Copying mingw shared libraries to $PACKAGE_DIR ..."
126
127 for i in $DLLS;
128 do
129 cp $MINGW_ROOT/bin/$i $PACKAGE_DIR
130 done
131
132 echo "Copying JACK server and drivers to $PACKAGE_DIR ..."
133
134 cp $MINGW_ROOT/bin/jackd.exe $PACKAGE_DIR
135 cp -r $MINGW_ROOT/bin/jack $PACKAGE_DIR
136 cp $MINGW_ROOT/bin/libportaudio-2.dll $PACKAGE_DIR
137
138 SRC_DIRS='
139 libs/ardour
140 libs/pbd
141 libs/gtkmm2ext
142 libs/midi++2
143 libs/evoral
144 libs/panners
145 libs/timecode
146 libs/audiographer
147 '
148
149 if [ x$DEBUG = xT ]; then
150
151         PACKAGE_SRC_DIR=$PACKAGE_DIR/src
152         echo "Copying source files to $PACKAGE_SRC_DIR ..."
153         mkdir -p $PACKAGE_SRC_DIR/libs
154         cp -r $BASE/gtk2_ardour $PACKAGE_SRC_DIR
155         for i in $SRC_DIRS;
156         do
157         cp -r -p $BASE/$i $PACKAGE_SRC_DIR/libs
158         done
159         
160         echo "Copying JACK utility programs to $PACKAGE_DIR ..."
161         cp $MINGW_ROOT/bin/jack_*.exe $PACKAGE_DIR
162
163         #echo "Copying any debug files to $PACKAGE_DIR ..."
164         #cp $MINGW_ROOT/bin/*.debug $PACKAGE_DIR
165
166         echo "Copying gdb and config files to $PACKAGE_DIR ..."
167         cp $MINGW_ROOT/bin/gdb.exe $PACKAGE_DIR
168         cp $TOOLS_DIR/gdbinit $PACKAGE_DIR/.gdbinit
169         cp $TOOLS_DIR/gdbinit_home $PACKAGE_DIR/gdbinit_home
170         cp $TOOLS_DIR/gdb.bat $PACKAGE_DIR/gdb.bat
171         cp $TOOLS_DIR/gdb-ardour.bat $PACKAGE_DIR/gdb-ardour.bat
172
173         echo "Copying Gtk demo to $PACKAGE_DIR ..."
174         cp $MINGW_ROOT/bin/gtk-demo.exe $PACKAGE_DIR
175 else
176         echo "Optimized build Stripping executable ..."
177         find $PACKAGE_DIR -type f -name "*.exe*" | xargs $STRIP
178         echo "Stripping libraries ..."
179         find $PACKAGE_DIR -type f -name "*.dll*" | xargs $STRIP
180 fi
181
182 if [ "$1" == "--tarball" ]; then
183         echo "Creating tarball from $PACKAGE_DIR ..."
184         cd $BASE || exit 1
185         tar -cvJf $PACKAGE_DIR.tar.xz $PACKAGE_DIR
186 fi
187
188 if [ "$1" == "--zip" ]; then
189         echo "Creating zip file from $PACKAGE_DIR ..."
190         cd $BASE || exit 1
191         zip -r $PACKAGE_DIR.zip $PACKAGE_DIR
192 fi