########################################################################### ## REMOVE THIS ENTIRE BLOCK OF TEXT (AFTER READING IT!) ## ## This template is not meant to be a "cut and paste" script to enable ## any random user to make a working package. While we're certainly not ## discouraging use of this template, if you haven't manually gone ## through each step of the process without the build script (typically ## as a normal user, as this will reveal problems that you won't see as ## root), then there's a good chance that something important is missing ## from your submission. ## ## When using this template script, please remove as many of these ## unnecessary comments as possible. Commented code is a good thing, but ## if it's obvious, there's no need to comment it. ## ## AGAIN, REMOVE THE COMMENTS IF THEY ARE NOT NEEDED--DON'T JUST DELETE ## THIS BLOCK OF TEXT WITHOUT BOTHERING TO READ WHAT'S IN IT. ########################################################################### #!/bin/sh # # Slackware build script for viking # # Written by Beej Jorgensen # Add license information here if you desire; otherwise, delete this # comment block to grant this script to the public domain, which is # the preferred thing to do. # # Some licenses may incorporate the "Written by" information above, and if # so, that line can be omitted. # # We strongly suggest *not* using GPL for scripts, as it requires a copy # of the GPL to be distributed with it. Since the GPL itself is longer # than any build script will be, this just doesn't make good sense... # (This script based on Slackbuild.org's template.SlackBuild 1.4. You # should delete this entire comment, and the following two lines of code.) echo 'You need to fully edit this script before you run it!' exit 1 PRGNAM=viking VERSION=${VERSION:-0.9.7} ARCH=${ARCH:-i486} # this should not change BUILD=${BUILD:-1} TAG=${TAG:-_beej} # use "_SBo" for slackbuilds.org CWD=$(pwd) TMP=${TMP:-/tmp/build} # use "/tmp/SBo" for slackbuilds.org PKG=$TMP/package-$PRGNAM OUTPUT=${OUTPUT:-/tmp/build # Drop the package in /tmp/build if [ "$ARCH" = "i386" ]; then SLKCFLAGS="-O2 -march=i386 -mtune=i686" elif [ "$ARCH" = "i486" ]; then SLKCFLAGS="-O2 -march=i486 -mtune=i686" elif [ "$ARCH" = "i586" ]; then SLKCFLAGS="-O2 -march=i586 -mtune=i686" elif [ "$ARCH" = "i686" ]; then SLKCFLAGS="-O2 -march=i686 -mtune=i686" elif [ "$ARCH" = "x86_64" ]; then SLKCFLAGS="-O2 -fPIC" fi set -e # Exit on most errors # If you prefer to do selective error checking with # command || exit 1 # then that's also acceptable. rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP rm -rf $PRGNAM-$VERSION tar xvf $CWD/viking-0.9.7.tar.gz cd $PRGNAM-$VERSION chown -R root:root . find . \ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ -exec chmod 755 {} \; -o \ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ -exec chmod 644 {} \; # Your application will probably need different configure flags; these # are provided as an example only. Be sure to build only shared # libraries unless there's some need for static. CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ ./configure \ --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --mandir=/usr/man \ --docdir=/usr/doc/$PRGNAM-$VERSION \ --build=$ARCH-slackware-linux # Compile the application and install it into the $PKG directory make make install DESTDIR=$PKG # Strip binaries and libraries--this can be done with "make install-strip" # in many source trees, and that's usually acceptable if so, but if not, # use this: ( cd $PKG find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \ xargs strip --strip-unneeded 2> /dev/null || true find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | \ xargs strip --strip-unneeded 2> /dev/null ) # Compress man pages. If the man pages are installed to /usr/share/man # instead, you'll need to either add the --mandir=/usr/man flag to # configure or move them manually after the make install process is run. ( cd $PKG/usr/man find . -type f -exec gzip -9 {} \; for i in $( find . -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done ) # Compress info pages and remove the package's dir file. If no info # pages are installed by the software, don't leave this in the script. rm -f $PKG/usr/info/dir gzip -9 $PKG/usr/info/*.info* # Remove perllocal.pod and other special files that don't need to be # installed, as they will overwrite what's already on the system. If # this is not needed, remove it from the script. ( cd $PKG # Remove "special" files find . -name perllocal.pod \ -o -name ".packlist" \ -o -name "*.bs" \ | xargs rm -f ) # Copy program documentation into the package. The included # documentation varies from one application to another, so be sure to # adjust your script as needed. Also, include the SlackBuild script in # the documentation directory. mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION cp -a \ #### DOCUMENTATION FILES GO HERE #### \ $PKG/usr/doc/$PRGNAM-$VERSION # Copy the slack-desc (and a custom doinst.sh if necessary) into ./install mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc cat $CWD/doinst.sh > $PKG/install/doinst.sh # Make the package; be sure to leave it in $OUTPUT. If package symlinks # need to be created during install *before* your custom contents of # doinst.sh runs, then add the -p switch to the makepkg command below-- # see makepkg(8) for details. cd $PKG /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz