2
MIXXX_OLD_PATH=../MacOS/mixxx
3
MIXXX_PATH=../MacOS/Mixxx
5
TMP_DMG_DIR="/tmp/mixxx_dmg"
7
VERSION=`grep VERSION src/defs.h | cut -d" " -f 3 | tr -d \"`
8
DMG_PATH="./mixxx-$VERSION-$ARCH"
9
DMG_ICON="src/osx/VolumeIcon.icns"
10
QT4_PATH="/usr/local/Trolltech/Qt-4.3.2" # Don't use a trailing slash here (important)
14
echo "Error: Mixxx.app bundle doesn't exist. Run \"scons\" to create it."
22
echo "Copying libraries..."
23
cp $QT4_PATH/lib/libQtGui.4.dylib .
24
cp $QT4_PATH/lib/libQtCore.4.dylib .
25
cp $QT4_PATH/lib/libQtOpenGL.4.dylib .
26
cp $QT4_PATH/lib/libQtXml.4.dylib .
27
cp $QT4_PATH/lib/libQt3Support.4.dylib .
28
cp $QT4_PATH/lib/libQtNetwork.4.dylib .
29
cp $QT4_PATH/lib/libQtSql.4.dylib .
30
cp /usr/local/lib/libportaudio.2.dylib .
31
cp /usr/local/lib/libmad.0.dylib .
32
cp /opt/local/lib/libid3tag.0.dylib .
33
cp /usr/local/lib/libvorbisfile.3.dylib .
34
cp /usr/local/lib/libvorbis.0.dylib .
35
cp /usr/local/lib/libogg.0.dylib .
36
cp /usr/local/lib/libsndfile.1.dylib .
37
cp /usr/local/lib/libFLAC.7.dylib .
39
echo "Changing library ids..."
40
install_name_tool -id @executable_path/../Frameworks/libQtGui.4.dylib libQtGui.4.dylib
41
install_name_tool -id @executable_path/../Frameworks/libQtCore.4.dylib libQtCore.4.dylib
42
install_name_tool -id @executable_path/../Frameworks/libQtOpenGL.4.dylib libQtOpenGL.4.dylib
43
install_name_tool -id @executable_path/../Frameworks/libQt3Support.4.dylib libQt3Support.4.dylib
44
install_name_tool -id @executable_path/../Frameworks/libQtXml.4.dylib libQtXml.4.dylib
45
install_name_tool -id @executable_path/../Frameworks/libQtNetwork.4.dylib libQtNetwork.4.dylib
46
install_name_tool -id @executable_path/../Frameworks/libQtSql.4.dylib libQtSql.4.dylib
47
install_name_tool -id @executable_path/../Frameworks/libportaudio.2.dylib libportaudio.2.dylib
48
install_name_tool -id @executable_path/../Frameworks/libmad.0.dylib libmad.0.dylib
49
install_name_tool -id @executable_path/../Frameworks/libid3tag.0.dylib libid3tag.0.dylib
50
install_name_tool -id @executable_path/../Frameworks/libvorbisfile.3.dylib libvorbisfile.3.dylib
51
install_name_tool -id @executable_path/../Frameworks/libvorbis.0.dylib libvorbis.0.dylib
52
install_name_tool -id @executable_path/../Frameworks/libogg.0.dylib libogg.0.dylib
53
install_name_tool -id @executable_path/../Frameworks/libsndfile.1.dylib libsndfile.1.dylib
54
install_name_tool -id @executable_path/../Frameworks/libFLAC.7.dylib libFLAC.7.dylib
56
echo "Renaming mixxx binary to capitalised Mixxx"
57
mv $MIXXX_OLD_PATH $MIXXX_PATH
59
echo "Changing library ids in the Mixxx binary..."
60
install_name_tool -change $QT4_PATH/lib/libQtGui.4.dylib @executable_path/../Frameworks/libQtGui.4.dylib $MIXXX_PATH
61
install_name_tool -change $QT4_PATH/lib/libQtCore.4.dylib @executable_path/../Frameworks/libQtCore.4.dylib $MIXXX_PATH
62
install_name_tool -change $QT4_PATH/lib/libQtOpenGL.4.dylib @executable_path/../Frameworks/libQtOpenGL.4.dylib $MIXXX_PATH
63
install_name_tool -change $QT4_PATH/lib/libQt3Support.4.dylib @executable_path/../Frameworks/libQt3Support.4.dylib $MIXXX_PATH
64
install_name_tool -change $QT4_PATH/lib/libQtXml.4.dylib @executable_path/../Frameworks/libQtXml.4.dylib $MIXXX_PATH
65
install_name_tool -change $QT4_PATH/lib/libQtNetwork.4.dylib @executable_path/../Frameworks/libQtNetwork.4.dylib $MIXXX_PATH
66
install_name_tool -change $QT4_PATH/lib/libQtSql.4.dylib @executable_path/../Frameworks/libQtSql.4.dylib $MIXXX_PATH
67
install_name_tool -change /usr/local/lib/libportaudio.2.dylib @executable_path/../Frameworks/libportaudio.2.dylib $MIXXX_PATH
68
install_name_tool -change /usr/local/lib/libmad.0.dylib @executable_path/../Frameworks/libmad.0.dylib $MIXXX_PATH
69
install_name_tool -change /opt/local/lib/libid3tag.0.dylib @executable_path/../Frameworks/libid3tag.0.dylib $MIXXX_PATH # *** /opt/local/lib for this one!
70
install_name_tool -change /usr/local/lib/libvorbisfile.3.dylib @executable_path/../Frameworks/libvorbisfile.3.dylib $MIXXX_PATH
71
install_name_tool -change /usr/local/lib/libvorbis.0.dylib @executable_path/../Frameworks/libvorbis.0.dylib $MIXXX_PATH
72
install_name_tool -change /usr/local/lib/libogg.0.dylib @executable_path/../Frameworks/libogg.0.dylib $MIXXX_PATH
73
install_name_tool -change /usr/local/lib/libsndfile.1.dylib @executable_path/../Frameworks/libsndfile.1.dylib $MIXXX_PATH
74
install_name_tool -change /usr/local/lib/libFLAC.7.dylib @executable_path/../Frameworks/libFLAC.7.dylib $MIXXX_PATH
76
echo "Changing library ids within the QT4 libs"
77
# These are intra-QT4 dependencies
78
install_name_tool -change $QT4_PATH/lib/libQtCore.4.dylib @executable_path/../Frameworks/libQtCore.4.dylib libQtGui.4.dylib
79
install_name_tool -change $QT4_PATH/lib/libQtCore.4.dylib @executable_path/../Frameworks/libQtCore.4.dylib libQtOpenGL.4.dylib
80
install_name_tool -change $QT4_PATH/lib/libQtGui.4.dylib @executable_path/../Frameworks/libQtGui.4.dylib libQtOpenGL.4.dylib
81
install_name_tool -change $QT4_PATH/lib/libQtCore.4.dylib @executable_path/../Frameworks/libQtCore.4.dylib libQtSql.4.dylib
82
install_name_tool -change $QT4_PATH/lib/libQtCore.4.dylib @executable_path/../Frameworks/libQtCore.4.dylib libQtNetwork.4.dylib
83
install_name_tool -change $QT4_PATH/lib/libQtCore.4.dylib @executable_path/../Frameworks/libQtCore.4.dylib libQtXml.4.dylib
84
install_name_tool -change $QT4_PATH/lib/libQtGui.4.dylib @executable_path/../Frameworks/libQtGui.4.dylib libQt3Support.4.dylib
85
install_name_tool -change $QT4_PATH/lib/libQtCore.4.dylib @executable_path/../Frameworks/libQtCore.4.dylib libQt3Support.4.dylib
86
install_name_tool -change $QT4_PATH/lib/libQtSql.4.dylib @executable_path/../Frameworks/libQtSql.4.dylib libQt3Support.4.dylib
87
install_name_tool -change $QT4_PATH/lib/libQtXml.4.dylib @executable_path/../Frameworks/libQtXml.4.dylib libQt3Support.4.dylib
88
install_name_tool -change $QT4_PATH/lib/libQtNetwork.4.dylib @executable_path/../Frameworks/libQtNetwork.4.dylib libQt3Support.4.dylib
91
echo "Changing library ids within Vorbis lib"
92
# These are intra-ogg/vorbis dependencies (don't ask me how I figure this stuff out)
93
install_name_tool -change /opt/local/lib/libogg.0.dylib @executable_path/../Frameworks/libogg.0.dylib libvorbis.0.dylib
94
install_name_tool -change /opt/local/lib/libogg.0.dylib @executable_path/../Frameworks/libogg.0.dylib libvorbisfile.3.dylib
95
install_name_tool -change /usr/local/lib/libvorbis.0.dylib @executable_path/../Frameworks/libvorbis.0.dylib libvorbisfile.3.dylib # /usr for this one and /opt for the libogg ones... careful... (libogg is from MacPorts?)
97
echo "Changing library ids within libsndfile"
98
install_name_tool -change /usr/local/lib/libFLAC.7.dylib @executable_path/../Frameworks/libFLAC.7.dylib libsndfile.1.dylib
100
echo "Stripping debugging symbols in libraries"
103
echo "Stripping $lib"
104
strip -S $lib # Strip all the libraries
107
strip $MIXXX_PATH # Strip the mixxx binary
109
echo "Copying QT4 imageformat plugins"
112
mkdir plugins/imageformats
113
mkdir plugins/iconengines
114
cd plugins/imageformats
116
for lib in libqgif.dylib libqjpeg.dylib libqsvg.dylib; #Left out libqmng and libqtiff to save space.
118
cp $QT4_PATH/plugins/imageformats/$lib .
120
echo "Changing library ids within QT4 imageformat plugin: $lib"
121
install_name_tool -id @executable_path/../Frameworks/$lib $lib
122
install_name_tool -change $QT4_PATH/lib/libQtCore.4.dylib @executable_path/../Frameworks/libQtCore.4.dylib $lib
123
install_name_tool -change $QT4_PATH/lib/libQtGui.4.dylib @executable_path/../Frameworks/libQtGui.4.dylib $lib
124
install_name_tool -change $QT4_PATH/lib/libQtSql.4.dylib @executable_path/../Frameworks/libQtSql.4.dylib $lib
125
install_name_tool -change $QT4_PATH/lib/libQtXml.4.dylib @executable_path/../Frameworks/libQtXml.4.dylib $lib
126
install_name_tool -change $QT4_PATH/lib/libQtSvg.4.dylib @executable_path/../Frameworks/libQtSvg.4.dylib $lib
127
install_name_tool -change $QT4_PATH/lib/libQtNetwork.4.dylib @executable_path/../Frameworks/libQtNetwork.4.dylib $lib
129
echo "Stripping debugging symbols from QT4 imageformat plugins"
130
strip *.dylib #Strip the imageformat plugins
132
#Rinse, repeat for the iconengine plugins
136
for lib in libqsvg.dylib; #Yeah, theres a libqsvg.dylib iconengine and a libqsvg.dylib imageformat (and they're different)...
138
cp $QT4_PATH/plugins/iconengines/$lib .
140
echo "Changing library ids within QT4 iconegine plugin: $lib"
141
install_name_tool -id @executable_path/../Frameworks/$lib $lib
142
install_name_tool -change $QT4_PATH/lib/libQtCore.4.dylib @executable_path/../Frameworks/libQtCore.4.dylib $lib
143
install_name_tool -change $QT4_PATH/lib/libQtGui.4.dylib @executable_path/../Frameworks/libQtGui.4.dylib $lib
144
install_name_tool -change $QT4_PATH/lib/libQtSql.4.dylib @executable_path/../Frameworks/libQtSql.4.dylib $lib
145
install_name_tool -change $QT4_PATH/lib/libQtXml.4.dylib @executable_path/../Frameworks/libQtXml.4.dylib $lib
146
install_name_tool -change $QT4_PATH/lib/libQtSvg.4.dylib @executable_path/../Frameworks/libQtSvg.4.dylib $lib
147
install_name_tool -change $QT4_PATH/lib/libQtNetwork.4.dylib @executable_path/../Frameworks/libQtNetwork.4.dylib $lib
149
echo "Stripping debugging symbols from QT4 iconengine plugins"
150
strip *.dylib #Strip the iconengine plugins
155
echo "Done creating Mixxx.app bundle!"
157
echo "Building DMG..."
158
rm -rf "$TMP_DMG_DIR" # Ditch old temp dmg directory
159
mkdir "$TMP_DMG_DIR" # Create a temp dmg directory
160
cp -r Mixxx.app "$TMP_DMG_DIR" # Copy Mixxx.app there
161
cp README "$TMP_DMG_DIR" # Copy the README too
162
cp LICENSE "$TMP_DMG_DIR" # ... and the LICENSE
163
cp Mixxx-Manual.pdf "$TMP_DMG_DIR" # ... and the manual
164
cp "$DMG_ICON" "$TMP_DMG_DIR/.VolumeIcon.icns" # Copy the icon for the dmg
165
SetFile -a C "$TMP_DMG_DIR" # Set the folder's icon
166
# Might need to do the SetFile on the final .dmg instead...?
167
hdiutil create -srcfolder "$TMP_DMG_DIR" -format UDBZ -volname "$VOL_NAME" "$DMG_PATH"