blob: 16c18deb3ce71b4b62303e92721351c55dae59a2 [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
DRCb1068fa2014-03-23 17:53:07 +000014 rm -rf $TMPDIR
DRC6533b6e2010-02-15 14:57:18 +000015 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
DRC45789532013-04-24 23:39:37 +000024PACKAGE_NAME=@PKGNAME@
DRC0f53df82010-10-21 19:47:06 +000025VERSION=@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 +000081
DRCb94f2de2011-03-22 09:31:25 +000082if [ -f $PACKAGE_NAME-$VERSION.dmg ]; then
83 rm -f $PACKAGE_NAME-$VERSION.dmg
DRC6533b6e2010-02-15 14:57:18 +000084fi
85
86umask 022
DRC051dd5a2010-02-17 01:07:46 +000087TMPDIR=`mktemp -d /tmp/$PACKAGE_NAME-build.XXXXXX`
DRC6533b6e2010-02-15 14:57:18 +000088PKGROOT=$TMPDIR/pkg/Package_Root
DRC051dd5a2010-02-17 01:07:46 +000089mkdir -p $PKGROOT
DRC7175e512013-04-23 22:29:00 +000090make install DESTDIR=$PKGROOT docdir=/Library/Documentation/$PACKAGE_NAME \
DRCa1647c82012-02-10 00:39:05 +000091 exampledir=/Library/Documentation/$PACKAGE_NAME
DRC7175e512013-04-23 22:29:00 +000092rm -f $PKGROOT$LIBDIR/*.la
93
94if [ "$PREFIX" = "/opt/libjpeg-turbo" -a "$DOCDIR" = "/opt/libjpeg-turbo/doc" ]; then
95 ln -fs /Library/Documentation/$PACKAGE_NAME $PKGROOT$DOCDIR
96fi
DRC6533b6e2010-02-15 14:57:18 +000097
DRC7c6ae032012-03-23 00:51:56 +000098if [ $BUILD32 = 1 ]; then
DRC9ef93db2010-10-18 08:24:42 +000099 if [ ! -d $BUILDDIR32 ]; then
100 echo ERROR: 32-bit build directory $BUILDDIR32 does not exist
101 exit 1
102 fi
103 if [ ! -f $BUILDDIR32/Makefile ]; then
104 echo ERROR: 32-bit build directory $BUILDDIR32 is not configured
105 exit 1
DRC315123f2010-02-15 16:14:26 +0000106 fi
107 mkdir -p $TMPDIR/dist.x86
DRC9ef93db2010-10-18 08:24:42 +0000108 pushd $BUILDDIR32
DRC3d1dd072010-06-05 03:00:36 +0000109 make install DESTDIR=$TMPDIR/dist.x86
DRC315123f2010-02-15 16:14:26 +0000110 popd
DRC7175e512013-04-23 22:29:00 +0000111 if [ ! -h $TMPDIR/dist.x86/$LIBDIR/libjpeg.@SO_MAJOR_VERSION@.dylib -a \
112 ! -h $PKGROOT/$LIBDIR/libjpeg.@SO_MAJOR_VERSION@.dylib ]; then
DRC3d1dd072010-06-05 03:00:36 +0000113 lipo -create \
DRC7175e512013-04-23 22:29:00 +0000114 -arch i386 $TMPDIR/dist.x86/$LIBDIR/libjpeg.@SO_MAJOR_VERSION@.dylib \
115 -arch x86_64 $PKGROOT/$LIBDIR/libjpeg.@SO_MAJOR_VERSION@.dylib \
116 -output $PKGROOT/$LIBDIR/libjpeg.@SO_MAJOR_VERSION@.dylib
117 elif [ ! -h $TMPDIR/dist.x86/$LIBDIR/libjpeg.@SO_MAJOR_VERSION@.0.@SO_MINOR_VERSION@.dylib -a \
118 ! -h $PKGROOT/$LIBDIR/libjpeg.@SO_MAJOR_VERSION@.0.@SO_MINOR_VERSION@.dylib ]; then
DRC3d1dd072010-06-05 03:00:36 +0000119 lipo -create \
DRC7175e512013-04-23 22:29:00 +0000120 -arch i386 $TMPDIR/dist.x86/$LIBDIR/libjpeg.@SO_MAJOR_VERSION@.0.@SO_MINOR_VERSION@.dylib \
121 -arch x86_64 $PKGROOT/$LIBDIR/libjpeg.@SO_MAJOR_VERSION@.0.@SO_MINOR_VERSION@.dylib \
122 -output $PKGROOT/$LIBDIR/libjpeg.@SO_MAJOR_VERSION@.0.@SO_MINOR_VERSION@.dylib
DRC5df6c232010-02-23 10:22:33 +0000123 fi
DRC3d1dd072010-06-05 03:00:36 +0000124 lipo -create \
DRC7175e512013-04-23 22:29:00 +0000125 -arch i386 $TMPDIR/dist.x86/$LIBDIR/libjpeg.a \
126 -arch x86_64 $PKGROOT/$LIBDIR/libjpeg.a \
127 -output $PKGROOT/$LIBDIR/libjpeg.a
DRC3d1dd072010-06-05 03:00:36 +0000128 lipo -create \
DRC7175e512013-04-23 22:29:00 +0000129 -arch i386 $TMPDIR/dist.x86/$LIBDIR/libturbojpeg.0.dylib \
130 -arch x86_64 $PKGROOT/$LIBDIR/libturbojpeg.0.dylib \
131 -output $PKGROOT/$LIBDIR/libturbojpeg.0.dylib
DRC3d1dd072010-06-05 03:00:36 +0000132 lipo -create \
DRC7175e512013-04-23 22:29:00 +0000133 -arch i386 $TMPDIR/dist.x86/$LIBDIR/libturbojpeg.a \
134 -arch x86_64 $PKGROOT/$LIBDIR/libturbojpeg.a \
135 -output $PKGROOT/$LIBDIR/libturbojpeg.a
DRC3d1dd072010-06-05 03:00:36 +0000136 lipo -create \
DRC7175e512013-04-23 22:29:00 +0000137 -arch i386 $TMPDIR/dist.x86/$BINDIR/cjpeg \
138 -arch x86_64 $PKGROOT/$BINDIR/cjpeg \
139 -output $PKGROOT/$BINDIR/cjpeg
DRC3d1dd072010-06-05 03:00:36 +0000140 lipo -create \
DRC7175e512013-04-23 22:29:00 +0000141 -arch i386 $TMPDIR/dist.x86/$BINDIR/djpeg \
142 -arch x86_64 $PKGROOT/$BINDIR/djpeg \
143 -output $PKGROOT/$BINDIR/djpeg
DRC3d1dd072010-06-05 03:00:36 +0000144 lipo -create \
DRC7175e512013-04-23 22:29:00 +0000145 -arch i386 $TMPDIR/dist.x86/$BINDIR/jpegtran \
146 -arch x86_64 $PKGROOT/$BINDIR/jpegtran \
147 -output $PKGROOT/$BINDIR/jpegtran
DRC3d1dd072010-06-05 03:00:36 +0000148 lipo -create \
DRC7175e512013-04-23 22:29:00 +0000149 -arch i386 $TMPDIR/dist.x86/$BINDIR/tjbench \
150 -arch x86_64 $PKGROOT/$BINDIR/tjbench \
151 -output $PKGROOT/$BINDIR/tjbench
DRC240d82f2011-02-19 00:00:34 +0000152 lipo -create \
DRC7175e512013-04-23 22:29:00 +0000153 -arch i386 $TMPDIR/dist.x86/$BINDIR/rdjpgcom \
154 -arch x86_64 $PKGROOT/$BINDIR/rdjpgcom \
155 -output $PKGROOT/$BINDIR/rdjpgcom
DRC3d1dd072010-06-05 03:00:36 +0000156 lipo -create \
DRC7175e512013-04-23 22:29:00 +0000157 -arch i386 $TMPDIR/dist.x86/$BINDIR/wrjpgcom \
158 -arch x86_64 $PKGROOT/$BINDIR/wrjpgcom \
159 -output $PKGROOT/$BINDIR/wrjpgcom
DRC8e2bba92010-06-04 23:54:10 +0000160
DRC315123f2010-02-15 16:14:26 +0000161fi
162
DRC7c6ae032012-03-23 00:51:56 +0000163if [ $BUILDARMV6 = 1 ]; then
DRC20b734e2012-02-10 01:30:37 +0000164 if [ ! -d $BUILDDIRARMV6 ]; then
165 echo ERROR: ARM v6 build directory $BUILDDIRARMV6 does not exist
166 exit 1
167 fi
168 if [ ! -f $BUILDDIRARMV6/Makefile ]; then
169 echo ERROR: ARM v6 build directory $BUILDDIRARMV6 is not configured
170 exit 1
171 fi
172 mkdir -p $TMPDIR/dist.armv6
173 pushd $BUILDDIRARMV6
174 make install DESTDIR=$TMPDIR/dist.armv6
175 popd
176 lipo -create \
DRC7175e512013-04-23 22:29:00 +0000177 $PKGROOT/$LIBDIR/libjpeg.a \
178 -arch arm $TMPDIR/dist.armv6/$LIBDIR/libjpeg.a \
179 -output $PKGROOT/$LIBDIR/libjpeg.a
DRC20b734e2012-02-10 01:30:37 +0000180 lipo -create \
DRC7175e512013-04-23 22:29:00 +0000181 $PKGROOT/$LIBDIR/libturbojpeg.a \
182 -arch arm $TMPDIR/dist.armv6/$LIBDIR/libturbojpeg.a \
183 -output $PKGROOT/$LIBDIR/libturbojpeg.a
DRC20b734e2012-02-10 01:30:37 +0000184fi
185
DRC7c6ae032012-03-23 00:51:56 +0000186if [ $BUILDARMV7 = 1 ]; then
DRC20b734e2012-02-10 01:30:37 +0000187 if [ ! -d $BUILDDIRARMV7 ]; then
188 echo ERROR: ARM v7 build directory $BUILDDIRARMV7 does not exist
189 exit 1
190 fi
191 if [ ! -f $BUILDDIRARMV7/Makefile ]; then
192 echo ERROR: ARM v7 build directory $BUILDDIRARMV7 is not configured
193 exit 1
194 fi
195 mkdir -p $TMPDIR/dist.armv7
196 pushd $BUILDDIRARMV7
197 make install DESTDIR=$TMPDIR/dist.armv7
198 popd
199 lipo -create \
DRC7175e512013-04-23 22:29:00 +0000200 $PKGROOT/$LIBDIR/libjpeg.a \
201 -arch arm $TMPDIR/dist.armv7/$LIBDIR/libjpeg.a \
202 -output $PKGROOT/$LIBDIR/libjpeg.a
DRC20b734e2012-02-10 01:30:37 +0000203 lipo -create \
DRC7175e512013-04-23 22:29:00 +0000204 $PKGROOT/$LIBDIR/libturbojpeg.a \
205 -arch arm $TMPDIR/dist.armv7/$LIBDIR/libturbojpeg.a \
206 -output $PKGROOT/$LIBDIR/libturbojpeg.a
DRC20b734e2012-02-10 01:30:37 +0000207fi
208
DRCa2a2cd62013-02-04 22:29:57 +0000209if [ $BUILDARMV7S = 1 ]; then
210 if [ ! -d $BUILDDIRARMV7S ]; then
211 echo ERROR: ARM v7s build directory $BUILDDIRARMV7S does not exist
212 exit 1
213 fi
214 if [ ! -f $BUILDDIRARMV7S/Makefile ]; then
215 echo ERROR: ARM v7s build directory $BUILDDIRARMV7S is not configured
216 exit 1
217 fi
218 mkdir -p $TMPDIR/dist.armv7s
219 pushd $BUILDDIRARMV7S
220 make install DESTDIR=$TMPDIR/dist.armv7s
221 popd
222 lipo -create \
DRC7175e512013-04-23 22:29:00 +0000223 $PKGROOT/$LIBDIR/libjpeg.a \
224 -arch arm $TMPDIR/dist.armv7s/$LIBDIR/libjpeg.a \
225 -output $PKGROOT/$LIBDIR/libjpeg.a
DRCa2a2cd62013-02-04 22:29:57 +0000226 lipo -create \
DRC7175e512013-04-23 22:29:00 +0000227 $PKGROOT/$LIBDIR/libturbojpeg.a \
228 -arch arm $TMPDIR/dist.armv7s/$LIBDIR/libturbojpeg.a \
229 -output $PKGROOT/$LIBDIR/libturbojpeg.a
DRCa2a2cd62013-02-04 22:29:57 +0000230fi
231
DRC7175e512013-04-23 22:29:00 +0000232install_name_tool -id $LIBDIR/libjpeg.@SO_MAJOR_VERSION@.dylib $PKGROOT/$LIBDIR/libjpeg.@SO_MAJOR_VERSION@.dylib
233install_name_tool -id $LIBDIR/libturbojpeg.0.dylib $PKGROOT/$LIBDIR/libturbojpeg.0.dylib
DRC315123f2010-02-15 16:14:26 +0000234
DRCf2602ce2011-04-01 00:20:33 +0000235if [ $WITH_JAVA = 1 ]; then
DRC7175e512013-04-23 22:29:00 +0000236 ln -fs libturbojpeg.0.dylib $PKGROOT/$LIBDIR/libturbojpeg.jnilib
DRC25c58702011-02-05 04:41:36 +0000237fi
DRC7175e512013-04-23 22:29:00 +0000238if [ "$PREFIX" = "/opt/libjpeg-turbo" -a "$LIBDIR" = "/opt/libjpeg-turbo/lib" ]; then
239 if [ ! -h $PKGROOT/$PREFIX/lib32 ]; then
240 ln -fs lib $PKGROOT/$PREFIX/lib32
241 fi
242 if [ ! -h $PKGROOT/$PREFIX/lib64 ]; then
243 ln -fs lib $PKGROOT/$PREFIX/lib64
244 fi
DRCd1c281a2010-11-17 22:44:40 +0000245fi
DRCf12c7db2010-05-18 19:04:47 +0000246
DRCb1068fa2014-03-23 17:53:07 +0000247mkdir -p $TMPDIR/pkg
DRC6533b6e2010-02-15 14:57:18 +0000248
DRC7175e512013-04-23 22:29:00 +0000249install -m 755 pkgscripts/uninstall $PKGROOT/$BINDIR/
DRC6533b6e2010-02-15 14:57:18 +0000250
DRCb1068fa2014-03-23 17:53:07 +0000251find $PKGROOT -type f | while read file; do xattr -c $file; done
252
253cp $SRCDIR/release/License.rtf $SRCDIR/release/Welcome.rtf $SRCDIR/release/ReadMe.txt $TMPDIR/pkg/
DRC6533b6e2010-02-15 14:57:18 +0000254
255mkdir $TMPDIR/dmg
DRCb1068fa2014-03-23 17:53:07 +0000256pkgbuild --root $PKGROOT --version $VERSION.$BUILD \
257 --identifier com.libjpeg-turbo.libjpeg-turbo $TMPDIR/pkg/$PACKAGE_NAME.pkg
258productbuild --distribution $SRCDIR/release/Distribution.xml \
259 --package-path $TMPDIR/pkg/ --resources $TMPDIR/pkg/ \
260 $TMPDIR/dmg/$PACKAGE_NAME.pkg
DRC6533b6e2010-02-15 14:57:18 +0000261hdiutil create -fs HFS+ -volname $PACKAGE_NAME-$VERSION \
DRCb94f2de2011-03-22 09:31:25 +0000262 -srcfolder "$TMPDIR/dmg" $TMPDIR/$PACKAGE_NAME-$VERSION.dmg
263cp $TMPDIR/$PACKAGE_NAME-$VERSION.dmg .
DRC6533b6e2010-02-15 14:57:18 +0000264
DRC051dd5a2010-02-17 01:07:46 +0000265exit