#!/bin/sh # Heavily based on the Slackware 12.2 SlackBuild # Slackware build script for Powermanga # URL: http://freshmeat.net/projects/powermanga/ # Packager: Luigi "Reilly" Cozzolino set -e #### SECTION TARBALL ######## TARNAME="powermanga" TARVERSION="" TARTYPE="tgz" TARBALL="${TARNAME}.$TARTYPE" SOURCEDIR="${TARNAME}-0.90" #### END SECTION TARBALL #### #### SECTION PACKAGE ######## PKGNAM="powermanga" VERSION="0.90" ARCH=${ARCH:-i486} BUILD=1lc #### END SECTION PACKAGE #### CWD=$(pwd) TMP=${TMP:-$HOME/PKGS} if [ "$ARCH" = "i486" ]; then SLKCFLAGS="-O2 -march=i486 -mtune=i686" elif [ "$ARCH" = "i686" ]; then SLKCFLAGS="-O2 -march=i686 -mtune=i686" fi # Number of jobs to compile at once: if [ -z "$NUMJOBS" ]; then NUMJOBS=-j4 fi PKG=$TMP/package-${PKGNAM} rm -rf $PKG mkdir -p $PKG cd $TMP rm -rf ${SOURCEDIR} clear sleep 1 echo ; echo ; echo echo "+===========================================================" echo -e "|\033[01;32m Building\033[00m \033[01;31m$TARBALL\033[00m" echo "+===========================================================" sleep 5 # Checking tarball type... [ "$TARTYPE" = "tar.gz" -o "$TARTYPE" = "tgz" ] && switch="xvzf" [ "$TARTYPE" = "tar.bz2" -o "$TARTYPE" = "tbz" ] && switch="xvjf" # and finally extract it: tar $switch $CWD/$TARBALL || exit 1 cd ${SOURCEDIR} # Make sure ownerships and permissions are sane: chown -R root:root . find . -perm 666 -exec chmod 644 {} \; find . -perm 664 -exec chmod 644 {} \; find . -perm 600 -exec chmod 644 {} \; find . -perm 444 -exec chmod 644 {} \; find . -perm 400 -exec chmod 644 {} \; find . -perm 440 -exec chmod 644 {} \; find . -perm 777 -exec chmod 755 {} \; find . -perm 775 -exec chmod 755 {} \; find . -perm 511 -exec chmod 755 {} \; find . -perm 711 -exec chmod 755 {} \; find . -perm 555 -exec chmod 755 {} \; # Apply a patches: cat $CWD/data_path.diff | patch -p1 --verbose || exit 1 cat $CWD/scoredir_path.diff | patch -p1 --verbose || exit 1 # Clean source tree: make distclean # Configure: CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ ./configure \ --prefix=/usr \ --mandir=/usr/man/man6 \ --build=$ARCH-slackware-linux || exit 1 # Build and install: make $NUMJOBS || exit 1 make install DESTDIR=$PKG || exit 1 # Strip binaries and libraries: ( 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 ) # Add a desktop file: mkdir -p $PKG/usr/share/applications install -m 644 $CWD/${PKGNAM}.desktop $PKG/usr/share/applications # Add a image file: mkdir -p $PKG/usr/share/pixmaps install -m 644 $CWD/${PKGNAM}.xpm $PKG/usr/share/pixmaps # Compress and link manpages, if any: 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 # Add a documentation directory: mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION cp -a \ AUTHORS* CHANGES* COPYING* README* \ $PKG/usr/doc/${PKGNAM}-$VERSION mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc cat $CWD/doinst.sh > $PKG/install/doinst.sh cd $PKG requiredbuilder -v -y -s $CWD $PKG /sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.tgz # Checksum `md5' file creation: ( cd $TMP ; md5sum ${PKGNAM}-$VERSION-$ARCH-$BUILD.tgz > ${PKGNAM}-$VERSION-$ARCH-$BUILD.md5 ) # Final touches: ( cd $TMP ; cat $PKG/install/slack-desc | grep "^${PKGNAM}:" > ${PKGNAM}-$VERSION-$ARCH-$BUILD.txt ) # Clean up the extra stuff: if [ "$1" = "--cleanup" -o "$1" = "-c" ]; then rm -rf $TMP/${SOURCEDIR} rm -rf $PKG fi