Allow Mac and Solaris packages to be built with v7/v8b emulated libraries

This commit is contained in:
DRC
2010-10-21 19:47:06 +00:00
parent 8705f11462
commit b4aae95e78
5 changed files with 72 additions and 56 deletions

View File

@@ -540,6 +540,20 @@ make udmg [BUILDDIR32={32-bit build directory}]
{source_directory}/osxx86 by default, but you can override this by setting {source_directory}/osxx86 by default, but you can override this by setting
the BUILDDIR32 variable on the make command line as shown above. the BUILDDIR32 variable on the make command line as shown above.
make sunpkg
Build a Solaris package. This requires pkgmk, pkgtrans, and bzip2.
make csunpkg [BUILDDIR32={32-bit build directory}]
On 64-bit Solaris systems, this creates a combined package which contains
both 32-bit and 64-bit libraries. You should first configure a 32-bit
out-of-tree build of libjpeg-turbo, then configure a 64-bit out-of-tree
build, then run 'make csunpkg' from the 64-bit build directory. The build
system will look for the 32-bit build under {source_directory}/solx86 by
default, but you can override this by setting the BUILDDIR32 variable on the
make command line as shown above.
make cygwinpkg make cygwinpkg
Build a Cygwin binary package. Build a Cygwin binary package.

View File

@@ -203,30 +203,23 @@ deb: all
if X86_64 if X86_64
BUILDDIR32=${srcdir}/osxx86
udmg: all udmg: all
sh $(srcdir)/release/makemacpkg ${PACKAGE_NAME} ${VERSION} ${BUILD} \ sh makemacpkg universal ${BUILDDIR32}
${srcdir} ${BUILDDIR32}
endif endif
dmg: all dmg: all
sh $(srcdir)/release/makemacpkg ${PACKAGE_NAME} ${VERSION} ${BUILD} ${srcdir} sh makemacpkg
if X86_64 if X86_64
sunpkg: all csunpkg: all
sh $(srcdir)/release/makesunpkg ${PACKAGE_NAME} ${VERSION} ${BUILD} \ sh makesunpkg combined ${BUILDDIR32}
${DEBARCH} ${srcdir} $(CC) $(CXX) combined
else
sunpkg: all
sh $(srcdir)/release/makesunpkg ${PACKAGE_NAME} ${VERSION} ${BUILD} \
${DEBARCH} ${srcdir} $(CC) $(CXX)
endif endif
sunpkg: all
sh makesunpkg
cygwinpkg: all cygwinpkg: all
sh $(srcdir)/release/makecygwinpkg ${PACKAGE_NAME} ${VERSION} ${srcdir} sh $(srcdir)/release/makecygwinpkg ${PACKAGE_NAME} ${VERSION} ${srcdir}

View File

@@ -268,6 +268,8 @@ AC_DEFINE_UNQUOTED([BUILD], "$BUILD", [Build number])
AC_CONFIG_HEADERS([config.h]) AC_CONFIG_HEADERS([config.h])
AC_CONFIG_HEADERS([jconfig.h]) AC_CONFIG_HEADERS([jconfig.h])
AC_CONFIG_FILES([libjpeg-turbo.spec:release/libjpeg-turbo.spec.in]) AC_CONFIG_FILES([libjpeg-turbo.spec:release/libjpeg-turbo.spec.in])
AC_CONFIG_FILES([makemacpkg:release/makemacpkg.in])
AC_CONFIG_FILES([makesunpkg:release/makesunpkg.in])
AC_CONFIG_FILES([libjpeg.map]) AC_CONFIG_FILES([libjpeg.map])
AC_CONFIG_FILES([Makefile simd/Makefile]) AC_CONFIG_FILES([Makefile simd/Makefile])
AC_OUTPUT AC_OUTPUT

View File

@@ -17,20 +17,22 @@ onexit()
usage() usage()
{ {
echo "$0 <package name> <version> <build> <source dir.> [32-bit build dir]" echo "$0 [universal [32-bit build dir]]"
exit 1 exit 1
} }
UNIVERSAL=0 UNIVERSAL=0
if [ $# -lt 4 ]; then usage $0; fi PACKAGE_NAME=@PACKAGE_NAME@
PACKAGE_NAME=$1 VERSION=@VERSION@
VERSION=$2 BUILD=@BUILD@
BUILD=$3 SRCDIR=@srcdir@
SRCDIR=$4 BUILDDIR32=@srcdir@/osxx86
if [ $# -gt 4 ]; then if [ $# -gt 0 ]; then
BUILDDIR32=$5 if [ "$1" = "universal" ]; then
UNIVERSAL=1 UNIVERSAL=1
if [ $# -gt 1 ]; then BUILDDIR32=$2; fi
fi
fi fi
PACKAGEMAKER=/Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker PACKAGEMAKER=/Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker
@@ -63,18 +65,18 @@ if [ $UNIVERSAL = 1 ]; then
pushd $BUILDDIR32 pushd $BUILDDIR32
make install DESTDIR=$TMPDIR/dist.x86 make install DESTDIR=$TMPDIR/dist.x86
popd popd
if [ ! -h $TMPDIR/dist.x86/opt/$PACKAGE_NAME/lib/libjpeg.62.dylib -a \ if [ ! -h $TMPDIR/dist.x86/opt/$PACKAGE_NAME/lib/libjpeg.@SO_MAJOR_VERSION@.dylib -a \
! -h $PKGROOT/opt/$PACKAGE_NAME/lib/libjpeg.62.dylib ]; then ! -h $PKGROOT/opt/$PACKAGE_NAME/lib/libjpeg.@SO_MAJOR_VERSION@.dylib ]; then
lipo -create \ lipo -create \
-arch i386 $TMPDIR/dist.x86/opt/$PACKAGE_NAME/lib/libjpeg.62.dylib \ -arch i386 $TMPDIR/dist.x86/opt/$PACKAGE_NAME/lib/libjpeg.@SO_MAJOR_VERSION@.dylib \
-arch x86_64 $PKGROOT/opt/$PACKAGE_NAME/lib/libjpeg.62.dylib \ -arch x86_64 $PKGROOT/opt/$PACKAGE_NAME/lib/libjpeg.@SO_MAJOR_VERSION@.dylib \
-output $PKGROOT/opt/$PACKAGE_NAME/lib/libjpeg.62.dylib -output $PKGROOT/opt/$PACKAGE_NAME/lib/libjpeg.@SO_MAJOR_VERSION@.dylib
elif [ ! -h $TMPDIR/dist.x86/opt/$PACKAGE_NAME/lib/libjpeg.62.0.0.dylib -a \ elif [ ! -h $TMPDIR/dist.x86/opt/$PACKAGE_NAME/lib/libjpeg.@SO_MAJOR_VERSION@.0.@SO_MINOR_VERSION@.dylib -a \
! -h $PKGROOT/opt/$PACKAGE_NAME/lib/libjpeg.62.0.0.dylib ]; then ! -h $PKGROOT/opt/$PACKAGE_NAME/lib/libjpeg.@SO_MAJOR_VERSION@.0.@SO_MINOR_VERSION@.dylib ]; then
lipo -create \ lipo -create \
-arch i386 $TMPDIR/dist.x86/opt/$PACKAGE_NAME/lib/libjpeg.62.0.0.dylib \ -arch i386 $TMPDIR/dist.x86/opt/$PACKAGE_NAME/lib/libjpeg.@SO_MAJOR_VERSION@.0.@SO_MINOR_VERSION@.dylib \
-arch x86_64 $PKGROOT/opt/$PACKAGE_NAME/lib/libjpeg.62.0.0.dylib \ -arch x86_64 $PKGROOT/opt/$PACKAGE_NAME/lib/libjpeg.@SO_MAJOR_VERSION@.0.@SO_MINOR_VERSION@.dylib \
-output $PKGROOT/opt/$PACKAGE_NAME/lib/libjpeg.62.0.0.dylib -output $PKGROOT/opt/$PACKAGE_NAME/lib/libjpeg.@SO_MAJOR_VERSION@.0.@SO_MINOR_VERSION@.dylib
fi fi
lipo -create \ lipo -create \
-arch i386 $TMPDIR/dist.x86/opt/$PACKAGE_NAME/lib/libjpeg.a \ -arch i386 $TMPDIR/dist.x86/opt/$PACKAGE_NAME/lib/libjpeg.a \
@@ -111,7 +113,7 @@ if [ $UNIVERSAL = 1 ]; then
fi fi
install_name_tool -id /opt/$PACKAGE_NAME/lib/libjpeg.62.dylib $PKGROOT/opt/$PACKAGE_NAME/lib/libjpeg.62.dylib install_name_tool -id /opt/$PACKAGE_NAME/lib/libjpeg.@SO_MAJOR_VERSION@.dylib $PKGROOT/opt/$PACKAGE_NAME/lib/libjpeg.@SO_MAJOR_VERSION@.dylib
install_name_tool -id libturbojpeg.dylib $PKGROOT/usr/lib/libturbojpeg.dylib install_name_tool -id libturbojpeg.dylib $PKGROOT/usr/lib/libturbojpeg.dylib
ln -fs /usr/include/turbojpeg.h $PKGROOT/opt/$PACKAGE_NAME/include/ ln -fs /usr/include/turbojpeg.h $PKGROOT/opt/$PACKAGE_NAME/include/

View File

@@ -17,22 +17,23 @@ onexit()
usage() usage()
{ {
echo "$0 <package name> <version> <build> <package architecture> <source dir.> [combined]" echo "$0 [combined [32-bit build dir.]]"
exit 1 exit 1
} }
COMBINED=0 COMBINED=0
if [ $# -lt 4 ]; then usage $0; fi PACKAGE_NAME=@PACKAGE_NAME@
PACKAGE_NAME=$1 VERSION=@VERSION@
VERSION=$2 BUILD=@BUILD@
BUILD=$3 PKGARCH=@DEBARCH@
PKGARCH=$4 SRCDIR=@srcdir@
SRCDIR=$5 BUILDDIR32=@srcdir@/solx86
CC=$6 if [ $# -gt 0 ]; then
CXX=$7 if [ "$1" = "combined" ]; then
if [ $# -gt 7 ]; then COMBINED=1
if [ "$8" = "combined" ]; then COMBINED=1; fi if [ $# -gt 1 ]; then BUILDDIR32=$2; fi
fi
fi fi
umask 022 umask 022
@@ -50,17 +51,21 @@ else
__LIB=lib/$PKGARCH __LIB=lib/$PKGARCH
fi fi
# This mess is to work around a bug in /usr/ccs/bin/make
if [ $COMBINED = 1 ]; then if [ $COMBINED = 1 ]; then
if [ ! -d $SRCDIR/solx86 ]; then if [ ! -d $BUILDDIR32 ]; then
mkdir -p $SRCDIR/solx86 echo ERROR: 32-bit build directory $BUILDDIR32 does not exist
exit 1
fi
if [ ! -f $BUILDDIR32/Makefile ]; then
echo ERROR: 32-bit build directory $BUILDDIR32 is not configured
exit 1
fi fi
PWD=`pwd` PWD=`pwd`
cd $SRCDIR/solx86 cd $BUILDDIR32
sh $SRCDIR/configure --with-pic CC=$CC CXX=$CXX CFLAGS= CXXFLAGS= LDFLAGS= host_alias=
make install DESTDIR=$TMPDIR mandir=/opt/$PACKAGE_NAME/man AM_MAKEFLAGS="mandir=/opt/$PACKAGE_NAME/man" make install DESTDIR=$TMPDIR mandir=/opt/$PACKAGE_NAME/man AM_MAKEFLAGS="mandir=/opt/$PACKAGE_NAME/man"
cd $PWD cd $PWD
fi fi
# This mess is to work around a bug in /usr/ccs/bin/make
make install DESTDIR=$TMPDIR libdir=/opt/$PACKAGE_NAME/$__LIB mandir=/opt/$PACKAGE_NAME/man AM_MAKEFLAGS="libdir=/opt/$PACKAGE_NAME/$__LIB mandir=/opt/$PACKAGE_NAME/man" make install DESTDIR=$TMPDIR libdir=/opt/$PACKAGE_NAME/$__LIB mandir=/opt/$PACKAGE_NAME/man AM_MAKEFLAGS="libdir=/opt/$PACKAGE_NAME/$__LIB mandir=/opt/$PACKAGE_NAME/man"
rm -f $TMPDIR/opt/$PACKAGE_NAME/$__LIB/*.la rm -f $TMPDIR/opt/$PACKAGE_NAME/$__LIB/*.la
mkdir -p $TMPDIR/opt/$PACKAGE_NAME/doc mkdir -p $TMPDIR/opt/$PACKAGE_NAME/doc
@@ -82,9 +87,9 @@ d none $PACKAGE_NAME/lib 0755 root bin
EOF EOF
if [ $COMBINED = 1 ]; then if [ $COMBINED = 1 ]; then
cat >>$TMPDIR/proto <<EOF cat >>$TMPDIR/proto <<EOF
f none $PACKAGE_NAME/lib/libjpeg.so.62.0.0 0755 root bin f none $PACKAGE_NAME/lib/libjpeg.so.@SO_MAJOR_VERSION@.0.@SO_MINOR_VERSION@ 0755 root bin
s none $PACKAGE_NAME/lib/libjpeg.so.62=libjpeg.so.62.0.0 s none $PACKAGE_NAME/lib/libjpeg.so.@SO_MAJOR_VERSION@=libjpeg.so.@SO_MAJOR_VERSION@.0.@SO_MINOR_VERSION@
s none $PACKAGE_NAME/lib/libjpeg.so=libjpeg.so.62.0.0 s none $PACKAGE_NAME/lib/libjpeg.so=libjpeg.so.@SO_MAJOR_VERSION@.0.@SO_MINOR_VERSION@
f none $PACKAGE_NAME/lib/libjpeg.a 0644 root bin f none $PACKAGE_NAME/lib/libjpeg.a 0644 root bin
f none $PACKAGE_NAME/lib/libturbojpeg.so 0755 root bin f none $PACKAGE_NAME/lib/libturbojpeg.so 0755 root bin
f none $PACKAGE_NAME/lib/libturbojpeg.a 0644 root bin f none $PACKAGE_NAME/lib/libturbojpeg.a 0644 root bin
@@ -96,9 +101,9 @@ echo s none $PACKAGE_NAME/lib64=${__LIB} >>$TMPDIR/proto
echo s none $PACKAGE_NAME/lib/64=$PKGARCH >>$TMPDIR/proto echo s none $PACKAGE_NAME/lib/64=$PKGARCH >>$TMPDIR/proto
fi fi
cat >>$TMPDIR/proto <<EOF cat >>$TMPDIR/proto <<EOF
f none $PACKAGE_NAME/${__LIB}/libjpeg.so.62.0.0 0755 root bin f none $PACKAGE_NAME/${__LIB}/libjpeg.so.@SO_MAJOR_VERSION@.0.@SO_MINOR_VERSION@ 0755 root bin
s none $PACKAGE_NAME/${__LIB}/libjpeg.so.62=libjpeg.so.62.0.0 s none $PACKAGE_NAME/${__LIB}/libjpeg.so.@SO_MAJOR_VERSION@=libjpeg.so.@SO_MAJOR_VERSION@.0.@SO_MINOR_VERSION@
s none $PACKAGE_NAME/${__LIB}/libjpeg.so=libjpeg.so.62.0.0 s none $PACKAGE_NAME/${__LIB}/libjpeg.so=libjpeg.so.@SO_MAJOR_VERSION@.0.@SO_MINOR_VERSION@
f none $PACKAGE_NAME/${__LIB}/libjpeg.a 0644 root bin f none $PACKAGE_NAME/${__LIB}/libjpeg.a 0644 root bin
f none $PACKAGE_NAME/${__LIB}/libturbojpeg.so 0755 root bin f none $PACKAGE_NAME/${__LIB}/libturbojpeg.so 0755 root bin
f none $PACKAGE_NAME/${__LIB}/libturbojpeg.a 0644 root bin f none $PACKAGE_NAME/${__LIB}/libturbojpeg.a 0644 root bin