blob: 397231a300451163c1baa536bdb0148b1eb47508 [file] [log] [blame]
DRC6533b6e2010-02-15 14:57:18 +00001#!/bin/sh
2
3set -u
DRC051dd5a2010-02-17 01:07:46 +00004set -e
5trap onexit INT
6trap onexit TERM
7trap onexit EXIT
DRC6533b6e2010-02-15 14:57:18 +00008
9TMPDIR=
10
DRC051dd5a2010-02-17 01:07:46 +000011onexit()
DRC6533b6e2010-02-15 14:57:18 +000012{
13 if [ ! "$TMPDIR" = "" ]; then
14 sudo rm -rf $TMPDIR
15 fi
DRC6533b6e2010-02-15 14:57:18 +000016}
17
18usage()
19{
DRCa2a2cd62013-02-04 22:29:57 +000020 echo "$0 [-build32 [32-bit build dir]] [-buildarmv6 [ARM v6 build dir]] [-buildarmv7 [ARM v7 build dir]] [-buildarmv7s [ARM v7s build dir]]"
DRC6533b6e2010-02-15 14:57:18 +000021 exit 1
22}
23
DRC0f53df82010-10-21 19:47:06 +000024PACKAGE_NAME=@PACKAGE_NAME@
25VERSION=@VERSION@
26BUILD=@BUILD@
DRCb94f2de2011-03-22 09:31:25 +000027SRCDIR=@abs_top_srcdir@
DRC9e7eb272012-02-10 03:41:20 +000028BUILDDIR32=@abs_top_srcdir@/osxx86
DRC7c6ae032012-03-23 00:51:56 +000029BUILD32=0
DRC9e7eb272012-02-10 03:41:20 +000030BUILDDIRARMV6=@abs_top_srcdir@/iosarmv6
DRC7c6ae032012-03-23 00:51:56 +000031BUILDARMV6=0
DRC9e7eb272012-02-10 03:41:20 +000032BUILDDIRARMV7=@abs_top_srcdir@/iosarmv7
DRC7c6ae032012-03-23 00:51:56 +000033BUILDARMV7=0
DRCa2a2cd62013-02-04 22:29:57 +000034BUILDDIRARMV7S=@abs_top_srcdir@/iosarmv7s
35BUILDARMV7S=0
DRCf2602ce2011-04-01 00:20:33 +000036WITH_JAVA=@WITH_JAVA@
DRC7175e512013-04-23 22:29:00 +000037
38PREFIX=%{__prefix}
39BINDIR=%{__bindir}
40DOCDIR=%{__docdir}
41LIBDIR=%{__libdir}
42
DRC20b734e2012-02-10 01:30:37 +000043while [ $# -gt 0 ]; do
44 case $1 in
45 -h*) usage 0 ;;
DRC7c6ae032012-03-23 00:51:56 +000046 -build32)
47 BUILD32=1
DRC9e7eb272012-02-10 03:41:20 +000048 if [ $# -gt 1 ]; then
49 if [[ ! "$2" =~ -.* ]]; then
50 BUILDDIR32=$2; shift
51 fi
52 fi
53 ;;
DRC7c6ae032012-03-23 00:51:56 +000054 -buildarmv6)
55 BUILDARMV6=1
DRC9e7eb272012-02-10 03:41:20 +000056 if [ $# -gt 1 ]; then
57 if [[ ! "$2" =~ -.* ]]; then
58 BUILDDIRARMV6=$2; shift
59 fi
60 fi
61 ;;
DRC7c6ae032012-03-23 00:51:56 +000062 -buildarmv7)
63 BUILDARMV7=1
DRC9e7eb272012-02-10 03:41:20 +000064 if [ $# -gt 1 ]; then
65 if [[ ! "$2" =~ -.* ]]; then
66 BUILDDIRARMV7=$2; shift
67 fi
68 fi
69 ;;
DRCa2a2cd62013-02-04 22:29:57 +000070 -buildarmv7s)
71 BUILDARMV7S=1
72 if [ $# -gt 1 ]; then
73 if [[ ! "$2" =~ -.* ]]; then
74 BUILDDIRARMV7S=$2; shift
75 fi
76 fi
77 ;;
DRC20b734e2012-02-10 01:30:37 +000078 esac
79 shift
80done
DRC6533b6e2010-02-15 14:57:18 +000081PACKAGEMAKER=/Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker
82
DRCb94f2de2011-03-22 09:31:25 +000083if [ -f $PACKAGE_NAME-$VERSION.dmg ]; then
84 rm -f $PACKAGE_NAME-$VERSION.dmg
DRC6533b6e2010-02-15 14:57:18 +000085fi
86
87umask 022
DRC051dd5a2010-02-17 01:07:46 +000088TMPDIR=`mktemp -d /tmp/$PACKAGE_NAME-build.XXXXXX`
DRC6533b6e2010-02-15 14:57:18 +000089PKGROOT=$TMPDIR/pkg/Package_Root
DRC051dd5a2010-02-17 01:07:46 +000090mkdir -p $PKGROOT
DRC7175e512013-04-23 22:29:00 +000091make install DESTDIR=$PKGROOT docdir=/Library/Documentation/$PACKAGE_NAME \
DRCa1647c82012-02-10 00:39:05 +000092 exampledir=/Library/Documentation/$PACKAGE_NAME
DRC7175e512013-04-23 22:29:00 +000093rm -f $PKGROOT$LIBDIR/*.la
94
95if [ "$PREFIX" = "/opt/libjpeg-turbo" -a "$DOCDIR" = "/opt/libjpeg-turbo/doc" ]; then
96 ln -fs /Library/Documentation/$PACKAGE_NAME $PKGROOT$DOCDIR
97fi
DRC6533b6e2010-02-15 14:57:18 +000098
DRC7c6ae032012-03-23 00:51:56 +000099if [ $BUILD32 = 1 ]; then
DRC9ef93db2010-10-18 08:24:42 +0000100 if [ ! -d $BUILDDIR32 ]; then
101 echo ERROR: 32-bit build directory $BUILDDIR32 does not exist
102 exit 1
103 fi
104 if [ ! -f $BUILDDIR32/Makefile ]; then
105 echo ERROR: 32-bit build directory $BUILDDIR32 is not configured
106 exit 1
DRC315123f2010-02-15 16:14:26 +0000107 fi
108 mkdir -p $TMPDIR/dist.x86
DRC9ef93db2010-10-18 08:24:42 +0000109 pushd $BUILDDIR32
DRC3d1dd072010-06-05 03:00:36 +0000110 make install DESTDIR=$TMPDIR/dist.x86
DRC315123f2010-02-15 16:14:26 +0000111 popd
DRC7175e512013-04-23 22:29:00 +0000112 if [ ! -h $TMPDIR/dist.x86/$LIBDIR/libjpeg.@SO_MAJOR_VERSION@.dylib -a \
113 ! -h $PKGROOT/$LIBDIR/libjpeg.@SO_MAJOR_VERSION@.dylib ]; then
DRC3d1dd072010-06-05 03:00:36 +0000114 lipo -create \
DRC7175e512013-04-23 22:29:00 +0000115 -arch i386 $TMPDIR/dist.x86/$LIBDIR/libjpeg.@SO_MAJOR_VERSION@.dylib \
116 -arch x86_64 $PKGROOT/$LIBDIR/libjpeg.@SO_MAJOR_VERSION@.dylib \
117 -output $PKGROOT/$LIBDIR/libjpeg.@SO_MAJOR_VERSION@.dylib
118 elif [ ! -h $TMPDIR/dist.x86/$LIBDIR/libjpeg.@SO_MAJOR_VERSION@.0.@SO_MINOR_VERSION@.dylib -a \
119 ! -h $PKGROOT/$LIBDIR/libjpeg.@SO_MAJOR_VERSION@.0.@SO_MINOR_VERSION@.dylib ]; then
DRC3d1dd072010-06-05 03:00:36 +0000120 lipo -create \
DRC7175e512013-04-23 22:29:00 +0000121 -arch i386 $TMPDIR/dist.x86/$LIBDIR/libjpeg.@SO_MAJOR_VERSION@.0.@SO_MINOR_VERSION@.dylib \
122 -arch x86_64 $PKGROOT/$LIBDIR/libjpeg.@SO_MAJOR_VERSION@.0.@SO_MINOR_VERSION@.dylib \
123 -output $PKGROOT/$LIBDIR/libjpeg.@SO_MAJOR_VERSION@.0.@SO_MINOR_VERSION@.dylib
DRC5df6c232010-02-23 10:22:33 +0000124 fi
DRC3d1dd072010-06-05 03:00:36 +0000125 lipo -create \
DRC7175e512013-04-23 22:29:00 +0000126 -arch i386 $TMPDIR/dist.x86/$LIBDIR/libjpeg.a \
127 -arch x86_64 $PKGROOT/$LIBDIR/libjpeg.a \
128 -output $PKGROOT/$LIBDIR/libjpeg.a
DRC3d1dd072010-06-05 03:00:36 +0000129 lipo -create \
DRC7175e512013-04-23 22:29:00 +0000130 -arch i386 $TMPDIR/dist.x86/$LIBDIR/libturbojpeg.0.dylib \
131 -arch x86_64 $PKGROOT/$LIBDIR/libturbojpeg.0.dylib \
132 -output $PKGROOT/$LIBDIR/libturbojpeg.0.dylib
DRC3d1dd072010-06-05 03:00:36 +0000133 lipo -create \
DRC7175e512013-04-23 22:29:00 +0000134 -arch i386 $TMPDIR/dist.x86/$LIBDIR/libturbojpeg.a \
135 -arch x86_64 $PKGROOT/$LIBDIR/libturbojpeg.a \
136 -output $PKGROOT/$LIBDIR/libturbojpeg.a
DRC3d1dd072010-06-05 03:00:36 +0000137 lipo -create \
DRC7175e512013-04-23 22:29:00 +0000138 -arch i386 $TMPDIR/dist.x86/$BINDIR/cjpeg \
139 -arch x86_64 $PKGROOT/$BINDIR/cjpeg \
140 -output $PKGROOT/$BINDIR/cjpeg
DRC3d1dd072010-06-05 03:00:36 +0000141 lipo -create \
DRC7175e512013-04-23 22:29:00 +0000142 -arch i386 $TMPDIR/dist.x86/$BINDIR/djpeg \
143 -arch x86_64 $PKGROOT/$BINDIR/djpeg \
144 -output $PKGROOT/$BINDIR/djpeg
DRC3d1dd072010-06-05 03:00:36 +0000145 lipo -create \
DRC7175e512013-04-23 22:29:00 +0000146 -arch i386 $TMPDIR/dist.x86/$BINDIR/jpegtran \
147 -arch x86_64 $PKGROOT/$BINDIR/jpegtran \
148 -output $PKGROOT/$BINDIR/jpegtran
DRC3d1dd072010-06-05 03:00:36 +0000149 lipo -create \
DRC7175e512013-04-23 22:29:00 +0000150 -arch i386 $TMPDIR/dist.x86/$BINDIR/tjbench \
151 -arch x86_64 $PKGROOT/$BINDIR/tjbench \
152 -output $PKGROOT/$BINDIR/tjbench
DRC240d82f2011-02-19 00:00:34 +0000153 lipo -create \
DRC7175e512013-04-23 22:29:00 +0000154 -arch i386 $TMPDIR/dist.x86/$BINDIR/rdjpgcom \
155 -arch x86_64 $PKGROOT/$BINDIR/rdjpgcom \
156 -output $PKGROOT/$BINDIR/rdjpgcom
DRC3d1dd072010-06-05 03:00:36 +0000157 lipo -create \
DRC7175e512013-04-23 22:29:00 +0000158 -arch i386 $TMPDIR/dist.x86/$BINDIR/wrjpgcom \
159 -arch x86_64 $PKGROOT/$BINDIR/wrjpgcom \
160 -output $PKGROOT/$BINDIR/wrjpgcom
DRC8e2bba92010-06-04 23:54:10 +0000161
DRC315123f2010-02-15 16:14:26 +0000162fi
163
DRC7c6ae032012-03-23 00:51:56 +0000164if [ $BUILDARMV6 = 1 ]; then
DRC20b734e2012-02-10 01:30:37 +0000165 if [ ! -d $BUILDDIRARMV6 ]; then
166 echo ERROR: ARM v6 build directory $BUILDDIRARMV6 does not exist
167 exit 1
168 fi
169 if [ ! -f $BUILDDIRARMV6/Makefile ]; then
170 echo ERROR: ARM v6 build directory $BUILDDIRARMV6 is not configured
171 exit 1
172 fi
173 mkdir -p $TMPDIR/dist.armv6
174 pushd $BUILDDIRARMV6
175 make install DESTDIR=$TMPDIR/dist.armv6
176 popd
177 lipo -create \
DRC7175e512013-04-23 22:29:00 +0000178 $PKGROOT/$LIBDIR/libjpeg.a \
179 -arch arm $TMPDIR/dist.armv6/$LIBDIR/libjpeg.a \
180 -output $PKGROOT/$LIBDIR/libjpeg.a
DRC20b734e2012-02-10 01:30:37 +0000181 lipo -create \
DRC7175e512013-04-23 22:29:00 +0000182 $PKGROOT/$LIBDIR/libturbojpeg.a \
183 -arch arm $TMPDIR/dist.armv6/$LIBDIR/libturbojpeg.a \
184 -output $PKGROOT/$LIBDIR/libturbojpeg.a
DRC20b734e2012-02-10 01:30:37 +0000185fi
186
DRC7c6ae032012-03-23 00:51:56 +0000187if [ $BUILDARMV7 = 1 ]; then
DRC20b734e2012-02-10 01:30:37 +0000188 if [ ! -d $BUILDDIRARMV7 ]; then
189 echo ERROR: ARM v7 build directory $BUILDDIRARMV7 does not exist
190 exit 1
191 fi
192 if [ ! -f $BUILDDIRARMV7/Makefile ]; then
193 echo ERROR: ARM v7 build directory $BUILDDIRARMV7 is not configured
194 exit 1
195 fi
196 mkdir -p $TMPDIR/dist.armv7
197 pushd $BUILDDIRARMV7
198 make install DESTDIR=$TMPDIR/dist.armv7
199 popd
200 lipo -create \
DRC7175e512013-04-23 22:29:00 +0000201 $PKGROOT/$LIBDIR/libjpeg.a \
202 -arch arm $TMPDIR/dist.armv7/$LIBDIR/libjpeg.a \
203 -output $PKGROOT/$LIBDIR/libjpeg.a
DRC20b734e2012-02-10 01:30:37 +0000204 lipo -create \
DRC7175e512013-04-23 22:29:00 +0000205 $PKGROOT/$LIBDIR/libturbojpeg.a \
206 -arch arm $TMPDIR/dist.armv7/$LIBDIR/libturbojpeg.a \
207 -output $PKGROOT/$LIBDIR/libturbojpeg.a
DRC20b734e2012-02-10 01:30:37 +0000208fi
209
DRCa2a2cd62013-02-04 22:29:57 +0000210if [ $BUILDARMV7S = 1 ]; then
211 if [ ! -d $BUILDDIRARMV7S ]; then
212 echo ERROR: ARM v7s build directory $BUILDDIRARMV7S does not exist
213 exit 1
214 fi
215 if [ ! -f $BUILDDIRARMV7S/Makefile ]; then
216 echo ERROR: ARM v7s build directory $BUILDDIRARMV7S is not configured
217 exit 1
218 fi
219 mkdir -p $TMPDIR/dist.armv7s
220 pushd $BUILDDIRARMV7S
221 make install DESTDIR=$TMPDIR/dist.armv7s
222 popd
223 lipo -create \
DRC7175e512013-04-23 22:29:00 +0000224 $PKGROOT/$LIBDIR/libjpeg.a \
225 -arch arm $TMPDIR/dist.armv7s/$LIBDIR/libjpeg.a \
226 -output $PKGROOT/$LIBDIR/libjpeg.a
DRCa2a2cd62013-02-04 22:29:57 +0000227 lipo -create \
DRC7175e512013-04-23 22:29:00 +0000228 $PKGROOT/$LIBDIR/libturbojpeg.a \
229 -arch arm $TMPDIR/dist.armv7s/$LIBDIR/libturbojpeg.a \
230 -output $PKGROOT/$LIBDIR/libturbojpeg.a
DRCa2a2cd62013-02-04 22:29:57 +0000231fi
232
DRC7175e512013-04-23 22:29:00 +0000233install_name_tool -id $LIBDIR/libjpeg.@SO_MAJOR_VERSION@.dylib $PKGROOT/$LIBDIR/libjpeg.@SO_MAJOR_VERSION@.dylib
234install_name_tool -id $LIBDIR/libturbojpeg.0.dylib $PKGROOT/$LIBDIR/libturbojpeg.0.dylib
DRC315123f2010-02-15 16:14:26 +0000235
DRCf2602ce2011-04-01 00:20:33 +0000236if [ $WITH_JAVA = 1 ]; then
DRC7175e512013-04-23 22:29:00 +0000237 ln -fs libturbojpeg.0.dylib $PKGROOT/$LIBDIR/libturbojpeg.jnilib
DRC25c58702011-02-05 04:41:36 +0000238fi
DRC7175e512013-04-23 22:29:00 +0000239if [ "$PREFIX" = "/opt/libjpeg-turbo" -a "$LIBDIR" = "/opt/libjpeg-turbo/lib" ]; then
240 if [ ! -h $PKGROOT/$PREFIX/lib32 ]; then
241 ln -fs lib $PKGROOT/$PREFIX/lib32
242 fi
243 if [ ! -h $PKGROOT/$PREFIX/lib64 ]; then
244 ln -fs lib $PKGROOT/$PREFIX/lib64
245 fi
DRCd1c281a2010-11-17 22:44:40 +0000246fi
DRCf12c7db2010-05-18 19:04:47 +0000247
DRC051dd5a2010-02-17 01:07:46 +0000248chmod 1775 $PKGROOT/Library
249chmod 775 $PKGROOT/Library/Documentation
250mkdir -p $TMPDIR/pkg/Resources
DRC6533b6e2010-02-15 14:57:18 +0000251
DRCb94f2de2011-03-22 09:31:25 +0000252cp pkgscripts/Description.plist $TMPDIR/pkg/
253cp pkgscripts/Info.plist $TMPDIR/pkg/
DRC7175e512013-04-23 22:29:00 +0000254install -m 755 pkgscripts/uninstall $PKGROOT/$BINDIR/
DRC6533b6e2010-02-15 14:57:18 +0000255
DRC7175e512013-04-23 22:29:00 +0000256sudo chown -R root:admin $PKGROOT
DRC051dd5a2010-02-17 01:07:46 +0000257cp $SRCDIR/release/License.rtf $SRCDIR/release/Welcome.rtf $SRCDIR/release/ReadMe.rtf $TMPDIR/pkg/Resources/
DRC6533b6e2010-02-15 14:57:18 +0000258
259mkdir $TMPDIR/dmg
260$PACKAGEMAKER -build -v -p $TMPDIR/dmg/$PACKAGE_NAME.pkg \
261 -f $PKGROOT -r $TMPDIR/pkg/Resources \
DRC051dd5a2010-02-17 01:07:46 +0000262 -i $TMPDIR/pkg/Info.plist -d $TMPDIR/pkg/Description.plist
DRC6533b6e2010-02-15 14:57:18 +0000263hdiutil create -fs HFS+ -volname $PACKAGE_NAME-$VERSION \
DRCb94f2de2011-03-22 09:31:25 +0000264 -srcfolder "$TMPDIR/dmg" $TMPDIR/$PACKAGE_NAME-$VERSION.dmg
265cp $TMPDIR/$PACKAGE_NAME-$VERSION.dmg .
DRC6533b6e2010-02-15 14:57:18 +0000266
DRC051dd5a2010-02-17 01:07:46 +0000267exit