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