From 7175e517923a1c05828fe2d5bdcd25f90ce94cb6 Mon Sep 17 00:00:00 2001 From: DRC Date: Tue, 23 Apr 2013 22:29:00 +0000 Subject: [PATCH] Further enhancements/fixes to the packaging system: -- The Mac and Cygwin packages will now be created with the directory structure defined by the configure variables "prefix", "bindir", "libdir", etc., with the exception that the docs are always installed under /usr/share/doc/{package_name}-{version} on Cygwin and /Library/Documentation/{package_name} on Mac. -- Fixed a duplicate filename warning when generating RPMs with the default prefix of /opt/libjpeg-turbo. -- Moved the TurboJPEG libraries out of the system directory on Windows and Mac. It is no longer necessary to put them there, since we are not trying to be backward compatible with TurboJPEG/IPP anymore. -- Fixed an issue whereby building the "installer" target on Windows would not build the Java JAR file, thus causing an error if the JAR had not been previously built. -- Building the "install" target on Windows will now install libjpeg-turbo into c:\libjpeg-turbo[-gcc][64] (the same directories used by the installers.) This can be overridden by setting CMAKE_INSTALL_PREFIX. -- The Java classes on all platforms will now look for the JNI library in the directory under which the build/packaging system installs it. git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@946 632fc199-4ca6-4c93-a231-07263d6284db --- CMakeLists.txt | 29 +++- Makefile.am | 28 +++- configure.ac | 11 +- java/Makefile.am | 6 + .../libjpegturbo/turbojpeg/TJLoader.java.in | 8 +- .../{TJLoader.java => TJLoader.java.tmpl} | 11 +- release/libjpeg-turbo.nsi.in | 36 ++-- release/libjpeg-turbo.spec.in | 11 +- release/makecygwinpkg.in | 13 +- release/makedpkg.in | 10 +- release/makemacpkg.in | 155 +++++++++--------- release/uninstall.in | 49 ++++-- 12 files changed, 219 insertions(+), 148 deletions(-) rename java/org/libjpegturbo/turbojpeg/{TJLoader.java => TJLoader.java.tmpl} (84%) diff --git a/CMakeLists.txt b/CMakeLists.txt index f1515d0e..98fee90a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -122,6 +122,22 @@ else() message(STATUS "32-bit build") endif() +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + if(MSVC) + set(CMAKE_INSTALL_PREFIX_DEFAULT ${CMAKE_PROJECT_NAME}) + else() + set(CMAKE_INSTALL_PREFIX_DEFAULT ${CMAKE_PROJECT_NAME}-gcc) + endif() + if(64BIT) + set(CMAKE_INSTALL_PREFIX_DEFAULT ${CMAKE_INSTALL_PREFIX_DEFAULT}64) + endif() + set(CMAKE_INSTALL_PREFIX "c:/${CMAKE_INSTALL_PREFIX_DEFAULT}" CACHE PATH + "Directory into which to install libjpeg-turbo (default: c:/${CMAKE_INSTALL_PREFIX_DEFAULT})" + FORCE) +endif() + +message(STATUS "Install directory = ${CMAKE_INSTALL_PREFIX}") + configure_file(win/jconfig.h.in jconfig.h) configure_file(win/config.h.in config.h) @@ -422,18 +438,18 @@ add_custom_target(testclean COMMAND ${CMAKE_COMMAND} -P if(MSVC) set(INST_PLATFORM "Visual C++") set(INST_NAME ${CMAKE_PROJECT_NAME}-${VERSION}-vc) - set(INST_DIR ${CMAKE_PROJECT_NAME}) + set(INST_REG_NAME ${CMAKE_PROJECT_NAME}) elseif(MINGW) set(INST_PLATFORM GCC) set(INST_NAME ${CMAKE_PROJECT_NAME}-${VERSION}-gcc) - set(INST_DIR ${CMAKE_PROJECT_NAME}-gcc) + set(INST_REG_NAME ${CMAKE_PROJECT_NAME}-gcc) set(INST_DEFS -DGCC) endif() if(64BIT) set(INST_PLATFORM "${INST_PLATFORM} 64-bit") set(INST_NAME ${INST_NAME}64) - set(INST_DIR ${INST_DIR}64) + set(INST_REG_NAME ${INST_DIR}64) set(INST_DEFS ${INST_DEFS} -DWIN64) endif() @@ -447,12 +463,17 @@ else() set(INST_DEFS ${INST_DEFS} "-DBUILDDIR=") endif() +STRING(REGEX REPLACE "/" "\\\\" INST_DIR ${CMAKE_INSTALL_PREFIX}) + configure_file(release/libjpeg-turbo.nsi.in libjpeg-turbo.nsi @ONLY) +if(WITH_JAVA) + set(JAVA_DEPEND java) +endif() add_custom_target(installer makensis -nocd ${INST_DEFS} libjpeg-turbo.nsi DEPENDS jpeg jpeg-static turbojpeg turbojpeg-static rdjpgcom wrjpgcom - cjpeg djpeg jpegtran tjbench + cjpeg djpeg jpegtran tjbench ${JAVA_DEPEND} SOURCES libjpeg-turbo.nsi) install(TARGETS jpeg-static turbojpeg turbojpeg-static rdjpgcom wrjpgcom tjbench diff --git a/Makefile.am b/Makefile.am index 832b1727..ade5034e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -358,31 +358,45 @@ srpm: dist-gzip pkgscripts/libjpeg-turbo.spec pkgscripts/makedpkg: pkgscripts/makedpkg.tmpl cat pkgscripts/makedpkg.tmpl | sed s@%{__prefix}@$(prefix)@g | \ - sed s@%{__bindir}@$(bindir)@g | sed s@%{__datadir}@$(datadir)@g | \ - sed s@%{__docdir}@$(docdir)@g | sed s@%{__includedir}@$(includedir)@g | \ - sed s@%{__libdir}@$(libdir)@g | sed s@%{__mandir}@$(mandir)@g \ + sed s@%{__docdir}@$(docdir)@g | sed s@%{__libdir}@$(libdir)@g \ > pkgscripts/makedpkg deb: all pkgscripts/makedpkg sh pkgscripts/makedpkg +pkgscripts/uninstall: pkgscripts/uninstall.tmpl + cat pkgscripts/uninstall.tmpl | sed s@%{__prefix}@$(prefix)@g | \ + sed s@%{__bindir}@$(bindir)@g | sed s@%{__datadir}@$(datadir)@g | \ + sed s@%{__includedir}@$(includedir)@g | sed s@%{__libdir}@$(libdir)@g | \ + sed s@%{__mandir}@$(mandir)@g > pkgscripts/uninstall + +pkgscripts/makemacpkg: pkgscripts/makemacpkg.tmpl + cat pkgscripts/makemacpkg.tmpl | sed s@%{__prefix}@$(prefix)@g | \ + sed s@%{__bindir}@$(bindir)@g | sed s@%{__docdir}@$(docdir)@g | \ + sed s@%{__libdir}@$(libdir)@g > pkgscripts/makemacpkg + if X86_64 -udmg: all pkgscripts/makemacpkg +udmg: all pkgscripts/makemacpkg pkgscripts/uninstall sh pkgscripts/makemacpkg -build32 ${BUILDDIR32} -iosdmg: all pkgscripts/makemacpkg +iosdmg: all pkgscripts/makemacpkg pkgscripts/uninstall sh pkgscripts/makemacpkg -build32 ${BUILDDIR32} -buildarmv6 ${BUILDDIRARMV6} -buildarmv7 ${BUILDDIRARMV7} -buildarmv7s ${BUILDDIRARMV7S} else -iosdmg: all pkgscripts/makemacpkg +iosdmg: all pkgscripts/makemacpkg pkgscripts/uninstall sh pkgscripts/makemacpkg -buildarmv6 ${BUILDDIRARMV6} -buildarmv7 ${BUILDDIRARMV7} -buildarmv7s ${BUILDDIRARMV7S} endif -dmg: all pkgscripts/makemacpkg +dmg: all pkgscripts/makemacpkg pkgscripts/uninstall sh pkgscripts/makemacpkg +pkgscripts/makecygwinpkg: pkgscripts/makecygwinpkg.tmpl + cat pkgscripts/makecygwinpkg.tmpl | sed s@%{__prefix}@$(prefix)@g | \ + sed s@%{__docdir}@$(docdir)@g | sed s@%{__libdir}@$(libdir)@g \ + > pkgscripts/makecygwinpkg + cygwinpkg: all pkgscripts/makecygwinpkg sh pkgscripts/makecygwinpkg diff --git a/configure.ac b/configure.ac index 49d896a1..9ba28666 100644 --- a/configure.ac +++ b/configure.ac @@ -33,6 +33,11 @@ DATADIR=`eval echo $DATADIR` if test "$DATADIR" = "/opt/libjpeg-turbo/share"; then datadir='${prefix}' fi +DATADIR=`eval echo ${datarootdir}` +DATADIR=`eval echo $DATADIR` +if test "$DATADIR" = "/opt/libjpeg-turbo/share"; then + datarootdir='${prefix}' +fi old_exec_prefix=${exec_prefix} if test "x$exec_prefix" = "xNONE"; then @@ -472,12 +477,12 @@ AC_DEFINE_UNQUOTED([BUILD], "$BUILD", [Build number]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_HEADERS([jconfig.h]) AC_CONFIG_FILES([pkgscripts/libjpeg-turbo.spec.tmpl:release/libjpeg-turbo.spec.in]) -AC_CONFIG_FILES([pkgscripts/makecygwinpkg:release/makecygwinpkg.in]) +AC_CONFIG_FILES([pkgscripts/makecygwinpkg.tmpl:release/makecygwinpkg.in]) AC_CONFIG_FILES([pkgscripts/makedpkg.tmpl:release/makedpkg.in]) -AC_CONFIG_FILES([pkgscripts/makemacpkg:release/makemacpkg.in]) +AC_CONFIG_FILES([pkgscripts/makemacpkg.tmpl:release/makemacpkg.in]) AC_CONFIG_FILES([pkgscripts/Description.plist:release/Description.plist.in]) AC_CONFIG_FILES([pkgscripts/Info.plist:release/Info.plist.in]) -AC_CONFIG_FILES([pkgscripts/uninstall:release/uninstall.in]) +AC_CONFIG_FILES([pkgscripts/uninstall.tmpl:release/uninstall.in]) if test "x$with_turbojpeg" != "xno"; then AC_CONFIG_FILES([tjbenchtest]) fi diff --git a/java/Makefile.am b/java/Makefile.am index af97a05d..265a84b3 100644 --- a/java/Makefile.am +++ b/java/Makefile.am @@ -1,5 +1,11 @@ JAVAROOT = . +org/libjpegturbo/turbojpeg/TJLoader.java: $(srcdir)/org/libjpegturbo/turbojpeg/TJLoader.java.tmpl + mkdir -p org/libjpegturbo/turbojpeg; \ + cat $(srcdir)/org/libjpegturbo/turbojpeg/TJLoader.java.tmpl | \ + sed s@%{__libdir}@$(libdir)@g > org/libjpegturbo/turbojpeg/TJLoader.java + + JAVASOURCES = org/libjpegturbo/turbojpeg/TJ.java \ org/libjpegturbo/turbojpeg/TJCompressor.java \ org/libjpegturbo/turbojpeg/TJCustomFilter.java \ diff --git a/java/org/libjpegturbo/turbojpeg/TJLoader.java.in b/java/org/libjpegturbo/turbojpeg/TJLoader.java.in index 22353a5d..c5db200e 100644 --- a/java/org/libjpegturbo/turbojpeg/TJLoader.java.in +++ b/java/org/libjpegturbo/turbojpeg/TJLoader.java.in @@ -1,5 +1,5 @@ /* - * Copyright (C)2011 D. R. Commander. All Rights Reserved. + * Copyright (C)2011, 2013 D. R. Commander. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -30,6 +30,10 @@ package org.libjpegturbo.turbojpeg; final class TJLoader { static void load() { - System.loadLibrary("@TURBOJPEG_DLL_NAME@"); + try { + System.loadLibrary("@TURBOJPEG_DLL_NAME@"); + } catch (java.lang.UnsatisfiedLinkError e) { + System.load("@CMAKE_INSTALL_PREFIX@/bin/@TURBOJPEG_DLL_NAME@.dll"); + } } }; diff --git a/java/org/libjpegturbo/turbojpeg/TJLoader.java b/java/org/libjpegturbo/turbojpeg/TJLoader.java.tmpl similarity index 84% rename from java/org/libjpegturbo/turbojpeg/TJLoader.java rename to java/org/libjpegturbo/turbojpeg/TJLoader.java.tmpl index ded963ea..117c8de9 100644 --- a/java/org/libjpegturbo/turbojpeg/TJLoader.java +++ b/java/org/libjpegturbo/turbojpeg/TJLoader.java.tmpl @@ -1,5 +1,5 @@ /* - * Copyright (C)2011-2012 D. R. Commander. All Rights Reserved. + * Copyright (C)2011-2013 D. R. Commander. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -35,9 +35,14 @@ final class TJLoader { } catch (java.lang.UnsatisfiedLinkError e) { String os = System.getProperty("os.name").toLowerCase(); if (os.indexOf("mac") >= 0) { - System.load("/usr/lib/libturbojpeg.jnilib"); + try { + System.load("%{__libdir}/libturbojpeg.jnilib"); + } catch (java.lang.UnsatisfiedLinkError e2) { + System.load("/usr/lib/libturbojpeg.jnilib"); + } + } else { + System.load("%{__libdir}/libturbojpeg.so"); } - else throw e; } } }; diff --git a/release/libjpeg-turbo.nsi.in b/release/libjpeg-turbo.nsi.in index f4643fd1..a20328a8 100755 --- a/release/libjpeg-turbo.nsi.in +++ b/release/libjpeg-turbo.nsi.in @@ -1,7 +1,7 @@ !include x64.nsh Name "@CMAKE_PROJECT_NAME@ SDK for @INST_PLATFORM@" OutFile "@CMAKE_BINARY_DIR@\${BUILDDIR}@INST_NAME@.exe" -InstallDir c:\@INST_DIR@ +InstallDir @INST_DIR@ SetCompressor bzip2 @@ -19,31 +19,23 @@ Section "@CMAKE_PROJECT_NAME@ SDK for @INST_PLATFORM@ (required)" !endif SectionIn RO !ifdef GCC - IfFileExists $SYSDIR/libturbojpeg.dll exists 0 + IfFileExists $INSTDIR/bin/libturbojpeg.dll exists 0 !else - IfFileExists $SYSDIR/turbojpeg.dll exists 0 + IfFileExists $INSTDIR/bin/turbojpeg.dll exists 0 !endif goto notexists exists: -!ifdef GCC MessageBox MB_OK "An existing version of the @CMAKE_PROJECT_NAME@ SDK for @INST_PLATFORM@ is already installed. Please uninstall it first." -!else - MessageBox MB_OK "An existing version of the @CMAKE_PROJECT_NAME@ SDK for @INST_PLATFORM@ or the TurboJPEG SDK is already installed. Please uninstall it first." -!endif quit notexists: - SetOutPath $SYSDIR -!ifdef GCC - File "@CMAKE_BINARY_DIR@\libturbojpeg.dll" -!else - File "@CMAKE_BINARY_DIR@\${BUILDDIR}turbojpeg.dll" -!endif SetOutPath $INSTDIR\bin !ifdef GCC File "/oname=libjpeg-@DLL_VERSION@.dll" "@CMAKE_BINARY_DIR@\sharedlib\libjpeg-*.dll" + File "@CMAKE_BINARY_DIR@\libturbojpeg.dll" !else File "@CMAKE_BINARY_DIR@\sharedlib\${BUILDDIR}jpeg@DLL_VERSION@.dll" + File "@CMAKE_BINARY_DIR@\${BUILDDIR}turbojpeg.dll" !endif File "@CMAKE_BINARY_DIR@\sharedlib\${BUILDDIR}cjpeg.exe" File "@CMAKE_BINARY_DIR@\sharedlib\${BUILDDIR}djpeg.exe" @@ -82,12 +74,12 @@ Section "@CMAKE_PROJECT_NAME@ SDK for @INST_PLATFORM@ (required)" File "@CMAKE_SOURCE_DIR@\usage.txt" File "@CMAKE_SOURCE_DIR@\wizard.txt" - WriteRegStr HKLM "SOFTWARE\@INST_DIR@ @VERSION@" "Install_Dir" "$INSTDIR" + WriteRegStr HKLM "SOFTWARE\@INST_REG_NAME@ @VERSION@" "Install_Dir" "$INSTDIR" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@INST_DIR@ @VERSION@" "DisplayName" "@CMAKE_PROJECT_NAME@ SDK v@VERSION@ for @INST_PLATFORM@" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@INST_DIR@ @VERSION@" "UninstallString" '"$INSTDIR\uninstall_@VERSION@.exe"' - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@INST_DIR@ @VERSION@" "NoModify" 1 - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@INST_DIR@ @VERSION@" "NoRepair" 1 + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@INST_REG_NAME@ @VERSION@" "DisplayName" "@CMAKE_PROJECT_NAME@ SDK v@VERSION@ for @INST_PLATFORM@" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@INST_REG_NAME@ @VERSION@" "UninstallString" '"$INSTDIR\uninstall_@VERSION@.exe"' + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@INST_REG_NAME@ @VERSION@" "NoModify" 1 + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@INST_REG_NAME@ @VERSION@" "NoRepair" 1 WriteUninstaller "uninstall_@VERSION@.exe" SectionEnd @@ -100,19 +92,19 @@ Section "Uninstall" SetShellVarContext all - DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@INST_DIR@ @VERSION@" - DeleteRegKey HKLM "SOFTWARE\@INST_DIR@ @VERSION@" + DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@INST_REG_NAME@ @VERSION@" + DeleteRegKey HKLM "SOFTWARE\@INST_REG_NAME@ @VERSION@" !ifdef GCC Delete $INSTDIR\bin\libjpeg-@DLL_VERSION@.dll - Delete $SYSDIR\libturbojpeg.dll + Delete $INSTDIR\bin\libturbojpeg.dll Delete $INSTDIR\lib\libturbojpeg.dll.a" Delete $INSTDIR\lib\libturbojpeg.a" Delete $INSTDIR\lib\libjpeg.dll.a" Delete $INSTDIR\lib\libjpeg.a" !else Delete $INSTDIR\bin\jpeg@DLL_VERSION@.dll - Delete $SYSDIR\turbojpeg.dll + Delete $INSTDIR\bin\turbojpeg.dll Delete $INSTDIR\lib\jpeg.lib Delete $INSTDIR\lib\jpeg-static.lib Delete $INSTDIR\lib\turbojpeg.lib diff --git a/release/libjpeg-turbo.spec.in b/release/libjpeg-turbo.spec.in index 651bb33f..155a4577 100644 --- a/release/libjpeg-turbo.spec.in +++ b/release/libjpeg-turbo.spec.in @@ -92,9 +92,10 @@ fi #-->%endif -%if "%{_prefix}" == "/opt/libjpeg-turbo" && "%{_docdir}" != "%{_prefix}/doc" - ln -fs %{_docdir} $RPM_BUILD_ROOT/%{_prefix}/doc -%endif +LJT_DOCDIR=%{__docdir} +if [ "%{_prefix}" = "/opt/libjpeg-turbo" -a "$LJT_DOCDIR" = "/opt/libjpeg-turbo/doc" ]; then + ln -fs %{_docdir} $RPM_BUILD_ROOT/$LJT_DOCDIR +fi %post -p /sbin/ldconfig @@ -140,7 +141,9 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man1/jpegtran.1* %{_mandir}/man1/rdjpgcom.1* %{_mandir}/man1/wrjpgcom.1* -%dir %{_datadir} +%if "%{_prefix}" != "%{_datadir}" + %dir %{_datadir} +%endif @JAVA_RPM_CONTENTS_1@ @JAVA_RPM_CONTENTS_2@ diff --git a/release/makecygwinpkg.in b/release/makecygwinpkg.in index 32cecddb..2e0386ea 100755 --- a/release/makecygwinpkg.in +++ b/release/makecygwinpkg.in @@ -19,15 +19,20 @@ PACKAGE_NAME=@PACKAGE_NAME@ VERSION=@VERSION@ SRCDIR=@abs_top_srcdir@ +PREFIX=%{__prefix} +DOCDIR=%{__docdir} +LIBDIR=%{__libdir} + umask 022 rm -f $PACKAGE_NAME-$VERSION-cygwin.tar.bz2 TMPDIR=`mktemp -d /tmp/ljtbuild.XXXXXX` __PWD=`pwd` -make install DESTDIR=$TMPDIR/pkg mandir=/opt/$PACKAGE_NAME/man \ - docdir=/usr/share/doc/$PACKAGE_NAME-$VERSION \ +make install DESTDIR=$TMPDIR/pkg docdir=/usr/share/doc/$PACKAGE_NAME-$VERSION \ exampledir=/usr/share/doc/$PACKAGE_NAME-$VERSION -rm $TMPDIR/pkg/opt/$PACKAGE_NAME/lib/*.la -ln -fs lib $TMPDIR/pkg/opt/$PACKAGE_NAME/lib32 +rm $TMPDIR/pkg$LIBDIR/*.la +if [ "$PREFIX" = "/opt/libjpeg-turbo" -a "$DOCDIR" = "/opt/libjpeg-turbo/doc" ]; then + ln -fs /usr/share/doc/$PACKAGE_NAME-$VERSION $TMPDIR/pkg$DOCDIR +fi cd $TMPDIR/pkg tar cfj ../$PACKAGE_NAME-$VERSION-cygwin.tar.bz2 * cd $__PWD diff --git a/release/makedpkg.in b/release/makedpkg.in index bd34b0b9..fa6bc190 100644 --- a/release/makedpkg.in +++ b/release/makedpkg.in @@ -42,9 +42,8 @@ makedeb() make install DESTDIR=$TMPDIR docdir=/usr/share/doc/$DIRNAME-$VERSION \ exampledir=/usr/share/doc/$DIRNAME-$VERSION rm -f $TMPDIR$LIBDIR/*.la - echo $PREFIX $DOCDIR - if [ "$PREFIX" = "/opt/libjpeg-turbo" -a "$DOCDIR" != "/usr/share/doc/$DIRNAME-$VERSION" ]; then - ln -fs /usr/share/doc/$DIRNAME-$VERSION $TMPDIR$PREFIX/doc + if [ "$PREFIX" = "/opt/libjpeg-turbo" -a "$DOCDIR" = "/opt/libjpeg-turbo/doc" ]; then + ln -fs /usr/share/doc/$DIRNAME-$VERSION $TMPDIR$DOCDIR fi fi @@ -60,13 +59,8 @@ BUILD=@BUILD@ DEBARCH=@DEBARCH@ SRCDIR=@abs_top_srcdir@ PREFIX=%{__prefix} -BINDIR=%{__bindir} -DATADIR=%{__datadir} DOCDIR=%{__docdir} -INCDIR=%{__includedir} LIBDIR=%{__libdir} -MANDIR=%{__mandir} - makedeb 0 if [ "$DEBARCH" = "i386" ]; then makedeb 1; fi diff --git a/release/makemacpkg.in b/release/makemacpkg.in index fb8d692c..397231a3 100644 --- a/release/makemacpkg.in +++ b/release/makemacpkg.in @@ -34,6 +34,12 @@ BUILDARMV7=0 BUILDDIRARMV7S=@abs_top_srcdir@/iosarmv7s BUILDARMV7S=0 WITH_JAVA=@WITH_JAVA@ + +PREFIX=%{__prefix} +BINDIR=%{__bindir} +DOCDIR=%{__docdir} +LIBDIR=%{__libdir} + while [ $# -gt 0 ]; do case $1 in -h*) usage 0 ;; @@ -82,15 +88,13 @@ umask 022 TMPDIR=`mktemp -d /tmp/$PACKAGE_NAME-build.XXXXXX` PKGROOT=$TMPDIR/pkg/Package_Root mkdir -p $PKGROOT -mkdir -p $PKGROOT/opt/$PACKAGE_NAME/bin -make install DESTDIR=$PKGROOT mandir=/opt/$PACKAGE_NAME/man \ - docdir=/Library/Documentation/$PACKAGE_NAME \ +make install DESTDIR=$PKGROOT docdir=/Library/Documentation/$PACKAGE_NAME \ exampledir=/Library/Documentation/$PACKAGE_NAME -rm -f $PKGROOT/opt/$PACKAGE_NAME/lib/*.la -mkdir -p $PKGROOT/usr/lib -mv $PKGROOT/opt/$PACKAGE_NAME/lib/libturbojpeg.* $PKGROOT/usr/lib -mkdir -p $PKGROOT/usr/include -mv $PKGROOT/opt/$PACKAGE_NAME/include/turbojpeg.h $PKGROOT/usr/include +rm -f $PKGROOT$LIBDIR/*.la + +if [ "$PREFIX" = "/opt/libjpeg-turbo" -a "$DOCDIR" = "/opt/libjpeg-turbo/doc" ]; then + ln -fs /Library/Documentation/$PACKAGE_NAME $PKGROOT$DOCDIR +fi if [ $BUILD32 = 1 ]; then if [ ! -d $BUILDDIR32 ]; then @@ -105,55 +109,55 @@ if [ $BUILD32 = 1 ]; then pushd $BUILDDIR32 make install DESTDIR=$TMPDIR/dist.x86 popd - 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 + if [ ! -h $TMPDIR/dist.x86/$LIBDIR/libjpeg.@SO_MAJOR_VERSION@.dylib -a \ + ! -h $PKGROOT/$LIBDIR/libjpeg.@SO_MAJOR_VERSION@.dylib ]; then lipo -create \ - -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 + -arch i386 $TMPDIR/dist.x86/$LIBDIR/libjpeg.@SO_MAJOR_VERSION@.dylib \ + -arch x86_64 $PKGROOT/$LIBDIR/libjpeg.@SO_MAJOR_VERSION@.dylib \ + -output $PKGROOT/$LIBDIR/libjpeg.@SO_MAJOR_VERSION@.dylib + elif [ ! -h $TMPDIR/dist.x86/$LIBDIR/libjpeg.@SO_MAJOR_VERSION@.0.@SO_MINOR_VERSION@.dylib -a \ + ! -h $PKGROOT/$LIBDIR/libjpeg.@SO_MAJOR_VERSION@.0.@SO_MINOR_VERSION@.dylib ]; then lipo -create \ - -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 + -arch i386 $TMPDIR/dist.x86/$LIBDIR/libjpeg.@SO_MAJOR_VERSION@.0.@SO_MINOR_VERSION@.dylib \ + -arch x86_64 $PKGROOT/$LIBDIR/libjpeg.@SO_MAJOR_VERSION@.0.@SO_MINOR_VERSION@.dylib \ + -output $PKGROOT/$LIBDIR/libjpeg.@SO_MAJOR_VERSION@.0.@SO_MINOR_VERSION@.dylib fi lipo -create \ - -arch i386 $TMPDIR/dist.x86/opt/$PACKAGE_NAME/lib/libjpeg.a \ - -arch x86_64 $PKGROOT/opt/$PACKAGE_NAME/lib/libjpeg.a \ - -output $PKGROOT/opt/$PACKAGE_NAME/lib/libjpeg.a + -arch i386 $TMPDIR/dist.x86/$LIBDIR/libjpeg.a \ + -arch x86_64 $PKGROOT/$LIBDIR/libjpeg.a \ + -output $PKGROOT/$LIBDIR/libjpeg.a lipo -create \ - -arch i386 $TMPDIR/dist.x86/opt/$PACKAGE_NAME/lib/libturbojpeg.0.dylib \ - -arch x86_64 $PKGROOT/usr/lib/libturbojpeg.0.dylib \ - -output $PKGROOT/usr/lib/libturbojpeg.0.dylib + -arch i386 $TMPDIR/dist.x86/$LIBDIR/libturbojpeg.0.dylib \ + -arch x86_64 $PKGROOT/$LIBDIR/libturbojpeg.0.dylib \ + -output $PKGROOT/$LIBDIR/libturbojpeg.0.dylib lipo -create \ - -arch i386 $TMPDIR/dist.x86/opt/$PACKAGE_NAME/lib/libturbojpeg.a \ - -arch x86_64 $PKGROOT/usr/lib/libturbojpeg.a \ - -output $PKGROOT/usr/lib/libturbojpeg.a + -arch i386 $TMPDIR/dist.x86/$LIBDIR/libturbojpeg.a \ + -arch x86_64 $PKGROOT/$LIBDIR/libturbojpeg.a \ + -output $PKGROOT/$LIBDIR/libturbojpeg.a lipo -create \ - -arch i386 $TMPDIR/dist.x86/opt/$PACKAGE_NAME/bin/cjpeg \ - -arch x86_64 $PKGROOT/opt/$PACKAGE_NAME/bin/cjpeg \ - -output $PKGROOT/opt/$PACKAGE_NAME/bin/cjpeg + -arch i386 $TMPDIR/dist.x86/$BINDIR/cjpeg \ + -arch x86_64 $PKGROOT/$BINDIR/cjpeg \ + -output $PKGROOT/$BINDIR/cjpeg lipo -create \ - -arch i386 $TMPDIR/dist.x86/opt/$PACKAGE_NAME/bin/djpeg \ - -arch x86_64 $PKGROOT/opt/$PACKAGE_NAME/bin/djpeg \ - -output $PKGROOT/opt/$PACKAGE_NAME/bin/djpeg + -arch i386 $TMPDIR/dist.x86/$BINDIR/djpeg \ + -arch x86_64 $PKGROOT/$BINDIR/djpeg \ + -output $PKGROOT/$BINDIR/djpeg lipo -create \ - -arch i386 $TMPDIR/dist.x86/opt/$PACKAGE_NAME/bin/jpegtran \ - -arch x86_64 $PKGROOT/opt/$PACKAGE_NAME/bin/jpegtran \ - -output $PKGROOT/opt/$PACKAGE_NAME/bin/jpegtran + -arch i386 $TMPDIR/dist.x86/$BINDIR/jpegtran \ + -arch x86_64 $PKGROOT/$BINDIR/jpegtran \ + -output $PKGROOT/$BINDIR/jpegtran lipo -create \ - -arch i386 $TMPDIR/dist.x86/opt/$PACKAGE_NAME/bin/tjbench \ - -arch x86_64 $PKGROOT/opt/$PACKAGE_NAME/bin/tjbench \ - -output $PKGROOT/opt/$PACKAGE_NAME/bin/tjbench + -arch i386 $TMPDIR/dist.x86/$BINDIR/tjbench \ + -arch x86_64 $PKGROOT/$BINDIR/tjbench \ + -output $PKGROOT/$BINDIR/tjbench lipo -create \ - -arch i386 $TMPDIR/dist.x86/opt/$PACKAGE_NAME/bin/rdjpgcom \ - -arch x86_64 $PKGROOT/opt/$PACKAGE_NAME/bin/rdjpgcom \ - -output $PKGROOT/opt/$PACKAGE_NAME/bin/rdjpgcom + -arch i386 $TMPDIR/dist.x86/$BINDIR/rdjpgcom \ + -arch x86_64 $PKGROOT/$BINDIR/rdjpgcom \ + -output $PKGROOT/$BINDIR/rdjpgcom lipo -create \ - -arch i386 $TMPDIR/dist.x86/opt/$PACKAGE_NAME/bin/wrjpgcom \ - -arch x86_64 $PKGROOT/opt/$PACKAGE_NAME/bin/wrjpgcom \ - -output $PKGROOT/opt/$PACKAGE_NAME/bin/wrjpgcom + -arch i386 $TMPDIR/dist.x86/$BINDIR/wrjpgcom \ + -arch x86_64 $PKGROOT/$BINDIR/wrjpgcom \ + -output $PKGROOT/$BINDIR/wrjpgcom fi @@ -171,13 +175,13 @@ if [ $BUILDARMV6 = 1 ]; then make install DESTDIR=$TMPDIR/dist.armv6 popd lipo -create \ - $PKGROOT/opt/$PACKAGE_NAME/lib/libjpeg.a \ - -arch arm $TMPDIR/dist.armv6/opt/$PACKAGE_NAME/lib/libjpeg.a \ - -output $PKGROOT/opt/$PACKAGE_NAME/lib/libjpeg.a + $PKGROOT/$LIBDIR/libjpeg.a \ + -arch arm $TMPDIR/dist.armv6/$LIBDIR/libjpeg.a \ + -output $PKGROOT/$LIBDIR/libjpeg.a lipo -create \ - $PKGROOT/usr/lib/libturbojpeg.a \ - -arch arm $TMPDIR/dist.armv6/opt/$PACKAGE_NAME/lib/libturbojpeg.a \ - -output $PKGROOT/usr/lib/libturbojpeg.a + $PKGROOT/$LIBDIR/libturbojpeg.a \ + -arch arm $TMPDIR/dist.armv6/$LIBDIR/libturbojpeg.a \ + -output $PKGROOT/$LIBDIR/libturbojpeg.a fi if [ $BUILDARMV7 = 1 ]; then @@ -194,13 +198,13 @@ if [ $BUILDARMV7 = 1 ]; then make install DESTDIR=$TMPDIR/dist.armv7 popd lipo -create \ - $PKGROOT/opt/$PACKAGE_NAME/lib/libjpeg.a \ - -arch arm $TMPDIR/dist.armv7/opt/$PACKAGE_NAME/lib/libjpeg.a \ - -output $PKGROOT/opt/$PACKAGE_NAME/lib/libjpeg.a + $PKGROOT/$LIBDIR/libjpeg.a \ + -arch arm $TMPDIR/dist.armv7/$LIBDIR/libjpeg.a \ + -output $PKGROOT/$LIBDIR/libjpeg.a lipo -create \ - $PKGROOT/usr/lib/libturbojpeg.a \ - -arch arm $TMPDIR/dist.armv7/opt/$PACKAGE_NAME/lib/libturbojpeg.a \ - -output $PKGROOT/usr/lib/libturbojpeg.a + $PKGROOT/$LIBDIR/libturbojpeg.a \ + -arch arm $TMPDIR/dist.armv7/$LIBDIR/libturbojpeg.a \ + -output $PKGROOT/$LIBDIR/libturbojpeg.a fi if [ $BUILDARMV7S = 1 ]; then @@ -217,28 +221,28 @@ if [ $BUILDARMV7S = 1 ]; then make install DESTDIR=$TMPDIR/dist.armv7s popd lipo -create \ - $PKGROOT/opt/$PACKAGE_NAME/lib/libjpeg.a \ - -arch arm $TMPDIR/dist.armv7s/opt/$PACKAGE_NAME/lib/libjpeg.a \ - -output $PKGROOT/opt/$PACKAGE_NAME/lib/libjpeg.a + $PKGROOT/$LIBDIR/libjpeg.a \ + -arch arm $TMPDIR/dist.armv7s/$LIBDIR/libjpeg.a \ + -output $PKGROOT/$LIBDIR/libjpeg.a lipo -create \ - $PKGROOT/usr/lib/libturbojpeg.a \ - -arch arm $TMPDIR/dist.armv7s/opt/$PACKAGE_NAME/lib/libturbojpeg.a \ - -output $PKGROOT/usr/lib/libturbojpeg.a + $PKGROOT/$LIBDIR/libturbojpeg.a \ + -arch arm $TMPDIR/dist.armv7s/$LIBDIR/libturbojpeg.a \ + -output $PKGROOT/$LIBDIR/libturbojpeg.a fi -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.0.dylib $PKGROOT/usr/lib/libturbojpeg.0.dylib +install_name_tool -id $LIBDIR/libjpeg.@SO_MAJOR_VERSION@.dylib $PKGROOT/$LIBDIR/libjpeg.@SO_MAJOR_VERSION@.dylib +install_name_tool -id $LIBDIR/libturbojpeg.0.dylib $PKGROOT/$LIBDIR/libturbojpeg.0.dylib -ln -fs /usr/include/turbojpeg.h $PKGROOT/opt/$PACKAGE_NAME/include/ -ln -fs /usr/lib/libturbojpeg.a $PKGROOT/opt/$PACKAGE_NAME/lib/ if [ $WITH_JAVA = 1 ]; then - ln -fs libturbojpeg.0.dylib $PKGROOT/usr/lib/libturbojpeg.jnilib + ln -fs libturbojpeg.0.dylib $PKGROOT/$LIBDIR/libturbojpeg.jnilib fi -if [ ! -h $PKGROOT/opt/$PACKAGE_NAME/lib32 ]; then - ln -fs lib $PKGROOT/opt/$PACKAGE_NAME/lib32 -fi -if [ ! -h $PKGROOT/opt/$PACKAGE_NAME/lib64 ]; then - ln -fs lib $PKGROOT/opt/$PACKAGE_NAME/lib64 +if [ "$PREFIX" = "/opt/libjpeg-turbo" -a "$LIBDIR" = "/opt/libjpeg-turbo/lib" ]; then + if [ ! -h $PKGROOT/$PREFIX/lib32 ]; then + ln -fs lib $PKGROOT/$PREFIX/lib32 + fi + if [ ! -h $PKGROOT/$PREFIX/lib64 ]; then + ln -fs lib $PKGROOT/$PREFIX/lib64 + fi fi chmod 1775 $PKGROOT/Library @@ -247,10 +251,9 @@ mkdir -p $TMPDIR/pkg/Resources cp pkgscripts/Description.plist $TMPDIR/pkg/ cp pkgscripts/Info.plist $TMPDIR/pkg/ -install -m 755 pkgscripts/uninstall $PKGROOT/opt/$PACKAGE_NAME/bin/ +install -m 755 pkgscripts/uninstall $PKGROOT/$BINDIR/ -sudo chown -R root:admin $PKGROOT -sudo chown -R root:0 $PKGROOT/usr +sudo chown -R root:admin $PKGROOT cp $SRCDIR/release/License.rtf $SRCDIR/release/Welcome.rtf $SRCDIR/release/ReadMe.rtf $TMPDIR/pkg/Resources/ mkdir $TMPDIR/dmg diff --git a/release/uninstall.in b/release/uninstall.in index 2e4598c5..3ba4eea8 100644 --- a/release/uninstall.in +++ b/release/uninstall.in @@ -56,27 +56,46 @@ done popd echo Removing package directories ... -if [ -d /opt/$PACKAGE/bin ]; then - rmdir /opt/$PACKAGE/bin 2>&1 || EXITSTATUS=-1 +PREFIX=%{__prefix} +BINDIR=%{__bindir} +DATADIR=%{__datadir} +INCLUDEDIR=%{__includedir} +LIBDIR=%{__libdir} +MANDIR=%{__mandir} + +if [ -d $BINDIR ]; then + rmdir $BINDIR 2>&1 || EXITSTATUS=-1 fi -if [ -d /opt/$PACKAGE/lib ]; then - rmdir /opt/$PACKAGE/lib 2>&1 || EXITSTATUS=-1 +if [ -d $LIBDIR ]; then + rmdir $LIBDIR 2>&1 || EXITSTATUS=-1 fi -if [ -d /opt/$PACKAGE/include ]; then - rmdir /opt/$PACKAGE/include 2>&1 || EXITSTATUS=-1 +if [ -d $INCLUDEDIR ]; then + rmdir $INCLUDEDIR 2>&1 || EXITSTATUS=-1 fi -rm /opt/$PACKAGE/lib32 2>&1 || EXITSTATUS=-1 -rm /opt/$PACKAGE/lib64 2>&1 || EXITSTATUS=-1 -if [ -d /opt/$PACKAGE/man/man1 ]; then - rmdir /opt/$PACKAGE/man/man1 2>&1 || EXITSTATUS=-1 +if [ "$PREFIX" = "/opt/libjpeg-turbo" -a "$LIBDIR" = "/opt/libjpeg-turbo/lib" ]; then + if [ -h $LIBDIR\32 ]; then + rm $LIBDIR\32 2>&1 || EXITSTATUS=-1 + fi + if [ -h $LIBDIR\64 ]; then + rm $LIBDIR\64 2>&1 || EXITSTATUS=-1 + fi fi -if [ -d /opt/$PACKAGE/man ]; then - rmdir /opt/$PACKAGE/man 2>&1 || EXITSTATUS=-1 +if [ -d $MANDIR/man1 ]; then + rmdir $MANDIR/man1 2>&1 || EXITSTATUS=-1 fi -if [ -d /opt/$PACKAGE/classes ]; then - rmdir /opt/$PACKAGE/classes 2>&1 || EXITSTATUS=-1 +if [ -d $MANDIR ]; then + rmdir $MANDIR 2>&1 || EXITSTATUS=-1 fi -rmdir /opt/$PACKAGE 2>&1 || EXITSTATUS=-1 +if [ -d $DATADIR/classes ]; then + rmdir $DATADIR/classes 2>&1 || EXITSTATUS=-1 +fi +if [ -d $DATADIR -a "$DATADIR" != "$PREFIX" ]; then + rmdir $DATADIR 2>&1 || EXITSTATUS=-1 +fi +if [ "$PREFIX" = "/opt/libjpeg-turbo" -a -h "$PREFIX/doc" ]; then + rm $PREFIX/doc 2>&1 || EXITSTATUS=-1 +fi +rmdir $PREFIX 2>&1 || EXITSTATUS=-1 rmdir /Library/Documentation/$PACKAGE 2>&1 || EXITSTATUS=-1 if [ -d $RECEIPT ]; then