#!/bin/bash # Script to create SlackBuild scripts # Written by JK Wood joshuakwood@gmail.com PRGNAM=$1 VERSION=$2 if [ "$PRGNAM" = "" ]; then exit 1 elif [ "$VERSION" = "" ]; then exit 1 fi if [ -e "$PRGNAM.SlackBuild" ] && [ "$3" != "-R" ]; then echo " There appears to be a SlackBuild by that name" echo " already in this directory. If you wish to" echo " overwrite it, use the -R flag after the" echo " program name and version." fi cat << EOF > $PRGNAM.SlackBuild #!/bin/sh # Slackbuild for $PRGNAM # Written by JK Wood joshuakwood@gmail.com PRGNAM=$PRGNAM VERSION=$VERSION ARCH=\${ARCH:-i486} BUILD=\${BUILD:-1} TAG=\${TAG:_SBo} CWD=\$(pwd) TMP=\${TMP:-/tmp/SBo} PKG=\$TMP/package-\$PRGNAM OUTPUT=\${OUTPUT:-/tmp} if [ "\$ARCH" = "i486" ]; then SLKCFLAGS="-O2 -march=i486 -mtune=i686" elif [ "\$ARCH" = "i686" ]; then SLKCFLAGS="-O2 -march=i686 -mtune=i686" elif [ "\$ARCH" = "x86_64" ]; then SLKCFLAGS="-O2 -fPIC" fi rm -rf \$PKG mkdir -p \$TMP \$PKG \$OUTPUT cd \$TMP || exit 1 rm -rf \$PRGNAM-\$VERSION tar -xzvf \$CWD/\$PRGNAM-\$VERSION.tar.gz || exit 1 cd \$PRGNAM-\$VERSION || exit 1 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 {} \; CFLAGS="\$SLKCFLAGS" \\ CXXFLAGS="\$SLKCFLAGS" \\ ./configure \\ --prefix=/usr \\ --sysconfdir=/etc \\ --localstatedir=/var \\ --mandir=/usr/man \\ || exit 1 make || exit 1 make install DESTDIR=\$PKG || exit 1 ( cd \$PKG/usr/man || exit 1 find . -type f -exec gzip -9 {} \; for i in \$(find . -type l); do ln -s \$(readlink \$i).gz \$i.gz ; rm \$i ; done ) ( cd $PKG find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null ) mkdir -p \$PKG/usr/doc/\$PRGNAM-\$VERSION cp -a AUTHORS COPYING* INSTALL NEWS README* TODO doc/* \\ \$PKG/usr/doc/\$PRGNAM-\$VERSION cat \$CWD/\$PRGNAM.SlackBuild > \$PKG/usr/doc/\$PRGNAM-\$VERSION/\$PRGNAM.SlackBuild find \$PKG/usr/doc -name "Makefile" -exec rm {} \; find \$PKG/usr/doc -type f -exec chmod 644 {} \; mkdir -p \$PKG/install cat \$CWD/slack-desc > \$PKG/install/slack-desc cat \$CWD/doinst.sh > \$PKG/install/doinst.sh cd \$PKG /sbin/makepkg -l y -c n \$OUTPUT/\$PRGNAM-\$VERSION-\$ARCH-\$BUILD\$TAG.tgz EOF cat << EOF > slack-desc # HOW TO EDIT THIS FILE: # The "handy ruler" below makes it easier to edit a package description. Line # up the first '|' above the ':' following the base package name, and the '|' on # the right side marks the last column you can put a character in. You must make # exactly 11 lines for the formatting to be correct. It's also customary to # leave one space after the ':'. |-----handy-ruler------------------------------------------------------| $PRGNAM: $PRGNAM ( program for ) $PRGNAM: $PRGNAM: $PRGNAM: $PRGNAM: $PRGNAM: $PRGNAM: $PRGNAM: $PRGNAM: $PRGNAM: $PRGNAM: Packaged for Slackware by EOF /usr/bin/chown jk:users * /usr/bin/chmod +x *.SlackBuild