#!/bin/bash # libtool.SlackBuild # by Stuart Winter for the Slackware porting Project. # Heavily based on the original Slackware build script. # 31-May-2004 # Record toolchain & other info for the build log: slackbuildinfo # Paths to skeleton port's source & real Slackware source tree: export CWD=$SLACKSOURCE/$PKGSERIES/$PACKAGE export PORTCWD=$PWD # Temporary build locations: export TMPBUILD=$TMP/build-$PACKAGE export PKG=$TMP/package-$PACKAGE mkpkgdirs # Delete and re-create temporary directories # Determine the CFLAGS for the known architectures: case $PORTARCH in arm) SLKCFLAGS="-O2 -march=armv3 -mtune=xscale" ;; powerpc) SLKCFLAGS="-O2" ;; sparc) SLKCFLAGS="-O2" ;; *) SLKCFLAGS="-O2" ;; esac # Untar source: #tar jxvvf $CWD/$PACKAGE-$VERSION.tar.bz2 #tar jxvvf $PORTCWD/sources/libtool_1.6-0+1.5a-4.tar.bz2 tar jxvvf $PORTCWD/sources/libtool_1.5.6-6.tar.bz2 cd $PACKAGE-* slackhousekeeping # Configure: CC=gcc \ LTCC=gcc \ CFLAGS="$SLKCFLAGS" \ ./configure \ --prefix=/usr \ $ARCH-slackware-linux || failconfig # Build: make || failmake # This stuff is taken verbatim from debian/rules: # Support invoking gcc as cc echo '# ### BEGIN LIBTOOL TAG CONFIG: BINCC' >> libtool sed -n -e '/^# ### BEGIN LIBTOOL CONFIG/,/^# ### END LIBTOOL CONFIG/p' < libtool \ | grep -B 2 -A 1 -e '^LTCC=' -e '^CC=' \ | sed -e 's/gcc/cc/g' >> libtool echo '# ### END LIBTOOL TAG CONFIG: BINCC' >> libtool echo >> libtool # Support invoking g++ both by the g++ and c++ names. sed -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: CXX$$/,/^# ### END LIBTOOL TAG CONFIG: CXX$$/p' < libtool \ | sed -e 's/CONFIG: CXX/CONFIG: BINCXX/g' -e 's/g++/c++/g' >> libtool echo >> libtool # Add BINCC and BINCXX tags sed -e 's/^\(available_tags\)=\"\(.*\)\"/\1=\"\2 BINCC BINCXX\"/' < libtool > libtool.tags mv -f libtool.tags libtool # Don't hardcode gcc path information, and don't use nostdlib sed -e 's/^\(predep_objects\)=.*/\1=""/' \ -e 's/^\(postdep_objects\)=.*/\1=""/' \ -e 's/^\(compiler_lib_search_path\)=.*/\1=""/' \ -e 's:^\(sys_lib_search_path_spec\)=.*:\1="/lib/ /usr/lib/ /usr/X11R6/lib/ /usr/local/lib/":' \ -e 's/^\(archive_cmds=\".*\) -nostdlib /\1 /' \ -e 's/^\(archive_expsym_cmds=\".*\) -nostdlib /\1 /' \ < libtool > libtool.gcc-indep mv -f libtool.gcc-indep libtool # Install into package: make install DESTDIR=$PKG || failinstall # Install docs: mkdir -p $PKG/usr/doc/$PACKAGE-$VERSION cp -a AUTHORS COPYING INSTALL NEWS README THANKS TODO \ $PKG/usr/doc/$PACKAGE-$VERSION # Move info pages into Slackware location: mv $PKG/usr/share/info $PKG/usr # If necessary, start the fakeroot server so we can set file/dir ownerships: start_fakeroot # Apply generic Slackware packaging 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 = arm ]; then slackmp # run makepkg 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