summaryrefslogtreecommitdiffstats
path: root/boost/build/boost.SlackBuild
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2007-09-04 12:23:24 +0000
committer Eric Hameleers <alien@slackware.com>2007-09-04 12:23:24 +0000
commit9bea5930fb3b8b5a01d8192786bf4999fb0d4f01 (patch)
treefc61b89a391ae332d91f4c9908470889de2885c8 /boost/build/boost.SlackBuild
parent08237a7f4605fbda6fa039e4701f9a1053f28dc5 (diff)
downloadasb-9bea5930fb3b8b5a01d8192786bf4999fb0d4f01.tar.gz
asb-9bea5930fb3b8b5a01d8192786bf4999fb0d4f01.tar.xz
Update to 1.34.1
Diffstat (limited to 'boost/build/boost.SlackBuild')
-rwxr-xr-xboost/build/boost.SlackBuild205
1 files changed, 104 insertions, 101 deletions
diff --git a/boost/build/boost.SlackBuild b/boost/build/boost.SlackBuild
index 49183129..4235803f 100755
--- a/boost/build/boost.SlackBuild
+++ b/boost/build/boost.SlackBuild
@@ -1,6 +1,25 @@
#!/bin/sh
# $Id$
-# Copyright (c) 2006 Eric Hameleers <alien@slackware.com>
+# Copyright (c) 2007 Eric Hameleers <alien@slackware.com>
+# All rights reserved.
+#
+# Permission to use, copy, modify, and distribute this software for
+# any purpose with or without fee is hereby granted, provided that
+# the above copyright notice and this permission notice appear in all
+# copies.
+#
+# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
# -----------------------------------------------------------------------------
#
# Slackware SlackBuild script
@@ -9,10 +28,12 @@
# For: boost
# Descr: collection of portable C++ source libraries
# URL: http://www.boost.org/
-# Needs: python (for building)
+# Needs:
# Changelog:
-# 1.33.1-1: 23/Dec/2006 by Eric Hameleers <alien@slackware.com>
+# 1.33.1-1: 23/Dec/2006 by Eric Hameleers <alien@slackware.com>
# * Initial build.
+# 1.34.1-1: 04/Sep/2007 by Eric Hameleers <alien@slackware.com>
+# * Update, Slackware 12.0 package.
#
# Run 'sh boost.SlackBuild --cleanup' to build a Slackware package.
# The package (.tgz) plus descriptive .txt file are created in /tmp .
@@ -20,24 +41,23 @@
#
# -----------------------------------------------------------------------------
-# --- INIT ---
# Set initial variables:
PRGNAM=boost
-VERSION=${VERSION:-1.33.1}
-SRCVER=`echo ${VERSION} | tr '.' '_'`
+VERSION=${VERSION:-1.34.1}
+SRCVER=$(echo ${VERSION} | tr '.' '_')
ARCH=${ARCH:-i486}
BUILD=${BUILD:-1}
# This is the python we build against:
-PYTHON_VERSION=`python -c 'import sys; print sys.version[:3]'`
+PYTHON_VERSION=$(python -c 'import sys; print sys.version[:3]')
PYTHON_FLAGS="-sPYTHON_ROOT=/usr -sPYTHON_VERSION=$PYTHON_VERSION"
DOCS="README LICENSE_1_0.txt doc/html people wiki"
# Where do we look for sources?
-CWD=`pwd`
-SRCDIR=`dirname $0`
+CWD=$(pwd)
+SRCDIR=$(dirname $0)
[ "${SRCDIR:0:1}" == "." ] && SRCDIR=${CWD}/${SRCDIR}
# Place to build (TMP) package (PKG) and output (OUTPUT) the program:
@@ -45,9 +65,9 @@ TMP=${TMP:-/tmp/build}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-# Input URL: http://dl.sourceforge.net/sourceforge/boost/boost_1_33_1.tar.gz
+# Input URL: http://dl.sourceforge.net/boost/boost_1_34_1.tar.gz
SOURCE="$SRCDIR/${PRGNAM}_${SRCVER}.tar.gz"
-SRCURL="http://dl.sourceforge.net/sourceforge/${PRGNAM}/${PRGNAM}_${SRCVER}.tar.gz"
+SRCURL="http://dl.sourceforge.net/${PRGNAM}/${PRGNAM}_${SRCVER}.tar.gz"
##
## --- with a little luck, you won't have to edit below this point --- ##
@@ -61,7 +81,7 @@ set -u
P1=${1:-1}
# Slackware 11 and up need other option (gcc > 3.3.x)
-if [ `gcc -dumpversion | tr -d '.' |cut -c 1-2` -gt 33 ]; then
+if [ $(gcc -dumpversion | tr -d '.' |cut -c 1-2) -gt 33 ]; then
MOPT=tune
else
MOPT=cpu
@@ -88,42 +108,28 @@ case "$ARCH" in
;;
esac
-if [ ! -d $TMP/tmp-$PRGNAM ]; then
- mkdir -p $TMP/tmp-$PRGNAM # location to build the source
-elif [ "$P1" != "--oldbuild" ]; then
- # If the "--oldbuild" parameter is present, we keep
- # the old build files and continue;
- # By default we remove the remnants of previous build and continue:
- rm -rf $TMP/tmp-$PRGNAM/*
-fi
-
-if [ ! -d $PKG ]; then
- mkdir -p $PKG # place for the package to be built
-else
- rm -rf $PKG/* # We always erase old package's contents:
-fi
-
-if [ ! -d $OUTPUT ]; then
- mkdir -p $OUTPUT # place for the package to be saved
-fi
-
-
-# --- SOURCE FILE AVAILABILITY ---
+# Create working directories:
+mkdir -p $TMP/tmp-$PRGNAM # location to build the source
+rm -rf $TMP/tmp-$PRGNAM/* # By default we remove the remnants of previous build
+mkdir -p $PKG # place for the package to be built
+rm -rf $PKG/* # We always erase old package's contents:
+mkdir -p $OUTPUT # place for the package to be saved
+# Source file availability:
if ! [ -f ${SOURCE} ]; then
if ! [ "x${SRCURL}" == "x" ]; then
# Check if the $SRCDIR is writable at all - if not, download to $OUTPUT
- [ -w "$SRCDIR" ] || SOURCE="$OUTPUT/`basename $SOURCE`"
- echo "Source '`basename ${SOURCE}`' not available yet..."
- echo "Will download file to `dirname $SOURCE`"
- wget -nv -O "${SOURCE}" "${SRCURL}" || true
- if [ $? -ne 0 ]; then
- echo "Downloading '`basename ${SOURCE}`' failed... aborting the build."
+ [ -w "$SRCDIR" ] || SOURCE="$OUTPUT/$(basename $SOURCE)"
+ echo "Source '$(basename ${SOURCE})' not available yet..."
+ echo "Will download file to $(dirname $SOURCE)"
+ wget -nv --connect-timeout=30 -O "${SOURCE}" "${SRCURL}" || true
+ if [ $? -ne 0 -o ! -s "${SOURCE}" ]; then
+ echo "Downloading '$(basename ${SOURCE})' failed... aborting the build."
mv -f "${SOURCE}" "${SOURCE}".FAIL
exit 1
fi
else
- echo "File '`basename ${SOURCE}`' not available... aborting the build."
+ echo "File '$(basename ${SOURCE})' not available... aborting the build."
exit 1
fi
fi
@@ -139,84 +145,79 @@ echo "++"
echo "|| $PRGNAM-$VERSION"
echo "++"
-cd $PKG
-
-# Explode the package framework:
-if [ -f $SRCDIR/_$PRGNAM.tar.gz ]; then
- explodepkg $SRCDIR/_$PRGNAM.tar.gz
-fi
-
cd $TMP/tmp-$PRGNAM
-
-
-# --- TARBALL EXTRACTION,PATCH,MODIFY ---
-
echo "Extracting the source archive(s) for $PRGNAM..."
-if `file ${SOURCE} | grep -q ": bzip2"`; then
+if $(file ${SOURCE} | grep -q ": bzip2"); then
tar -xjvf ${SOURCE}
-else
+elif $(file ${SOURCE} | grep -q ": gzip"); then
tar -xzvf ${SOURCE}
fi
-mv ${PRGNAM}_${SRCVER} ${PRGNAM}-${VERSION}
cd ${PRGNAM}-${VERSION}
-
-chown -R root.root *
-find . -perm 777 -exec chmod 755 {} \;
-find . -perm 666 -exec chmod 644 {} \;
-
-
-# --- BUILDING ---
+chown -R root:root .
+chmod -R u+w,go+r-w,a-s .
echo Building ...
+export LDFLAGS="$SLKLDFLAGS"
+export CFLAGS="$SLKCFLAGS"
+export CXXFLAGS="$SLKCFLAGS"
mkdir -p $PKG/usr/{bin,lib,include}
-# First build bjam
-( cd tools/build/jam_src
+# First build bjam, the boost build system:
+( cd tools/jam/src
./build.sh gcc 2>&1 | tee $OUTPUT/make-${PRGNAM}.log
-)
-BJAM=`find tools/build/jam_src/ -name bjam -a -type f`
+) || exit $?
+BJAM=$(find tools/jam/src/ -name bjam -a -type f)
# Build bcp
( cd tools/bcp
../../$BJAM 2>&1 | tee -a $OUTPUT/make-${PRGNAM}.log
-)
-BCP=`find bin/boost/tools -name bcp -a -type f`
+) || exit $?
+BCP=$(find bin/boost/tools -name bcp -a -type f)
+
+# Create build subdirectory
+mkdir obj
# Next, we build boost using bjam
$BJAM \
- "-sBUILD=release <optimization>speed <inlining>full" \
- "-sTOOLS=gcc" \
$PYTHON_FLAGS \
+ "-sBUILD=release <optimization>speed <inlining>full <threading>single/multi" \
+ "-sNO_COMPRESSION=0" "-sZLIB_INCLUDE=/usr/include" "-sZLIB_LIBPATH=/usr/lib" \
+ "-sBZIP2_INCLUDE=/usr/include" "-sBZIP2_LIBPATH=/usr/lib" \
+ --toolset=gcc --layout=system --builddir=obj \
--prefix=/usr \
+ stage \
2>&1 | tee -a $OUTPUT/make-${PRGNAM}.log
# And then install boost..
$BJAM \
- "-sBUILD=release <optimization>speed <inlining>full" \
- "-sTOOLS=gcc" \
$PYTHON_FLAGS \
- --prefix=$PKG/usr --layout=system install \
- 2>&1 | tee $OUTPUT/install-${PRGNAM}.log
+ "-sBUILD=release <optimization>speed <inlining>full <threading>single/multi" \
+ "-sNO_COMPRESSION=0" "-sZLIB_INCLUDE=/usr/include" "-sZLIB_LIBPATH=/usr/lib" \
+ "-sBZIP2_INCLUDE=/usr/include" "-sBZIP2_LIBPATH=/usr/lib" \
+ --toolset=gcc --layout=system --builddir=obj \
+ --prefix=$PKG/usr \
+ install \
+ 2>&1 | tee $OUTPUT/install-${PRGNAM}.log
# Install the bjam/bcp binaries
cp -a $BJAM $BCP $PKG/usr/bin
## Install the libraries
-#for i in `find stage -type f -name \*.a`; do
-# NAME=`basename $i`;
+#for i in $(find stage -type f -name \*.a); do
+# NAME=$(basename $i);
# install -m 755 $i $PKG/usr/lib/$NAME;
#done;
-#for i in `find stage -type f -name \*.so.*`; do
-# NAME=`basename $i`;
+#for i in $(find stage -type f -name \*.so.*); do
+# NAME=$(basename $i);
# install -m 755 $i $PKG/usr/lib/$NAME;
#done;
#
## Install include files
-#for i in `find boost -type d`; do
+#for i in $(find boost -type d); do
# mkdir -p $PKG/usr/include/$i
#done
-#for i in `find boost -type f`; do
+#for i in $(find boost -type f); do
# install -m 644 $i $PKG/usr/include/$i
#done
@@ -224,27 +225,34 @@ cp -a $BJAM $BCP $PKG/usr/bin
#mv $PKG/usr/include/$PRGNAM-$VERSION/boost $PKG/usr/include/
#rmdir $PKG/usr/include/$PRGNAM-$VERSION
-
-# --- DOCUMENTATION ---
-
+# Add documentation:
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION || true
chmod -R a-w $PKG/usr/doc/$PRGNAM-$VERSION/*
-# Strip binaries
-( 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
-)
-
-
-# --- OWNERSHIP, RIGHTS ---
+# Move incorrectly installed man pages, if any:
+[ -d $PKG/usr/share/man ] && \
+ mv $PKG/usr/share/man $PKG/usr/ && rmdir $PKG/usr/share || true
+# Compress the man page(s):
+if [ -d $PKG/usr/man ]; then
+ find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \;
+ for i in $(find $PKG/usr/man -type l -name "*.?") ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
+fi
-chmod -R o-w $PKG
+# Compress info pages and remove the package's dir file:
+if [ -d $PKG/usr/info ]; then
+ rm -rf $PKG/usr/info/dir
+ gzip -9f $PKG/usr/info/*.info*
+fi
+# Strip binaries:
+cd $PKG
+find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+cd -
-# --- PACKAGE DESCRIPTION ---
+# Add a package description:
mkdir -p $PKG/install
cat $SRCDIR/slack-desc > $PKG/install/slack-desc
if [ -f $SRCDIR/doinst.sh ]; then
@@ -254,22 +262,17 @@ if [ -f $SRCDIR/slack-required ]; then
cat $SRCDIR/slack-required > $PKG/install/slack-required
fi
-
-# --- BUILDING ---
-
# Build the package:
cd $PKG
-makepkg --linkadd y --chown n $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.tgz \
- 2>&1 | tee $OUTPUT/makepkg-${PRGNAM}.log
-(cd $OUTPUT && md5sum ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.tgz > ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.tgz.md5)
+makepkg --linkadd y --chown n $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.tgz 2>&1 | tee $OUTPUT/makepkg-${PRGNAM}.log
+cd $OUTPUT
+md5sum ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.tgz > ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.tgz.md5
+cd -
cat $PKG/install/slack-desc | grep "^${PRGNAM}" > $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txt
if [ -f $PKG/install/slack-required ]; then
cat $PKG/install/slack-required > $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.dep
fi
-
-# --- CLEANUP ---
-
# Clean up the extra stuff:
if [ "$P1" = "--cleanup" ]; then
rm -rf $TMP/tmp-$PRGNAM