diff options
Diffstat (limited to 'source/l/libpng/libpng.SlackBuild')
-rwxr-xr-x | source/l/libpng/libpng.SlackBuild | 150 |
1 files changed, 79 insertions, 71 deletions
diff --git a/source/l/libpng/libpng.SlackBuild b/source/l/libpng/libpng.SlackBuild index d338e5c64..91bc3a188 100755 --- a/source/l/libpng/libpng.SlackBuild +++ b/source/l/libpng/libpng.SlackBuild @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright 2005-2012 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2015 Patrick J. Volkerding, Sebeka, Minnesota, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -21,38 +21,61 @@ # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -VERSION_OLD=1.2.50 -VERSION_NEW=1.4.12 +PKGNAM=libpng +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} BUILD=${BUILD:-1} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then - case "$( uname -m )" in - i?86) export ARCH=i486 ;; - arm*) export ARCH=arm ;; + case "$(uname -m)" in + i?86) ARCH=i586 ;; + arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;; # Unless $ARCH is already set, use uname -m for all other archs: - *) export ARCH=$( uname -m ) ;; + *) ARCH=$(uname -m) ;; esac + export ARCH fi -if [ "$ARCH" = "x86_64" ]; then +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" LIBDIRSUFFIX="64" +elif [ "$ARCH" = "armv7hl" ]; then + SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16" + LIBDIRSUFFIX="" else + SLKCFLAGS="-O2" LIBDIRSUFFIX="" fi CWD=$(pwd) TMP=${TMP:-/tmp} -PKG=$TMP/package-libpng -rm -rf $PKG -mkdir -p $TMP $PKG/usr +PKG=$TMP/package-$PKGNAM -build_source() { +rm -rf $PKG +mkdir -p $TMP $PKG cd $TMP -rm -rf libpng-$VERSION -tar xvf $CWD/libpng-$VERSION.tar.?z* || exit 1 -cd libpng-$VERSION +rm -rf $PKGNAM-$VERSION +tar xvf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1 +cd $PKGNAM-$VERSION || exit 1 + chown -R root:root . find . \ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ @@ -60,75 +83,60 @@ find . \ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ -exec chmod 644 {} \; -# Look like using ./configure is the only way that works now... -./configure --prefix=/usr \ +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ --libdir=/usr/lib${LIBDIRSUFFIX} \ - --mandir=/usr/man - -make -j4 prefix=/usr LIBPATH=/usr/lib${LIBDIRSUFFIX} ZLIBLIB="-L/usr/lib${LIBDIRSUFFIX} -lm -lz" || exit 1 -make install prefix=/usr LIBPATH=/usr/lib${LIBDIRSUFFIX} ZLIBLIB="-L/usr/lib${LIBDIRSUFFIX} -lm -lz" DESTDIR=$PKG - -# I'm ditching this to see if anyone cares. -# -## This symlink is needed to keep old applications running: -## I guess the real lib used the major number 3, then 0 for -## a short while, and now .3 again. Hopefully it will stay -## this way as it was .3 in Slackware 10.2. One can hope. -#( cd $PKG/usr/lib${LIBDIRSUFFIX} -# if [ ! -e libpng.so.0 -a -e libpng.so.3 ]; then -# ln -sf libpng.so.3 libpng.so.0 -# fi -#) - -# Well, glad I got rid of the above, but <someone> upstream still does not -# grok shared libraries on Linux it seems -- libpng-1.4.0 caused all the -# newly compiled binaries to want libpng.so.14, and now libpng-1.4.1 -# wants to change that to libpng14.so.14. Searching online finds that -# we are not the only ones with binaries that want libpng.so.14, so we -# are forced to provide a compatibility symlink again... :-/ -# -# We'll try to remove this in 5 to 10 years, just like before. -( cd $PKG/usr/lib${LIBDIRSUFFIX} - if [ ! -e libpng.so.14 -a -e libpng14.so.14 ]; then - ln -sf libpng14.so.14 libpng.so.14 - fi + --includedir=/usr/include \ + --mandir=/usr/man \ + --disable-static \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null ) -find $PKG | xargs file | grep -e "executable" -e "shared object" \ - | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null - -gzip -9 --force $PKG/usr/man/man?/*.? - -mkdir -p $PKG/usr/doc/libpng-$VERSION +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION cp -a \ ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO \ libpng*.txt example.c \ - $PKG/usr/doc/libpng-$VERSION + $PKG/usr/doc/${PKGNAM}-$VERSION + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi # If there's a ChangeLog, installing at least part of the recent history # is useful, but don't let it get totally out of control: -if [ -r ChangeLog ]; then - DOCSDIR=$(echo $PKG/usr/doc/libpng-$VERSION) - cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog - touch -r ChangeLog $DOCSDIR/ChangeLog +if [ -r CHANGES ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION) + cat CHANGES | head -n 1000 > $DOCSDIR/CHANGES + touch -r CHANGES $DOCSDIR/CHANGES fi -} - -# Build the 1.2 version: -VERSION=$VERSION_OLD -build_source - -# Build the 1.4 version: -VERSION=$VERSION_NEW -build_source - -# Default the includes to version 1.4.x: -( cd $PKG/usr/include ; ln -sf libpng14 libpng ) - mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc cd $PKG -/sbin/makepkg -l y -c n $TMP/libpng-$VERSION-$ARCH-$BUILD.txz +/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz |