#!/bin/sh # Heavily based on the Slackware 13.0 SlackBuild # Copyright 2010 Leonardo Totaro - elleti.brain)(vision # [ brainvision AT slacky DOT it ] # http://www.slacky.it NAME=xfmpc VERSION=${VERSION:-0.2.0} ARCH=${ARCH:-i486} BUILD=${BUILD:-1lt} NUMJOBS=${NUMJOBS:" -j3 "} DOCS="ABOUT* AUTHORS BUGS ChangeLog* COPYING CREDITS FAQ GPL* HACKING \ LICENSE MAINTAINERS NEWS README* TODO" SRCDIR=$(cd $(dirname $0); pwd) CWD=`pwd` TMP=${TMP:-/tmp/txz} PKG=$TMP/package-$NAME OUTPUT=${OUTPUT:-/tmp} SOURCE="$SRCDIR/${NAME}-${VERSION}.tar.bz2" SRCURL="http://archive.xfce.org/src/apps/${NAME}/0.2/${NAME}-${VERSION}.tar.bz2" # Exit the script on errors: set -e trap 'echo "$0 FAILED at line ${LINENO}" | tee $OUTPUT/error-${NAME}.log' ERR set -u P1=${1:-1} case "$ARCH" in i486) SLKCFLAGS="-O2 -march=i486 -mtune=i686" SLKLDFLAGS=""; LIBDIRSUFFIX="" ;; x86_64) SLKCFLAGS="-O2 -fPIC" SLKLDFLAGS="-L/usr/lib64"; LIBDIRSUFFIX="64" ;; esac mkdir -p $OUTPUT mkdir -p $TMP/tmp-$NAME mkdir -p $PKG rm -rf $PKG/* rm -rf $TMP/tmp-$NAME/* rm -rf $OUTPUT/{configure,make,install,error,makepkg}-$NAME.log if ! [ -f ${SOURCE} ]; then if ! [ "x${SRCURL}" == "x" ]; then [ -w "$SRCDIR" ] || SOURCE="$OUTPUT/$(basename $SOURCE)" echo "Source '$(basename ${SOURCE})' not available yet..." echo "Will download file to $(dirname $SOURCE)" wget -nv -T 20 -O "${SOURCE}" "${SRCURL}" || true if [ $? -ne 0 -o ! -s "${SOURCE}" ]; then echo "Downloading '$(basename ${SOURCE})' failed... aborting the build." mv -f "${SOURCE}" "${SOURCE}".FAIL exit 1 fi else echo "File '$(basename ${SOURCE})' not available... aborting the build." exit 1 fi fi if [ "$P1" == "--download" ]; then echo "Download complete." exit 0 fi # --- PACKAGE BUILDING --- echo "++" echo "|| $NAME-$VERSION" echo "++" if [ -f $SRCDIR/_$NAME.tar.gz ]; then cd $PKG explodepkg $SRCDIR/_$NAME.tar.gz cd - fi cd $TMP/tmp-$NAME echo "Extracting the source archive(s) for $NAME..." if $(file ${SOURCE} | grep -qi ": 7-zip"); then 7za -x ${SOURCE} elif $(file ${SOURCE} | grep -qi ": zip"); then unzip ${SOURCE} else tar -xvf ${SOURCE} fi cd ${NAME}-${VERSION} chown -R root:root . chmod -R u+w,go+r-w,a-s . echo Building ... LDFLAGS="$SLKLDFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ CFLAGS="$SLKCFLAGS" \ ./configure \ --prefix=/usr \ --libdir=/usr/lib${LIBDIRSUFFIX} \ --localstatedir=/var \ --sysconfdir=/etc \ --mandir=/usr/man \ --docdir=/usr/doc/$NAME-$VERSION \ --enable-shared \ --disable-static \ --program-prefix= \ --program-suffix= \ --build=$ARCH-slackware-linux \ 2>&1 | tee $OUTPUT/configure-${NAME}.log make $NUMJOBS 2>&1 | tee $OUTPUT/make-${NAME}.log make DESTDIR=$PKG install 2>&1 | tee $OUTPUT/install-${NAME}.log mkdir -p $PKG/usr/doc/$NAME-$VERSION cp -a $DOCS $PKG/usr/doc/$NAME-$VERSION || true cp -a $SRCDIR/$(basename $0) $PKG/usr/doc/$NAME-$VERSION/$NAME.SlackBuild chown -R root:root $PKG/usr/doc/$NAME-$VERSION find $PKG/usr/doc -type f -exec chmod 644 {} \; if [ -d $PKG/usr/man ]; then find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; for i in $(find $PKG/usr/man -type l -name "*.?") ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done fi if [ -d $PKG/usr/info ]; then rm -f $PKG/usr/info/dir gzip -9f $PKG/usr/info/*.info* fi find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true # Add a package description: mkdir -p $PKG/install cat $SRCDIR/slack-desc > $PKG/install/slack-desc if [ -f $SRCDIR/doinst.sh ]; then cat $SRCDIR/doinst.sh >> $PKG/install/doinst.sh fi # Build the package: cd $PKG requiredbuilder -y -v -s $CWD $PKG makepkg --linkadd y --chown n $CWD/${NAME}-${VERSION}-${ARCH}-${BUILD}.txz 2>&1 | tee $OUTPUT/makepkg-${NAME}.log