make-cbe-dist.sh
author xlucas
Tue, 28 Apr 2009 09:49:26 +0000
changeset 41 31570364d0f1
parent 31 aed8653fb8d1
permissions -rwxr-xr-x
2009-03-16 Lukas (Luc) Oboril <[email protected]> * bump pkgbuild to latest version 1.3.98.4 * add Sun Studio Express 03/09 as known compiler

#!/bin/bash

ALL_SPECS="
CBEant.spec
CBEautoconf.spec
CBEautomake.spec
CBEbison.spec
CBEcmake.spec
CBEcoreutils.spec
CBEcvs.spec
CBEdiff.spec
CBEflex.spec
CBEgettext.spec
CBEgnuawk.spec
CBEgnused.spec
CBElibtool.spec
CBEm4.spec
CBEmake.spec
CBErsync.spec
CBEsubversion.spec
CBEyasm.spec
"

usage () {
    echo "Usage: $0 option"
    echo "Options:"
    echo "   -s, --src             make a source tarball (default: binary)"
    echo "   -a arch, --arch arch  make dist for arch, arch must be one of sparc or x86"
    exit 1
}

mydir=$(cd $(dirname $0); pwd);
tardir=${mydir}/tarballs
the_cpu=`uname -p`
if [ "x$the_cpu" != xsparc ]; then
    the_cpu=x86
fi
dist_cpu=$the_cpu

PKGBUILD_VERSION=`grep '^PKGBUILD_VERSION=' cbe-install | head -1 | cut -f2 -d=`

DIST=bin

case "$1" in
    -s|--src )
	DIST=src
	;;
    -a|--arch )
	shift
	case "$1" in
	sparc|x86)
	    dist_cpu=$1
	    ;;
	*)
	    echo Error: argument to -a or --arch must be either sparc or x86
	    exit 1
	    ;;
        esac
	;;
    *)
        usage
	;;
esac

pkgsdir=pkgs-${dist_cpu}

if [ ! -f ${mydir}/CBE_VERSION ]; then
    echo "Run this script in the wells-cbe directory"
    exit 1
fi

CBE_VERSION=`cat ${mydir}/CBE_VERSION`
DATE=`date +%Y-%m-%d`
ARCH=`uname -p`

if [ $DIST = src ]; then
    CBE_TARBALL_NAME=desktop-cbe-src-${CBE_VERSION}.tar.bz2
else
    CBE_TARBALL_NAME=desktop-cbe-${CBE_VERSION}-${dist_cpu}.tar.bz2
fi

DIST_SUBDIR=desktop-cbe-$CBE_VERSION

COMMON_DIST_FILES="cbe-install cbe-remove .pkgtoolrc CBE_VERSION NEWS $ALL_SPECS CBEenv.spec ext-sources/env.sh ext-sources/env.csh ext-sources/env_include.sh ext-sources/ld-wrapper ext-sources/gendiff include/CBE.inc include/default-depend.inc"

cd ${mydir}
rm -rf $DIST_SUBDIR/*
mkdir -p ${mydir}/$DIST_SUBDIR || exit 1

mkdir -p ${mydir}/$DIST_SUBDIR/ext-sources || exit 1
mkdir -p ${mydir}/$DIST_SUBDIR/include || exit 1

sed \
  -e "s/@CBE_VERSION@/$CBE_VERSION/g" \
  -e "s/@ARCH@/$ARCH/g" \
  -e "s/@DATE@/$DATE/g" \
    $mydir/CBE_README > $mydir/$DIST_SUBDIR/README || exit 1

for f in $COMMON_DIST_FILES; do
    cp $mydir/$f $mydir/$DIST_SUBDIR/$f || exit 1
done

chmod +x ${mydir}/cbe-install || exit 1
chmod +x ${mydir}/cbe-remove || exit 1

if [ $DIST = src ]; then
    CBE_SRC_FILES="include/CBE.inc tarballs/pkgbuild-$PKGBUILD_VERSION.tar.bz2"
    mkdir -p ${mydir}/$DIST_SUBDIR/tarballs || exit 1
    mkdir -p ${mydir}/$DIST_SUBDIR/patches || exit 1
    for spec in $ALL_SPECS; do
	srcs=`spectool get_sources $spec`
	for src in $srcs; do
	    src=`basename $src`
	    test -f "$mydir/ext-sources/$src" && \
		src=ext-sources/$src || \
		src=tarballs/$src
	    CBE_SRC_FILES="$CBE_SRC_FILES $src"
	done
	srcs=`spectool get_patches $spec`
	for src in $srcs; do
	    src=patches/`basename $src`
	    CBE_SRC_FILES="$CBE_SRC_FILES $src"
	done
    done
    for f in $CBE_SRC_FILES; do
	cp $mydir/$f $mydir/$DIST_SUBDIR/$f || exit 1
    done
else
    CBE_PKGS="$pkgsdir/SFpkgbuild"
    mkdir -p ${mydir}/$DIST_SUBDIR/$pkgsdir/5.10 || exit 1
    for spec in $ALL_SPECS; do
	pkgs=`spectool get_packages $spec`
	for pkg in $pkgs; do
	    CBE_PKGS="$CBE_PKGS $pkgsdir/$pkg"
	    test -d $mydir/$pkgsdir/5.10/$pkg && \
			    CBE_PKGS="$CBE_PKGS $pkgsdir/5.10/$pkg"
	done
    done
    for pkg in $CBE_PKGS; do
	cp -pr $mydir/$pkg $mydir/$DIST_SUBDIR/$pkg || exit 1
    done
fi

chmod -R a+rX ${mydir}/$DIST_SUBDIR || exit 1
chmod 555 $mydir/$DIST_SUBDIR/cbe-install $mydir/$DIST_SUBDIR/cbe-remove

cd $mydir
/bin/tar cvhf - $DIST_SUBDIR | bzip2 -9 \
    > $CBE_TARBALL_NAME || exit 1
rm -rf $DIST_SUBDIR