#!/bin/sh # Set initial variables: CWD=`pwd` if [ "$TMP" = "" ]; then TMP=/tmp fi PKG=$TMP/package-strace SRC=/devel/manpagesrc INFO=/devel/info-pages/usr/info TEX=/devel/texinfo-docs if [ ! -d $TMP ]; then mkdir -p $TMP # location to build the source fi if [ ! -d $PKG ]; then mkdir -p $PKG # place for the package to be built fi # Explode the package framework: cd $PKG explodepkg $CWD/_strace.tar.gz echo "+============+" echo "| strace-4.2 |" echo "+============+" cd $TMP # Ryan: from David: # make sure the 32-bit headers are in place rm -rf /usr/include/asm.BUILD_STRACE mv /usr/include/asm /usr/include/asm.BUILD_STRACE ln -sf /usr/src/linux/include/asm-sparc /usr/include/asm # Strace on the SPARC is kindy tricky to build. I've only been # able to make it build by removing 4 structs from the kernel # headers (in time.h). So during the compile, I patch those # out, then in special, the original header is restored. Yeah, # a nasty hack, but it works. ( cd /usr/src/linux/include/linux zcat $CWD/time.h-sparc.patch.gz | patch -p0 --verbose --backup ) tar xzvf $CWD/strace-4.2.tar.gz cd strace-4.2 mkdir -p $PKG/usr/doc/strace-4.2 cp -a COPYRIGHT CREDITS ChangeLog INSTALL NEWS PORTING README README-CVS \ README-linux README-sunos4 README-svr4 TODO $PKG/usr/doc/strace-4.2 chown root.root $PKG/usr/doc/strace-4.2/* chmod 644 $PKG/usr/doc/strace-4.2/* ./configure --prefix=/usr sparc-slackware-linux sparc32 make CC=egcs CFLAGS='-O2 -I/usr/src/linux/include' LDFLAGS=-s rm -rf /usr/include/asm mv /usr/include/asm.BUILD_STRACE /usr/include/asm # restore the original time.h ( cd /usr/src/linux/include/linux mv time.h.orig time.h ) strip strace cat strace > $PKG/usr/bin/strace cat strace-graph > $PKG/usr/bin/strace-graph cat strace.1 | gzip -9c > $PKG/usr/man/man1/strace.1.gz # Build the package: cd $PKG tar czvf $TMP/strace.tgz . # Warn of zero-length files: for file in `find . -type f -print` ; do if [ "`filesize $file`" = "0" ]; then echo "WARNING: zero length file $file" fi if [ "`filesize $file`" = "20" ]; then echo "WARNING: possible empty gzipped file $file" fi done # Clean up the extra stuff: if [ "$1" = "--cleanup" ]; then rm -rf $TMP/strace-4.2 rm -rf $PKG fi