#!/bin/bash # byacc.SlackBuild # by Stuart Winter for the Slackware porting Project. # Heavily based on the original Slackware build script. # 18-Jun-2004 # Paths to skeleton port's source & real Slackware source tree: export CWD=$SLACKSOURCE/d/byacc export PORTCWD=$PWD # Package meta-data: export PACKAGE=byacc export PKGSERIES=d export ARCH=${ARCH:=$PORTARCH} export VERSION=${VERSION:=1.9} export BUILD=${BUILD:=1} # Temporary build locations: export TMPBUILD=$TMP/build-$PACKAGE export PKG=$TMP/package-$PACKAGE mkpkgdirs # Delete & re-create temporary directories then cd into $TMPBUILD # Determine the CFLAGS for the known architectures: case $PORTARCH in armv3) export ARCH_CFLAGS="-O2 -march=armv3 -mtune=xscale" ;; powerpc) export ARCH_CFLAGS="-O2" ;; sparc) export ARCH_CFLAGS="-O2" ;; alpha) export ARCH_CFLAGS="-O2" ;; *) export ARCH_CFLAGS="-O2" ;; esac # Extract source: mkdir $PACKAGE-$VERSION tar xzvf $CWD/${PACKAGE}.${VERSION}.tar.Z -C${PACKAGE}-${VERSION} cd ${PACKAGE}-${VERSION} # Ensure sensible permissions in the unarchived source: slackhousekeeping # Create package framework: mkdir -p $PKG/usr/{bin,doc/$PACKAGE-$VERSION,man/man1} # Build: make || failmake # Install binaries: install -m755 yacc $PKG/usr/bin ( cd $PKG/usr/bin && ln -sf yacc byacc ) # Install man page: install -m644 yacc.1 $PKG/usr/man/man1 ( cd $PKG/usr/man/man1 && ln -sf yacc.1 byacc.1 ) # Install docs: cp -a ACKNOWLEDGEMENTS NEW_FEATURES NOTES NO_WARRANTY README \ $PKG/usr/doc/$PACKAGE-$VERSION # Enter the package's root: cd $PKG # Slackware policies: slackstripall # strip all .a archives and all ELFs slackgzpages -i # compress man & info pages and delete usr/info/dir slackslack # set all files to root.root, chmod -R og-w, slackchown, slack644docs slackdesc # install slack-desc and doinst.sh # Build the package: if [ $PORTARCH = armv3 ]; then . $PORTCWD/arm/pkger else makepkg -l y -c n $PKGSTORE/$PKGSERIES/$PACKAGE-$VERSION-$ARCH-$BUILD.tgz fi # Perform any final checks on the package: cd $PKG slackhlinks # search for any hard links