From: DRC Date: Thu, 21 Oct 2010 19:47:06 +0000 (+0000) Subject: Allow Mac and Solaris packages to be built with v7/v8b emulated libraries X-Git-Tag: 1.0.90~31 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0f53df8f719f82cdb142b1720930a2ca6e6530b6;p=libjpeg-turbo Allow Mac and Solaris packages to be built with v7/v8b emulated libraries git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@286 632fc199-4ca6-4c93-a231-07263d6284db --- diff --git a/BUILDING.txt b/BUILDING.txt index f99babe..28ff0a3 100644 --- a/BUILDING.txt +++ b/BUILDING.txt @@ -540,6 +540,20 @@ make udmg [BUILDDIR32={32-bit build directory}] {source_directory}/osxx86 by default, but you can override this by setting 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 Build a Cygwin binary package. diff --git a/Makefile.am b/Makefile.am index 9eef5d2..adc4cb6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -203,30 +203,23 @@ deb: all if X86_64 -BUILDDIR32=${srcdir}/osxx86 - udmg: all - sh $(srcdir)/release/makemacpkg ${PACKAGE_NAME} ${VERSION} ${BUILD} \ - ${srcdir} ${BUILDDIR32} + sh makemacpkg universal ${BUILDDIR32} endif dmg: all - sh $(srcdir)/release/makemacpkg ${PACKAGE_NAME} ${VERSION} ${BUILD} ${srcdir} + sh makemacpkg if X86_64 -sunpkg: all - sh $(srcdir)/release/makesunpkg ${PACKAGE_NAME} ${VERSION} ${BUILD} \ - ${DEBARCH} ${srcdir} $(CC) $(CXX) combined +csunpkg: all + sh makesunpkg combined ${BUILDDIR32} -else +endif sunpkg: all - sh $(srcdir)/release/makesunpkg ${PACKAGE_NAME} ${VERSION} ${BUILD} \ - ${DEBARCH} ${srcdir} $(CC) $(CXX) - -endif + sh makesunpkg cygwinpkg: all sh $(srcdir)/release/makecygwinpkg ${PACKAGE_NAME} ${VERSION} ${srcdir} diff --git a/configure.ac b/configure.ac index 782ae19..489c950 100644 --- a/configure.ac +++ b/configure.ac @@ -268,6 +268,8 @@ AC_DEFINE_UNQUOTED([BUILD], "$BUILD", [Build number]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_HEADERS([jconfig.h]) 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([Makefile simd/Makefile]) AC_OUTPUT diff --git a/release/makemacpkg b/release/makemacpkg.in similarity index 78% rename from release/makemacpkg rename to release/makemacpkg.in index c7f3fbd..b5a7422 100644 --- a/release/makemacpkg +++ b/release/makemacpkg.in @@ -17,20 +17,22 @@ onexit() usage() { - echo "$0 [32-bit build dir]" + echo "$0 [universal [32-bit build dir]]" exit 1 } UNIVERSAL=0 -if [ $# -lt 4 ]; then usage $0; fi -PACKAGE_NAME=$1 -VERSION=$2 -BUILD=$3 -SRCDIR=$4 -if [ $# -gt 4 ]; then - BUILDDIR32=$5 - UNIVERSAL=1 +PACKAGE_NAME=@PACKAGE_NAME@ +VERSION=@VERSION@ +BUILD=@BUILD@ +SRCDIR=@srcdir@ +BUILDDIR32=@srcdir@/osxx86 +if [ $# -gt 0 ]; then + if [ "$1" = "universal" ]; then + UNIVERSAL=1 + if [ $# -gt 1 ]; then BUILDDIR32=$2; fi + fi fi PACKAGEMAKER=/Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker @@ -63,18 +65,18 @@ if [ $UNIVERSAL = 1 ]; then pushd $BUILDDIR32 make install DESTDIR=$TMPDIR/dist.x86 popd - if [ ! -h $TMPDIR/dist.x86/opt/$PACKAGE_NAME/lib/libjpeg.62.dylib -a \ - ! -h $PKGROOT/opt/$PACKAGE_NAME/lib/libjpeg.62.dylib ]; then + if [ ! -h $TMPDIR/dist.x86/opt/$PACKAGE_NAME/lib/libjpeg.@SO_MAJOR_VERSION@.dylib -a \ + ! -h $PKGROOT/opt/$PACKAGE_NAME/lib/libjpeg.@SO_MAJOR_VERSION@.dylib ]; then lipo -create \ - -arch i386 $TMPDIR/dist.x86/opt/$PACKAGE_NAME/lib/libjpeg.62.dylib \ - -arch x86_64 $PKGROOT/opt/$PACKAGE_NAME/lib/libjpeg.62.dylib \ - -output $PKGROOT/opt/$PACKAGE_NAME/lib/libjpeg.62.dylib - elif [ ! -h $TMPDIR/dist.x86/opt/$PACKAGE_NAME/lib/libjpeg.62.0.0.dylib -a \ - ! -h $PKGROOT/opt/$PACKAGE_NAME/lib/libjpeg.62.0.0.dylib ]; then + -arch i386 $TMPDIR/dist.x86/opt/$PACKAGE_NAME/lib/libjpeg.@SO_MAJOR_VERSION@.dylib \ + -arch x86_64 $PKGROOT/opt/$PACKAGE_NAME/lib/libjpeg.@SO_MAJOR_VERSION@.dylib \ + -output $PKGROOT/opt/$PACKAGE_NAME/lib/libjpeg.@SO_MAJOR_VERSION@.dylib + 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.@SO_MAJOR_VERSION@.0.@SO_MINOR_VERSION@.dylib ]; then lipo -create \ - -arch i386 $TMPDIR/dist.x86/opt/$PACKAGE_NAME/lib/libjpeg.62.0.0.dylib \ - -arch x86_64 $PKGROOT/opt/$PACKAGE_NAME/lib/libjpeg.62.0.0.dylib \ - -output $PKGROOT/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.@SO_MAJOR_VERSION@.0.@SO_MINOR_VERSION@.dylib \ + -output $PKGROOT/opt/$PACKAGE_NAME/lib/libjpeg.@SO_MAJOR_VERSION@.0.@SO_MINOR_VERSION@.dylib fi lipo -create \ -arch i386 $TMPDIR/dist.x86/opt/$PACKAGE_NAME/lib/libjpeg.a \ @@ -111,7 +113,7 @@ if [ $UNIVERSAL = 1 ]; then 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 ln -fs /usr/include/turbojpeg.h $PKGROOT/opt/$PACKAGE_NAME/include/ diff --git a/release/makesunpkg b/release/makesunpkg.in similarity index 76% rename from release/makesunpkg rename to release/makesunpkg.in index d921d96..5180225 100644 --- a/release/makesunpkg +++ b/release/makesunpkg.in @@ -17,22 +17,23 @@ onexit() usage() { - echo "$0 [combined]" + echo "$0 [combined [32-bit build dir.]]" exit 1 } COMBINED=0 -if [ $# -lt 4 ]; then usage $0; fi -PACKAGE_NAME=$1 -VERSION=$2 -BUILD=$3 -PKGARCH=$4 -SRCDIR=$5 -CC=$6 -CXX=$7 -if [ $# -gt 7 ]; then - if [ "$8" = "combined" ]; then COMBINED=1; fi +PACKAGE_NAME=@PACKAGE_NAME@ +VERSION=@VERSION@ +BUILD=@BUILD@ +PKGARCH=@DEBARCH@ +SRCDIR=@srcdir@ +BUILDDIR32=@srcdir@/solx86 +if [ $# -gt 0 ]; then + if [ "$1" = "combined" ]; then + COMBINED=1 + if [ $# -gt 1 ]; then BUILDDIR32=$2; fi + fi fi umask 022 @@ -50,17 +51,21 @@ else __LIB=lib/$PKGARCH fi -# This mess is to work around a bug in /usr/ccs/bin/make if [ $COMBINED = 1 ]; then - if [ ! -d $SRCDIR/solx86 ]; then - mkdir -p $SRCDIR/solx86 + if [ ! -d $BUILDDIR32 ]; then + 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 PWD=`pwd` - cd $SRCDIR/solx86 - sh $SRCDIR/configure --with-pic CC=$CC CXX=$CXX CFLAGS= CXXFLAGS= LDFLAGS= host_alias= + cd $BUILDDIR32 make install DESTDIR=$TMPDIR mandir=/opt/$PACKAGE_NAME/man AM_MAKEFLAGS="mandir=/opt/$PACKAGE_NAME/man" cd $PWD 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" rm -f $TMPDIR/opt/$PACKAGE_NAME/$__LIB/*.la mkdir -p $TMPDIR/opt/$PACKAGE_NAME/doc @@ -82,9 +87,9 @@ d none $PACKAGE_NAME/lib 0755 root bin EOF if [ $COMBINED = 1 ]; then cat >>$TMPDIR/proto <>$TMPDIR/proto echo s none $PACKAGE_NAME/lib/64=$PKGARCH >>$TMPDIR/proto fi cat >>$TMPDIR/proto <