#!/bin/bash # pmake.SlackBuild # Heavily based on the original Slackware build scripts, # Modified by Stuart Winter # 14-Jul-2004 # Paths to skeleton port's source & real Slackware source tree: export CWD=$SLACKSOURCE/d/pmake export PORTCWD=$PWD # 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" ;; *) export ARCH_CFLAGS="-O2" ;; esac # Extract source: #tar zxvf $CWD/$PACKAGE-$VERSION.tar.gz tar zxvf $PORTCWD/source/$PACKAGE-$VERSION.tar.Z cd $PACKAGE # Create package framework: mkdir -p $PKG/usr/{bin,doc/$PACKAGE-$VERSION,man/man1} # Apply patches: zcat $CWD/pmake.diff.gz | patch -p1 --verbose -E # Add system makefiles for ix86/alpha/sparc Linux: tar zxvvf $CWD/sys-linux.mk.tar.gz # Add system makefiles for ARM: ( cd lib/mk cat << EOF > sys-arm.mk arm= Machine is an ARM linux= running linux SYSV= This is not only System 5 SVR4= but even Release 4 compatible unix= It runs UNIX. # some non-standard locations CC = /usr/bin/cc AS = /usr/bin/as AR = /usr/bin/ar LD = /usr/bin/ld LINT = : EOF ln -fs sys-arm.mk sys-armv4l.mk # RiscPC & Netwinder ln -fs sys-arm.mk sys-armv5l.mk # Iyonix & many others ln -fs sys-arm.mk sys-armv5tel.mk # Not telling ;-p ) # Ensure sensible permissions in source: slackhousekeeping # Stage 1: Build pmake with GNU make: make -f makefile || failmake cp pmake /usr/bin/pmake ( cd /usr/bin && rm -f vmake && ln -sf pmake vmake ) ( cd /usr/share && rm -rf mk && mkdir mk ) cp -a lib/mk/system.mk lib/mk/*.mk /usr/share/mk # Stage 2: Build pmake with pmake: pmake -f makefile clean pmake -f makefile || failmake cp pmake /usr/bin/pmake # Stage 3: Rebuild one more time with itself: pmake -f makefile clean pmake -f makefile || failmake cp pmake /usr/bin/pmake # Now, we should be good to build the package: install -m755 pmake $PKG/usr/bin ( cd $PKG/usr/bin ; ln -sf pmake vmake ) mkdir -p $PKG/usr/share/mk cp -a lib/mk/system.mk lib/mk/*.mk $PKG/usr/share/mk # Install man pages: install -m644 $CWD/pmake.1.gz $PKG/usr/man/man1 # Install docs: cp -a CHANGES INSTALL README \ $PKG/usr/doc/$PACKAGE-$VERSION groff -ms -Tascii doc/tutorial.ms > $PKG/usr/doc/$PACKAGE-$VERSION/tutorial.txt # Slackware policies: cd $PKG slackstripall # strip all .a archives and all ELFs slackgzpages -i # compress man & info pages and delete usr/info/dir slackslack # chown -R root:root, chmod -R og-w, slackchown (root:bin), 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