Tom G. Christensen bdf6fdc2b5 gcc will now default to create code for the ultrasparc cpu using v8+
instruction set.
Renamed the libstdc++ and libgcc packages. What matters for these two
packages are the .so version of the libraries contained within.
Therefore the .so version has been integrated in the packagename instead
of the gcc version.
2004-01-12 10:21:32 +00:00

200 lines
4.8 KiB
Bash
Executable File

#!/bin/bash
#
# This is a generic build.sh script
# It can be used nearly unmodified with many packages
#
# The concept of "method" registering and the logic that implements it was shamelessly
# stolen from jhlj's Compile.sh script :)
#
# Check the following 4 variables before running the script
topdir=gcc
version=3.3.2
pkgver=2
source[0]=$topdir-$version.tar.bz2
## If there are no patches, simply comment this
#patch[0]=
# Source function library
. ${HOME}/buildpkg/scripts/buildpkg.functions
# Define abbreviated version number
abbrev_ver=$(echo $version|sed -e 's/\.//g') #331
# Fill in pkginfo values if necessary
# using pkgname,name,pkgcat,pkgvendor & pkgdesc
pkgname="$pkgprefix""gcc""$abbrev_ver"
name="GCC - GNU Compiler Collection"
pkgvendor="http://gcc.gnu.org"
pkgdesc="GNU Compiler Collection (C, C++)"
# depend is created by build.sh so make sure
# it's removed by distclean
META_CLEAN="$META_CLEAN depend"
# We're going to build more than one package from this source
# define helpervars to do that
libgcc_stage=$BUILDPKG_BASE/$topdir/stage.libgcc
gcc_dir=$prefix/gcc-$version
libgcc_pkgname="$pkgprefix""libgccso1"
libgcc_name="libgcc - GCC runtime support"
libgcc_pkgcat="library"
libgcc_pkgvendor="http://gcc.gnu.org"
libgcc_pkgdesc="Runtime support for programs built with gcc 3.x"
libgcc_pkgver="2"
libstdc_stage=$BUILDPKG_BASE/$topdir/stage.libstdc
libstdc_pkgname="$pkgprefix""libstdcso5"
libstdc_name="libstdc++ - GCC runtime support"
libstdc_pkgcat="library"
libstdc_pkgvendor="http://gcc.gnu.org"
libstdc_pkgdesc="Runtime support for c++ programs built with gcc $version"
libstdc_pkgver="2"
MV=/usr/bin/mv
CP=/usr/bin/cp
objdir=$srcdir/objdir
# Define script functions and register them
METHODS=""
reg() {
METHODS="$METHODS $1"
}
reg prep
prep()
{
generic_prep
}
reg build
build()
{
$MKDIR "$objdir"
setdir "$objdir"
$srcdir/$topsrcdir/configure --prefix=/usr/local/gcc-$version --disable-nls --with-as=/usr/ccs/bin/as --with-ld=/usr/ccs/bin/ld --with-system-zlib --enable-languages=c,c++ --with-cpu=ultrasparc
$MAKE_PROG
}
reg install
install()
{
setdir $objdir
$MAKE_PROG DESTDIR=$stagedir install
}
reg pack
pack()
{
usedepend=0 # don't use $metadir/depend file
# We want to create gcc, libstdc++ and libgcc packages
# Copy files for libgcc package
$MKDIR -p $libgcc_stage$prefix/lib
$MKDIR -p $libgcc_stage$prefix/lib/sparcv9
$CP $stagedir$gcc_dir/lib/libgcc_s* $libgcc_stage$prefix/lib
$CP $stagedir$gcc_dir/lib/sparcv9/libgcc_s* $libgcc_stage$prefix/lib/sparcv9
# Copy files for libstdc++ package
$MKDIR -p $libstdc_stage$prefix/lib
$MKDIR -p $libstdc_stage$prefix/lib/sparcv9
$CP $stagedir$gcc_dir/lib/libstdc++.so* $libstdc_stage$prefix/lib
$CP $stagedir$gcc_dir/lib/sparcv9/libstdc++.so* $libstdc_stage$prefix/lib/sparcv9
#rm -f $libstdc_stage$prefix/lib/libstdc++.so.5
#rm -f $libstdc_stage$prefix/lib/sparcv9/libstdc++.so.5
rm -f $libstdc_stage$prefix/lib/libstdc++.so
rm -f $libstdc_stage$prefix/lib/sparcv9/libstdc++.so
# now create gcc package
generic_pack
# Prepare for libgcc package
$MV $stagedir $stagedir.1
$MV $libgcc_stage $stagedir
pkgname=$libgcc_pkgname
name=$libgcc_name
pkgcat=$libgcc_pkgcat
pkgvendor=$libgcc_pkgvendor
pkgdesc=$libgcc_pkgdesc
pkgver=$libgcc_pkgver
distfile=libgcc-$version-$pkgver.sb-$os-$cpu-$pkgdirdesig
generic_pack # don't embed any pre/post scripts
# Prepare for libstdc++ package
$MV $stagedir $libgcc_stage
$MV $libstdc_stage $stagedir
pkgname=$libstdc_pkgname
name=$libstdc_name
pkgcat=$libstdc_pkgcat
pkgvendor=$libstdc_pkgvendor
pkgdesc=$libstdc_pkgdesc
pkgver=$libstdc_pkgver
distfile=libstdc++-$version-$pkgver.sb-$os-$cpu-$pkgdirdesig
usedepend=0
generic_pack
# clean up $stagedir
# We will need to do build.sh install to use it again since we've moved files around
# so we might as well nuke it now
$MV $stagedir.1 $stagedir # move gcc stagedir into the current stagedir
$MV $libgcc_stage $stagedir # move libgcc stagedir into the current stagedir
setdir source
clean stage # Nuke all of it :)
}
reg distclean
distclean()
{
clean distclean
pkgname=$libgcc_pkgname
clean meta
pkgname=$libstdc_pkgname
clean meta
$RM -rf $objdir
}
###################################################
# No need to look below here
###################################################
reg all
all()
{
for METHOD in $METHODS
do
case $METHOD in
all*|*clean) ;;
*) $METHOD
;;
esac
done
}
reg
usage() {
echo Usage $0 "{"$(echo $METHODS | tr " " "|")"}"
exit 1
}
OK=0
for METHOD in $*
do
METHOD=" $METHOD *"
if [ "${METHODS%$METHOD}" == "$METHODS" ] ; then
usage
fi
OK=1
done
if [ $OK = 0 ] ; then
usage;
fi
for METHOD in $*
do
( $METHOD )
done