1 |
#!/bin/sh -xe |
#!/bin/sh -xe |
2 |
|
|
3 |
# This script is primarily made for the linuxsampler build server. It |
# This script is primarily made for the linuxsampler build server. It |
4 |
# copies the files created by the previous Max OS X build steps, and |
# copies the files created by the previous Max OS X build steps. Then |
5 |
# creates universal binaries from the i686, x86_64 and powerpc |
# it packs all components as a .pkg Mac installer package and finally |
6 |
# files. Finally, it packs everything in a tar.bz2 archive. |
# it wraps everything in a tar.bz2 archive. |
7 |
|
|
8 |
LIPO=x86_64-apple-darwin9-lipo |
LIPO=x86_64-apple-darwin9-lipo |
9 |
P=/home/persson/mac |
P=/home/persson/mac64 |
10 |
D=linuxsampler_`date +%Y%m%d` |
D=linuxsampler_`date +%Y%m%d` |
11 |
|
|
12 |
# command line tools shipped with libgig |
# command line tools shipped with libgig |
13 |
gigtools_bins="akaidump akaiextract dlsdump gig2mono gig2stereo gigdump gigextract gigmerge korg2gig korgdump rifftree sf2dump" |
gigtools_bins="akaidump akaiextract dlsdump gig2mono gig2stereo gigdump gigextract gigmerge korg2gig korgdump rifftree sf2dump sf2extract" |
14 |
|
|
15 |
createuniv () |
createuniv () |
16 |
{ |
{ |
17 |
$LIPO -create "$P/x86_64/$1" "$P/i686/$1" "$P/powerpc/$1" \ |
# we no longer support i686 and powerpc |
18 |
-output "$D/${2-$1}" |
# $LIPO -create "$P/x86_64/$1" "$P/i686/$1" "$P/powerpc/$1" \ |
19 |
|
# -output "$D/${2-$1}" |
20 |
|
cp -a "$P/$1" "$D/${2-$1}" |
21 |
} |
} |
22 |
|
|
23 |
|
|
33 |
createuniv lib/libogg.0.dylib |
createuniv lib/libogg.0.dylib |
34 |
createuniv lib/libvorbis.0.dylib |
createuniv lib/libvorbis.0.dylib |
35 |
createuniv lib/libvorbisenc.2.dylib |
createuniv lib/libvorbisenc.2.dylib |
36 |
createuniv lib/libFLAC.8.2.0.dylib |
createuniv lib/libFLAC.8.dylib |
|
ln -s libFLAC.8.2.0.dylib "$D/lib/libFLAC.8.dylib" |
|
37 |
createuniv lib/libsndfile.1.dylib |
createuniv lib/libsndfile.1.dylib |
38 |
createuniv lib/libgig/libgig.6.dylib lib/libgig.6.dylib |
createuniv lib/libgig/libgig.8.dylib lib/libgig.8.dylib |
39 |
createuniv lib/linuxsampler/liblinuxsampler.3.dylib lib/liblinuxsampler.3.dylib |
createuniv lib/linuxsampler/liblinuxsampler.5.dylib lib/liblinuxsampler.5.dylib |
40 |
createuniv bin/linuxsampler LinuxSampler/linuxsampler |
createuniv bin/linuxsampler LinuxSampler/linuxsampler |
41 |
createuniv bin/lscp LinuxSampler/lscp |
createuniv bin/lscp LinuxSampler/lscp |
42 |
cp README "$D" |
cp README "$D" |
44 |
|
|
45 |
# AU plugin |
# AU plugin |
46 |
|
|
47 |
cp -r "$P/i686/Components/LinuxSamplerAU.component" "$D" |
cp -r "$P/Components/LinuxSamplerAU.component" "$D" |
48 |
createuniv Components/LinuxSamplerAU.component/Contents/MacOS/LinuxSamplerAU LinuxSamplerAU.component/Contents/MacOS/LinuxSamplerAU |
createuniv Components/LinuxSamplerAU.component/Contents/MacOS/LinuxSamplerAU LinuxSamplerAU.component/Contents/MacOS/LinuxSamplerAU |
49 |
|
|
50 |
|
|
51 |
# VST plugin |
# VST plugin |
52 |
|
|
53 |
cp -r "$P/i686/VST/LinuxSampler.vst" "$D" |
cp -r "$P/VST/LinuxSampler.vst" "$D" |
54 |
createuniv VST/LinuxSampler.vst/Contents/MacOS/LinuxSampler LinuxSampler.vst/Contents/MacOS/LinuxSampler |
createuniv VST/LinuxSampler.vst/Contents/MacOS/LinuxSampler LinuxSampler.vst/Contents/MacOS/LinuxSampler |
55 |
|
|
56 |
|
|
64 |
|
|
65 |
# Fantasia |
# Fantasia |
66 |
|
|
67 |
cp -r "$P/Fantasia.app" "$D/LinuxSampler" |
cp -r "/home/persson/mac/Fantasia.app" "$D/LinuxSampler" |
68 |
|
|
69 |
|
|
70 |
# QSampler |
# QSampler |
78 |
# no powerpc build of gigedit |
# no powerpc build of gigedit |
79 |
createuniv () |
createuniv () |
80 |
{ |
{ |
81 |
$LIPO -create "$P/x86_64/$1" "$P/i686/$1" \ |
#$LIPO -create "$P/x86_64/$1" "$P/i686/$1" \ |
82 |
-output "$D/${2-$1}" |
# -output "$D/${2-$1}" |
83 |
|
cp -a "$P/$1" "$D/${2-$1}" |
84 |
} |
} |
85 |
|
|
86 |
mkdir -p "$D/LinuxSampler/gigedit.app/Contents/MacOS" \ |
mkdir -p "$D/LinuxSampler/gigedit.app/Contents/MacOS" \ |
87 |
"$D/lib/gdk-pixbuf-2.0/2.10.0/loaders" \ |
"$D/lib/gdk-pixbuf-2.0/2.10.0/loaders" \ |
88 |
"$D/lib/pango/1.8.0/modules" \ |
"$D/share/locale/sv/LC_MESSAGES" \ |
89 |
"$D/lib/gtk-2.0" \ |
"$D/share/locale/de/LC_MESSAGES" \ |
|
"$D/lib/locale/sv/LC_MESSAGES" \ |
|
|
"$D/lib/locale/de/LC_MESSAGES" \ |
|
90 |
"$D/lib/linuxsampler/plugins" |
"$D/lib/linuxsampler/plugins" |
91 |
|
|
92 |
createuniv lib/gigedit/libgigedit.2.dylib lib/libgigedit.2.dylib |
createuniv lib/gigedit/libgigedit.4.dylib lib/libgigedit.4.dylib |
93 |
createuniv bin/gigedit LinuxSampler/gigedit.app/Contents/MacOS/gigedit |
createuniv bin/gigedit LinuxSampler/gigedit.app/Contents/MacOS/gigedit |
94 |
createuniv lib/linuxsampler/plugins/libgigeditlinuxsamplerplugin.so |
createuniv lib/linuxsampler/plugins/libgigeditlinuxsamplerplugin.so |
95 |
|
|
96 |
for x in libatk-1.0.0.dylib libatkmm-1.6.1.dylib libcairo.2.dylib \ |
for x in libatk-1.0.0.dylib libatkmm-1.6.1.dylib libcairo.2.dylib \ |
97 |
libcairomm-1.0.1.dylib libffi.6.dylib libfontconfig.1.dylib \ |
libcairo-gobject.2.dylib \ |
98 |
libfreetype.6.dylib libgailutil.18.dylib libgdkmm-2.4.1.dylib \ |
libcairomm-1.0.1.dylib libepoxy.0.dylib libffi.6.dylib libfontconfig.1.dylib \ |
99 |
libgdk_pixbuf-2.0.0.dylib libgdk-quartz-2.0.0.dylib libgio-2.0.0.dylib \ |
libfreetype.6.dylib libgailutil-3.0.dylib libgdk-3.0.dylib libgdkmm-3.0.1.dylib \ |
100 |
|
libgdk_pixbuf-2.0.0.dylib libgio-2.0.0.dylib \ |
101 |
libgiomm-2.4.1.dylib libglib-2.0.0.dylib libglibmm-2.4.1.dylib \ |
libgiomm-2.4.1.dylib libglib-2.0.0.dylib libglibmm-2.4.1.dylib \ |
102 |
libgmodule-2.0.0.dylib libgobject-2.0.0.dylib libgthread-2.0.0.dylib \ |
libgmodule-2.0.0.dylib libgobject-2.0.0.dylib libgthread-2.0.0.dylib \ |
103 |
libgtkmm-2.4.1.dylib libgtk-quartz-2.0.0.dylib libintl.8.dylib \ |
libgtk-3.0.dylib libgtkmm-3.0.1.dylib libintl.9.dylib \ |
104 |
libjpeg.8.dylib libpango-1.0.0.dylib libpangocairo-1.0.0.dylib \ |
libpango-1.0.0.dylib libpangocairo-1.0.0.dylib \ |
105 |
libpangomm-1.4.1.dylib libpixman-1.0.dylib libpng15.15.dylib \ |
libpangomm-1.4.1.dylib libpixman-1.0.dylib libpng16.16.dylib \ |
106 |
libsigc-2.0.0.dylib libtiff.3.dylib \ |
libsigc-2.0.0.dylib \ |
107 |
gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-xpm.so \ |
gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-xpm.so \ |
108 |
pango/1.8.0/modules/pango-basic-coretext.so |
gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so \ |
109 |
|
libharfbuzz.0.dylib libpangoft2-1.0.0.dylib libfribidi.0.dylib |
110 |
do |
do |
111 |
$LIPO -create "/home/persson/macgtk64/lib/$x" \ |
#$LIPO -create "/home/persson/macgtk64/lib/$x" \ |
112 |
"/home/persson/macgtk32/lib/$x" \ |
#"/home/persson/macgtk32/lib/$x" \ |
113 |
-output "$D/lib/$x" |
#-output "$D/lib/$x" |
114 |
|
cp -a "$P/lib/$x" "$D/lib/$x" |
115 |
done |
done |
116 |
|
|
117 |
cp PkgInfo Info.plist "$D/LinuxSampler/gigedit.app/Contents" |
cp PkgInfo Info.plist "$D/LinuxSampler/gigedit.app/Contents" |
118 |
cp pango.modules "$D/lib/pango/pango.modules" |
cp loaders.cache "$D/lib/gdk-pixbuf-2.0/2.10.0" |
119 |
cp gdk-pixbuf.loaders "$D/lib/gtk-2.0" |
cp $P/share/locale/de/LC_MESSAGES/gigedit.mo "$D/share/locale/de/LC_MESSAGES" |
120 |
cp $P/x86_64/share/locale/de/LC_MESSAGES/gigedit.mo "$D/lib/locale/de/LC_MESSAGES" |
cp $P/share/locale/sv/LC_MESSAGES/gigedit.mo "$D/share/locale/sv/LC_MESSAGES" |
121 |
cp $P/x86_64/share/locale/sv/LC_MESSAGES/gigedit.mo "$D/lib/locale/sv/LC_MESSAGES" |
cp $P/share/locale/de/LC_MESSAGES/gtk30.mo "$D/share/locale/de/LC_MESSAGES" |
122 |
cp /home/persson/macgtk64/share/locale/de/LC_MESSAGES/gtk20.mo "$D/lib/locale/de/LC_MESSAGES" |
cp $P/share/locale/sv/LC_MESSAGES/gtk30.mo "$D/share/locale/sv/LC_MESSAGES" |
123 |
cp /home/persson/macgtk64/share/locale/sv/LC_MESSAGES/gtk20.mo "$D/lib/locale/sv/LC_MESSAGES" |
cd $D |
124 |
|
(cd $P ; \ |
125 |
|
tar cf - \ |
126 |
|
share/glib-2.0/schemas/gschemas.compiled \ |
127 |
|
share/icons/Adwaita/index.theme \ |
128 |
|
share/icons/Adwaita/16x16/actions/application-exit.png \ |
129 |
|
share/icons/Adwaita/16x16/actions/bookmark-new-symbolic.symbolic.png \ |
130 |
|
share/icons/Adwaita/16x16/actions/document-new.png \ |
131 |
|
share/icons/Adwaita/16x16/actions/document-open.png \ |
132 |
|
share/icons/Adwaita/16x16/actions/document-open-recent-symbolic.symbolic.png \ |
133 |
|
share/icons/Adwaita/16x16/actions/document-properties.png \ |
134 |
|
share/icons/Adwaita/16x16/actions/document-save-as.png \ |
135 |
|
share/icons/Adwaita/16x16/actions/document-save.png \ |
136 |
|
share/icons/Adwaita/16x16/actions/edit-clear-symbolic.symbolic.png \ |
137 |
|
share/icons/Adwaita/16x16/actions/edit-copy.png \ |
138 |
|
share/icons/Adwaita/16x16/actions/edit-delete.png \ |
139 |
|
share/icons/Adwaita/16x16/actions/edit-find-symbolic.symbolic.png \ |
140 |
|
share/icons/Adwaita/16x16/actions/go-down.png \ |
141 |
|
share/icons/Adwaita/16x16/actions/go-up.png \ |
142 |
|
share/icons/Adwaita/16x16/actions/help-about.png \ |
143 |
|
share/icons/Adwaita/16x16/actions/list-add.png \ |
144 |
|
share/icons/Adwaita/16x16/actions/list-add-symbolic.symbolic.png \ |
145 |
|
share/icons/Adwaita/16x16/actions/list-remove.png \ |
146 |
|
share/icons/Adwaita/16x16/actions/list-remove-symbolic.symbolic.png \ |
147 |
|
share/icons/Adwaita/16x16/actions/media-eject-symbolic.symbolic.png \ |
148 |
|
share/icons/Adwaita/16x16/actions/pan-down-symbolic.symbolic.png \ |
149 |
|
share/icons/Adwaita/16x16/actions/pan-end-symbolic.symbolic.png \ |
150 |
|
share/icons/Adwaita/16x16/actions/pan-start-symbolic.symbolic.png \ |
151 |
|
share/icons/Adwaita/16x16/actions/pan-up-symbolic.symbolic.png \ |
152 |
|
share/icons/Adwaita/16x16/actions/window-close.png \ |
153 |
|
share/icons/Adwaita/16x16/devices/drive-harddisk-symbolic.symbolic.png \ |
154 |
|
share/icons/Adwaita/16x16/mimetypes/inode-directory-symbolic.symbolic.png \ |
155 |
|
share/icons/Adwaita/16x16/mimetypes/text-x-generic.png \ |
156 |
|
share/icons/Adwaita/16x16/places/folder-documents-symbolic.symbolic.png \ |
157 |
|
share/icons/Adwaita/16x16/places/folder-download-symbolic.symbolic.png \ |
158 |
|
share/icons/Adwaita/16x16/places/folder-music-symbolic.symbolic.png \ |
159 |
|
share/icons/Adwaita/16x16/places/folder-pictures-symbolic.symbolic.png \ |
160 |
|
share/icons/Adwaita/16x16/places/folder-videos-symbolic.symbolic.png \ |
161 |
|
share/icons/Adwaita/16x16/places/user-desktop.png \ |
162 |
|
share/icons/Adwaita/16x16/places/user-desktop-symbolic.symbolic.png \ |
163 |
|
share/icons/Adwaita/16x16/places/user-home-symbolic.symbolic.png \ |
164 |
|
share/icons/Adwaita/16x16/places/user-trash-symbolic.symbolic.png \ |
165 |
|
share/icons/Adwaita/16x16/status/image-missing.png \ |
166 |
|
share/icons/Adwaita/32x32/devices/drive-harddisk.png \ |
167 |
|
share/icons/hicolor/index.theme) | tar xf - |
168 |
|
cd .. |
169 |
|
|
170 |
|
|
171 |
# generate OS X .pkg package / installer ... |
# generate OS X .pkg package / installer ... |
200 |
for f in $gigtools_bins; do |
for f in $gigtools_bins; do |
201 |
cp $D/LinuxSampler/$f $dlib |
cp $D/LinuxSampler/$f $dlib |
202 |
done |
done |
203 |
|
dlib="components/$component.pkg/share/man/man1" |
204 |
|
mkdir -p $dlib |
205 |
|
for f in $gigtools_bins; do |
206 |
|
cp $P/share/man/man1/$f.1 $dlib |
207 |
|
done |
208 |
|
|
209 |
component="libgigedit" |
component="libgigedit" |
210 |
dlib="$PWD/components/$component.pkg/lib" |
dlib="$PWD/components/$component.pkg/lib" |
211 |
mkdir -p $dlib |
mkdir -p $dlib |
212 |
( |
( |
213 |
cd $D/lib/ |
cd $D/lib/ |
214 |
for f in `ls -d linuxsampler libgigedit* locale/*/LC_MESSAGES/gigedit.mo`; do |
for f in `ls -d linuxsampler libgigedit*`; do |
215 |
cp -r --parents $f $dlib |
cp -r --parents $f $dlib |
216 |
done |
done |
217 |
) |
) |
218 |
|
dlib="$PWD/components/$component.pkg" |
219 |
|
( |
220 |
|
cd $D |
221 |
|
cp --parents share/locale/*/LC_MESSAGES/gigedit.mo $dlib |
222 |
|
) |
223 |
|
|
224 |
component="libgtk" |
component="libgtk" |
225 |
dlib="$PWD/components/$component.pkg/lib" |
dlib="$PWD/components/$component.pkg/lib" |
226 |
mkdir -p $dlib |
mkdir -p $dlib |
227 |
( |
( |
228 |
cd $D/lib/ |
cd $D/lib/ |
229 |
for f in `ls -d gdk* gtk* locale/*/LC_MESSAGES/gtk20.mo pango libatk* libcairo* libffi* libfont* libfreetype* libgailutil* libgdk* libgio* libglib* libgmodule* libgobject* libgthread* libgtk* libintl* libjpeg* libpango* libpixman* libpng* libsigc* libtiff*`; do |
for f in `ls -d gdk* libatk* libcairo* libepoxy* libffi* libfont* libfreetype* libfribidi* libgailutil* libgdk* libgio* libglib* libgmodule* libgobject* libgthread* libgtk* libharfbuzz* libintl* libpango* libpixman* libpng* libsigc*`; do |
230 |
cp -r --parents $f $dlib |
cp -r --parents $f $dlib |
231 |
done |
done |
232 |
) |
) |
233 |
|
dlib="$PWD/components/$component.pkg" |
234 |
|
( |
235 |
|
cd $D |
236 |
|
cp -r --parents share/locale/*/LC_MESSAGES/gtk30.mo share/glib-2.0 share/icons $dlib |
237 |
|
) |
238 |
|
|
239 |
component="liblinuxsampler" |
component="liblinuxsampler" |
240 |
dlib="components/$component.pkg/lib" |
dlib="components/$component.pkg/lib" |
280 |
) > ../linuxsampler.prepkg/$d/Payload |
) > ../linuxsampler.prepkg/$d/Payload |
281 |
mkbom -u 0 -g 80 $d ../linuxsampler.prepkg/$d/Bom |
mkbom -u 0 -g 80 $d ../linuxsampler.prepkg/$d/Bom |
282 |
size_kb=`du -sk $d | cut -f 1` |
size_kb=`du -sk $d | cut -f 1` |
283 |
entries_count=`find . | wc -l` |
entries_count=`find $d | wc -l` |
284 |
cp ../linuxsampler.unpkg/$d/PackageInfo ../linuxsampler.prepkg/$d |
cp ../linuxsampler.unpkg/$d/PackageInfo ../linuxsampler.prepkg/$d |
285 |
xmltxt=`xmlstarlet ed -u '/pkg-info/payload/@numberOfFiles' -v $entries_count ../linuxsampler.prepkg/$d/PackageInfo | xmlstarlet ed -u '/pkg-info/payload/@installKBytes' -v $size_kb -` |
xmltxt=`xmlstarlet ed -u '/pkg-info/payload/@numberOfFiles' -v $entries_count ../linuxsampler.prepkg/$d/PackageInfo | xmlstarlet ed -u '/pkg-info/payload/@installKBytes' -v $size_kb` |
286 |
echo $xmltxt > ../linuxsampler.prepkg/$d/PackageInfo |
echo $xmltxt > ../linuxsampler.prepkg/$d/PackageInfo |
287 |
identifier=`xmlstarlet sel -t -v '/pkg-info/@identifier' ../linuxsampler.prepkg/$d/PackageInfo` |
identifier=`xmlstarlet sel -t -v '/pkg-info/@identifier' ../linuxsampler.prepkg/$d/PackageInfo` |
288 |
xmltxt=`xmlstarlet ed -u "/installer-gui-script/pkg-ref[@id='$identifier']/@installKBytes" -v $size_kb ../linuxsampler.prepkg/Distribution` |
xmltxt=`xmlstarlet ed -u "/installer-gui-script/pkg-ref[@id='$identifier']/@installKBytes" -v $size_kb ../linuxsampler.prepkg/Distribution` |