#!/bin/sh # # Version Variables # PPU_GCC_VERSION=4.1.1-57 PPU_GDB_VERSION=6.6.50-28 PPU_BINUTILS_VERSION=2.17.50-32 PPU_SYSROOT_RHEL5_VERSION=fc7-2 PPU_SYSROOT_VERSION=rhel5-2 SPU_GCC_VERSION=4.1.1-107 SPU_GDB_VERSION=6.6.50-12 SPU_BINUTILS_VERSION=2.17.50-33 SPU_NEWLIB_VERSION=1.15.0-82 CBE_LIBSPE2_VERSION=2.2.0-91 CBE_LIBSPE_VERSION=1.2.2-2 SPUTOOLS_VERSION=1.0-2 CRASHSPU_VERSION=1.0-2 SYSROOT_VERSION=3.0-7 OPROFILE_VERSION=0.9.3-4bsc NETPBM_VERSION=10.35-12.fc7 NUMACTL_VERSION=0.9.10-1 CELLPERFCTR_VERSION=2007.03.19-1 # # rpmbuild variables # USR_SRC_REDHAT_SPECS_DIR=/usr/src/redhat/SPECS USR_SRC_REDHAT_SOURCES_DIR=/usr/src/redhat/SOURCES USR_SRC_REDHAT_BUILD_DIR=/usr/src/redhat/BUILD USR_SRC_REDHAT_RPMS_DIR=/usr/src/redhat/RPMS # # Print out usage information for command line options # function usage(){ echo "Usage: rpm_build.sh" echo " --help Prints Usage" echo " --all Builds all (default)" echo " --none Builds none" echo "" echo " Use the following options only in conjunction with the "--none" option" echo " --pputoolchain Builds pputoolchain" echo " --sputoolchain Builds sputoolchain" echo " --libspe Builds libspe" echo " --libspe2 Builds libspe2" echo " --oprofile Builds oprofile" echo " --sputools Builds sputools" echo " --crashspu Builds crashspu" echo " --numactl Builds numactl" echo " --netpbm Builds netpbm" echo " --sysroot Builds sysroot" echo "" echo " Use the following options only in conjunction with the "--all" option" echo " --nopputoolchain Does not build pputoolchain" echo " --nosputoolchain Does not build sputoolchain" echo " --nolibspe Does not build libspe" echo " --nolibspe2 Does not build libspe2" echo " --nooprofile Does not build oprofile" echo " --nosputools Does not build sputools" echo " --nocrashspu Does not build crashspu" echo " --nonumactl Does not build numactl" echo " --nonetpbm Does not build netpbm" echo " --nosysroot Does not build sysroot" echo "END Usage" } # # DEBUG: Check to make sure all the options are set correctly # function check(){ echo "pputoolchain = $pputoolchain" echo "sputoolchain = $sputoolchain" echo "libspe = $libspe" echo "libspe2 = $libspe2" echo "oprofile = $oprofile" echo "sputools = $sputools" echo "crashspu = $crashspu" echo "numactl = $numactl" echo "netpbm = $netpbm" echo "sysroot = $sysroot" } # #Default options: If no command line options are given, set variables to "1". # pputoolchain=1 sputoolchain=1 libspe=1 libspe2=1 oprofile=1 sputools=1 crashspu=1 numactl=1 netpbm=1 sysroot=1 # #Check parameters on command line and set variables accordingly. # while [ "$1" != "" ] ; do case $1 in --all ) pputoolchain=1 sputoolchain=1 libspe=1 libspe2=1 oprofile=1 crashspu=1 sputools=1 numactl=1 netpbm=1 sysroot=1 ;; --none ) pputoolchain=0 sputoolchain=0 libspe=0 libspe2=0 oprofile=0 crashspu=0 sputools=0 numactl=0 netpbm=0 sysroot=0 ;; --pputoolchain ) pputoolchain=1 ;; --sputoolchain ) sputoolchain=1 ;; --libspe ) libspe=1 ;; --libspe2 ) libspe2=1 ;; --oprofile ) oprofile=1 ;; --crashspu ) crashspu=1 ;; --sputools ) sputools=1 ;; --netpbm ) netpbm=1 ;; --numactl ) numactl=1 ;; --sysroot ) sysroot=1 ;; --nopputoolchain ) pputoolchain=0 ;; --nosputoolchain ) sputoolchain=0 ;; --nolibspe ) libspe=0 ;; --nolibspe2 ) libspe2=0 ;; --nooprofile ) oprofile=0 ;; --nocrashspu ) crashspu=0 ;; --nosputools ) sputools=0 ;; --nonumactl ) numactl=0 ;; --nonetpbm ) netpbm=0 ;; --nosysroot ) sysroot=0 ;; --check ) check exit ;; --help ) usage exit 1 esac shift done # # Determine which machine we are building on # MACHINE=`uname -m` if [ "$MACHINE" = "i686" ] ; then ARCH=i686 CBE=0 elif [ "$MACHINE" = "x86_64" ] ; then ARCH=x86_64 elif [ "$MACHINE" = "ppc64" ] ; then ARCH=ppc grep -q "Cell Broadband Engine" /proc/cpuinfo > /dev/null 2>&1 if [ $? -eq 0 ] ; then CBE=1 else CBE=0 fi else echo "Unknown machine type $MACHINE" exit 1; fi # # BSC_HOST_FILES - are files that will install onto the hosting system. # SCE_PPU_TOOLCHAIN_BINUTILS_NAME=ppu-binutils SCE_PPU_TOOLCHAIN_BINUTILS=$SCE_PPU_TOOLCHAIN_BINUTILS_NAME-$PPU_BINUTILS_VERSION SCE_PPU_TOOLCHAIN_BINUTILS_PATCHES="backend_reloc.diff embed_relro.diff ld_embed_segfault.diff needs_ovl_stub.diff spu_addr16x.diff spu_name.diff spu_ppu_reloc.diff warnlib.diff cellnop.diff embed_shinfo.diff linknext.diff overlay_dot.diff spuear.diff spuovl_sym.diff stackanal.diff embed_invoke.diff keep_note.diff msdos_quote.diff ovl_manager.diff spuear_hex.diff spu_ppu_fix.diff targetsel.diff spu_core_note.diff" SCE_PPU_TOOLCHAIN_BINUTILS_DEBUGINFO_NAME=ppu-binutils-debuginfo SCE_PPU_TOOLCHAIN_BINUTILS_DEBUGINFO=$SCE_PPU_TOOLCHAIN_BINUTILS_DEBUGINFO_NAME-$PPU_BINUTILS_VERSION SCE_PPU_TOOLCHAIN_GCC_NAME=ppu-gcc SCE_PPU_TOOLCHAIN_GCC=$SCE_PPU_TOOLCHAIN_GCC_NAME-$PPU_GCC_VERSION SCE_PPU_TOOLCHAIN_GCC_PATCHES="ada-ldblspecs.diff minimal-toc.diff pr38394.diff vect-fixes.diff ada-rtsdir.diff pr38394-2.diff unwanted.diff vect-fixes-tests.diff" SCE_PPU_TOOLCHAIN_CPP_NAME=ppu-gcc-c++ SCE_PPU_TOOLCHAIN_CPP=$SCE_PPU_TOOLCHAIN_CPP_NAME-$PPU_GCC_VERSION SCE_PPU_TOOLCHAIN_FORTRAN_NAME=ppu-gcc-fortran SCE_PPU_TOOLCHAIN_FORTRAN=$SCE_PPU_TOOLCHAIN_FORTRAN_NAME-$PPU_GCC_VERSION SCE_PPU_TOOLCHAIN_ADA_NAME=ppu-gcc-gnat SCE_PPU_TOOLCHAIN_ADA=$SCE_PPU_TOOLCHAIN_ADA_NAME-$PPU_GCC_VERSION SCE_PPU_TOOLCHAIN_GDB_NAME=ppu-gdb SCE_PPU_TOOLCHAIN_GDB=$SCE_PPU_TOOLCHAIN_GDB_NAME-$PPU_GDB_VERSION SCE_PPU_TOOLCHAIN_GDB_PATCHES="diff-combined-gdb diff-combined-gdb-pr37807 diff-gdb-prepareproceed diff-combined-gdb-address diff-combined-gdb-pr38374 diff-gdb-solib-alignfix diff-combined-gdb-core diff-combined-gdb-skipprologue diff-gdb-solib-auxv diff-combined-gdb-core-bfd diff-combined-testsuite diff-gdb-solib-multiple diff-combined-gdb-currarch diff-dejagnu-config diff-gdb-solib-openbfd diff-combined-gdb-ea-cache diff-gdb-corewrite diff-gdb-stepthread diff-combined-gdb-ea-ptr diff-gdb-ppc-fptrfix diff-gdb-switchtothread diff-combined-gdb-frame diff-gdb-ppc-longdoublefix diff-spu-ext-mi diff-combined-gdb-gdbserver diff-gdb-ppc-morefixes diff-spu-gdb-fix-fortran_registers diff-combined-gdb-infrunfix diff-gdb-ppc-msymfix diff-spu-gdb-regformatfix diff-combined-gdb-linuxfix diff-gdb-ppcorigr3 diff-wrap-spu-addr diff-combined-gdb-overlay diff-gdb-preferredlwp diff-combined-gdb-pr36764 diff-gdb-preferredlwp-gdbserver" SCE_PPU_TOOLCHAIN_GDB_DEBUGINFO_NAME=ppu-gdb-debuginfo SCE_PPU_TOOLCHAIN_GDB_DEBUGINFO=$SCE_PPU_TOOLCHAIN_GDB_DEBUGINFO_NAME-$PPU_GDB_VERSION SCE_PPU_TOOLCHAIN_DEBUGINFO_NAME=ppu-gcc-debuginfo SCE_PPU_TOOLCHAIN_DEBUGINFO=$SCE_PPU_TOOLCHAIN_DEBUGINFO_NAME-$PPU_GCC_VERSION SCE_PPU_SYSROOT_NAME=ppu-sysroot SCE_PPU_SYSROOT=$SCE_PPU_SYSROOT_NAME-$PPU_SYSROOT_VERSION SCE_PPU_SYSROOT_64_NAME=ppu-sysroot64 SCE_PPU_SYSROOT_64=$SCE_PPU_SYSROOT_64_NAME-$PPU_SYSROOT_VERSION SCE_SPU_TOOLCHAIN_BINUTILS_NAME=spu-binutils SCE_SPU_TOOLCHAIN_BINUTILS=$SCE_SPU_TOOLCHAIN_BINUTILS_NAME-$SPU_BINUTILS_VERSION SCE_SPU_TOOLCHAIN_BINUTILS_PATCHES="backend_reloc.diff embed_relro.diff ld_embed_segfault.diff needs_ovl_stub.diff spu_addr16x.diff spuear_hex.diff spu_ppu_fix.diff targetsel.diff cellnop.diff embed_shinfo.diff linknext.diff overlay_dot.diff spu_name.diff spu_ppu_reloc.diff warnlib.diff embed_invoke.diff keep_note.diff msdos_quote.diff ovl_manager.diff spuear.diff spuovl_sym.diff stackanal.diff spu_core_note.diff" SCE_SPU_TOOLCHAIN_BINUTILS_DEBUGINFO_NAME=spu-binutils-debuginfo SCE_SPU_TOOLCHAIN_BINUTILS_DEBUGINFO=$SCE_SPU_TOOLCHAIN_BINUTILS_DEBUGINFO_NAME-$SPU_BINUTILS_VERSION SCE_SPU_TOOLCHAIN_GCC_NAME=spu-gcc SCE_SPU_TOOLCHAIN_GCC=$SCE_SPU_TOOLCHAIN_GCC_NAME-$SPU_GCC_VERSION SCE_SPU_TOOLCHAIN_GCC_PATCHES="cache.diff ea-const-compare.diff mem_alias.diff pr36096.diff tag-manager.diff common-sysroot.diff ea-dirty.diff multilib.diff pr38063-2.diff vect-fixes.diff convert.diff ea-dwarf.diff no-timode.diff pr38063.diff vect-fixes-tests.diff ea-backend.diff ea-frontend.diff pointer-cast.diff pr38589.diff" SCE_SPU_TOOLCHAIN_CPP_NAME=spu-gcc-c++ SCE_SPU_TOOLCHAIN_CPP=$SCE_SPU_TOOLCHAIN_CPP_NAME-$SPU_GCC_VERSION SCE_SPU_TOOLCHAIN_NEWLIB_NAME=spu-newlib SCE_SPU_TOOLCHAIN_NEWLIB=$SCE_SPU_TOOLCHAIN_NEWLIB_NAME-$SPU_NEWLIB_VERSION SCE_SPU_TOOLCHAIN_NEWLIB_PATCHES="36454.patch ea1.patch libm_scalar_headers.patch off_t.patch 36457.patch ea2.patch libm_scalar_using_vec.patch readfuncs.patch 36824.patch ea3.patch libm_vec_c_files.patch remove.patch 37248.patch ea4.patch libm_vec_headers.patch round.patch 37921.patch ea5.patch libm_vec_mods.patch round_up_malloc_size_38824.patch add_eaddr_mmap_calls.patch ea6.patch malloc0revised.patch sbrk_use_current_sp_38742.patch change_fpos_t_size_38353.patch ea_local_store.patch malloc64bit.patch shm.patch crt0_deps.patch fix_sizes_38107.patch mallocr_38109.patch spu_define_posix_libm.patch dirfuncs.patch fp_ilogb0_value.patch misc_funcs.patch domain-checks.patch libm_scalar_c_files.patch new_malloc.patch" SCE_SPU_TOOLCHAIN_NEWLIB_DEBUGINFO_NAME=spu-newlib-debuginfo SCE_SPU_TOOLCHAIN_NEWLIB_DEBUGINFO=$SCE_SPU_TOOLCHAIN_NEWLIB_DEBUGINFO_NAME-$SPU_NEWLIB_VERSION SCE_SPU_TOOLCHAIN_DEBUGINFO_NAME=spu-gcc-debuginfo SCE_SPU_TOOLCHAIN_DEBUGINFO=$SCE_SPU_TOOLCHAIN_DEBUGINFO_NAME-$SPU_GCC_VERSION SCE_SPU_TOOLCHAIN_GDB_NAME=spu-gdb SCE_SPU_TOOLCHAIN_GDB=$SCE_SPU_TOOLCHAIN_GDB_NAME-$SPU_GDB_VERSION SCE_SPU_TOOLCHAIN_GDB_PATCHES="diff-dejagnu-config diff-spu-gdb-fix-fortran_registers diff-wrap-spu-addr diff-spu-ext-mi diff-spu-gdb-regformatfix" SCE_SPU_TOOLCHAIN_GDB_DEBUGINFO_NAME=spu-gdb-debuginfo SCE_SPU_TOOLCHAIN_GDB_DEBUGINFO=$SCE_SPU_TOOLCHAIN_GDB_DEBUGINFO_NAME-$SPU_GDB_VERSION SCE_SPU_ALL="$SCE_SPU_TOOLCHAIN_NEWLIB $SCE_SPU_TOOLCHAIN_CPP $SCE_SPU_TOOLCHAIN_GCC $SCE_SPU_TOOLCHAIN_BINUTILS $SCE_SPU_TOOLCHAIN_GDB" SCE_SPU_RPMS="$SCE_SPU_TOOLCHAIN_NEWLIB.$ARCH.rpm $SCE_SPU_TOOLCHAIN_CPP.$ARCH.rpm $SCE_SPU_TOOLCHAIN_GCC.$ARCH.rpm $SCE_SPU_TOOLCHAIN_BINUTILS.$ARCH.rpm $SCE_SPU_TOOLCHAIN_GDB.$ARCH.rpm" SCE_SPU_PPC_RPMS="$SCE_SPU_TOOLCHAIN_NEWLIB.ppc.rpm $SCE_SPU_TOOLCHAIN_CPP.ppc.rpm $SCE_SPU_TOOLCHAIN_GCC.ppc.rpm $SCE_SPU_TOOLCHAIN_BINUTILS.ppc.rpm $SCE_SPU_TOOLCHAIN_GDB.ppc.rpm" CBE_LIBSPE2_NAME=libspe2 CBE_LIBSPE2=$CBE_LIBSPE2_NAME-$CBE_LIBSPE2_VERSION CBE_LIBSPE2_DEVEL_NAME=libspe2-devel CBE_LIBSPE2_DEVEL=$CBE_LIBSPE2_DEVEL_NAME-$CBE_LIBSPE2_VERSION CBE_ELFSPE2_NAME=elfspe2 CBE_ELFSPE2=$CBE_ELFSPE2_NAME-$CBE_LIBSPE2_VERSION CBE_LIBSPE2_DEBUGINFO_NAME=libspe2-debuginfo CBE_LIBSPE2_DEBUGINFO=$CBE_LIBSPE2_DEBUGINFO_NAME-$CBE_LIBSPE2_VERSION CBE_LIBSPE_NAME=libspe CBE_LIBSPE=$CBE_LIBSPE_NAME-$CBE_LIBSPE_VERSION CBE_LIBSPE_DEVEL_NAME=libspe-devel CBE_LIBSPE_DEVEL=$CBE_LIBSPE_DEVEL_NAME-$CBE_LIBSPE_VERSION CBE_ELFSPE_NAME=elfspe CBE_ELFSPE=$CBE_ELFSPE_NAME-$CBE_LIBSPE_VERSION CBE_LIBSPE_DEBUGINFO_NAME=libspe-debuginfo CBE_LIBSPE_DEBUGINFO=$CBE_LIBSPE_DEBUGINFO_NAME-$CBE_LIBSPE_VERSION SYSROOT_NAME=sysroot_image SYSROOT=$SYSROOT_NAME-$SYSROOT_VERSION NETPBM_NAME=netpbm-cross-devel NETPBM=$NETPBM_NAME-$NETPBM_VERSION NUMACTL_NAME=numactl NUMACTL=$NUMACTL_NAME-$NUMACTL_VERSION NUMACTL_DEBUGINFO_NAME=numactl-debuginfo NUMACTL_DEBUGINFO=$NUMACTL_DEBUGINFO_NAME-$NUMACTL_VERSION OPROFILE_NAME=oprofile OPROFILE=$OPROFILE_NAME-$OPROFILE_VERSION OPROFILE_DEBUGINFO_NAME=oprofile-debuginfo OPROFILE_DEBUGINFO=$OPROFILE_DEBUGINFO_NAME-$OPROFILE_VERSION SPUTOOLS_NAME=spu-tools SPUTOOLS=$SPUTOOLS_NAME-$SPUTOOLS_VERSION SPUTOOLS_DEBUGINFO_NAME=spu-tools-debuginfo SPUTOOLS_DEBUGINFO=$SPUTOOLS_DEBUGINFO_NAME-$SPUTOOLS_VERSION CRASHSPU_NAME=crash-spu-commands CRASHSPU=$CRASHSPU_NAME-$CRASHSPU_VERSION CRASHSPU_DEBUGINFO_NAME=crash-spu-commands-debuginfo CRASHSPU_DEBUGINFO=$CRASHSPU_DEBUGINFO_NAME-$CRASHSPU_VERSION #===================================== # Build source rpms into binary rpms #===================================== echo "=================================================" echo "`date` start" echo "=================================================" if [ "$ARCH" == "ppc" ] ; then if [ ! -e $USR_SRC_REDHAT_BUILD_DIR/PPC-F7 ] ; then mkdir $USR_SRC_REDHAT_BUILD_DIR/PPC-F7 fi fi # # If pputoolchain is selected for building, ppusysroot also gets built # if [ "$pputoolchain" = "1" ] ; then # Build and install ppu-sysroot before building ppu-toolchain if [ "$ARCH" == "i686" ] ; then echo "=================================================" echo "`date` build ppu sysroot for i686 only" echo "=================================================" pushd $USR_SRC_REDHAT_SPECS_DIR > /dev/null 2>&1 rpmbuild -ba ppu-sysroot.spec --target noarch rpmbuild -ba ppu-sysroot-rhel5.spec --target noarch PPU_SYSROOT_RESULTS="$USR_SRC_REDHAT_RPMS_DIR/noarch/$SCE_PPU_SYSROOT.noarch.rpm $USR_SRC_REDHAT_RPMS_DIR/noarch/$SCE_PPU_SYSROOT_64.noarch.rpm" popd > /dev/null 2>&1 #install ppu-sysroot CHECKINS=`rpm -q $SCE_PPU_SYSROOT`; if [ $? == 0 ] ; then echo "Removing $PPU_SYSROOT_RESULTS" if [ $UID != 0 ] ; then sudo rpm -ev $SCE_PPU_SYSROOT $SCE_PPU_SYSROOT_64 else rpm -ev $SCE_PPU_SYSROOT $SCE_PPU_SYSROOT_64 fi fi echo "Installing $PPU_SYSROOT_RESULTS" if [ $UID != 0 ] ; then sudo rpm -ivh $PPU_SYSROOT_RESULTS else rpm -ivh $PPU_SYSROOT_RESULTS fi fi if [ "$ARCH" == "ppc" ] || [ "$ARCH" == "i686" ] ; then echo "=================================================" echo "`date` build ppu toolchain for both i686 and ppc" echo "=================================================" pushd $USR_SRC_REDHAT_SPECS_DIR > /dev/null 2>&1 rpmbuild -ba ppu-binutils.spec --target $ARCH pushd $USR_SRC_REDHAT_SOURCES_DIR > /dev/null 2>&1 rm -f $SCE_PPU_TOOLCHAIN_BINUTILS_PATCHES popd > /dev/null 2>&1 #install ppu-binutils CHECKINS=`rpm -q $SCE_PPU_TOOLCHAIN_BINUTILS`; if [ $? == 0 ] ; then echo "Removing $USR_SRC_REDHAT_RPMS_DIR/$ARCH/$SCE_PPU_TOOLCHAIN_BINUTILS.$ARCH.rpm" if [ $UID != 0 ] ; then sudo rpm -ev $SCE_PPU_TOOLCHAIN_BINUTILS else rpm -ev $SCE_PPU_TOOLCHAIN_BINUTILS fi fi echo "Installing $USR_SRC_REDHAT_RPMS_DIR/$ARCH/$SCE_PPU_TOOLCHAIN_BINUTILS.$ARCH.rpm" if [ $UID != 0 ] ; then sudo rpm -ivh $USR_SRC_REDHAT_RPMS_DIR/$ARCH/$SCE_PPU_TOOLCHAIN_BINUTILS.$ARCH.rpm else rpm -ivh $USR_SRC_REDHAT_RPMS_DIR/$ARCH/$SCE_PPU_TOOLCHAIN_BINUTILS.$ARCH.rpm fi # Check if ada ppc packages is installed, if not, install cross-built packages on the x86 build system if [ "$ARCH" == "ppc" ] ; then CHECKINS=`rpm -q $SCE_PPU_TOOLCHAIN_ADA`; if [ $? != 0 ] ; then echo "Installing $SCE_PPU_TOOLCHAIN_ADA.$ARCH.rpm $SCE_PPU_TOOLCHAIN_GCC.$ARCH.rpm $SCE_PPU_TOOLCHAIN_CPP.$ARCH.rpm" sudo rpm -ivh $USR_SRC_REDHAT_RPMS_DIR/$ARCH/$SCE_PPU_TOOLCHAIN_ADA.$ARCH.rpm $USR_SRC_REDHAT_RPMS_DIR/$ARCH/$SCE_PPU_TOOLCHAIN_GCC.$ARCH.rpm $USR_SRC_REDHAT_RPMS_DIR/$ARCH/$SCE_PPU_TOOLCHAIN_CPP.$ARCH.rpm fi fi rpmbuild -ba ppu-gcc.spec --target $ARCH pushd $USR_SRC_REDHAT_SOURCES_DIR > /dev/null 2>&1 rm -f $SCE_PPU_TOOLCHAIN_GCC_PATCHES popd > /dev/null 2>&1 rpmbuild -ba ppu-gdb.spec --target $ARCH pushd $USR_SRC_REDHAT_SOURCES_DIR > /dev/null 2>&1 rm -f $SCE_PPU_TOOLCHAIN_GDB_PATCHES popd > /dev/null 2>&1 if [ "$ARCH" == "i686" ] ; then #install ppu-gcc & ppu-gdb CHECKINS=`rpm -q $SCE_PPU_TOOLCHAIN_GCC`; if [ $? == 0 ] ; then echo "Removing $USR_SRC_REDHAT_RPMS_DIR/$ARCH/$SCE_PPU_TOOLCHAIN_GCC.$ARCH.rpm" if [ $UID != 0 ] ; then sudo rpm -ev $SCE_PPU_TOOLCHAIN_GCC else rpm -ev $SCE_PPU_TOOLCHAIN_GCC fi fi echo "Installing $USR_SRC_REDHAT_RPMS_DIR/$ARCH/$SCE_PPU_TOOLCHAIN_GCC.$ARCH.rpm" if [ $UID != 0 ] ; then sudo rpm -ivh $USR_SRC_REDHAT_RPMS_DIR/$ARCH/$SCE_PPU_TOOLCHAIN_GCC.$ARCH.rpm else rpm -ivh $USR_SRC_REDHAT_RPMS_DIR/$ARCH/$SCE_PPU_TOOLCHAIN_GCC.$ARCH.rpm fi rpmbuild -ba ppu-gcc.spec --target ppc pushd $USR_SRC_REDHAT_SOURCES_DIR > /dev/null 2>&1 rm -f $SCE_PPU_TOOLCHAIN_GCC_PATCHES popd > /dev/null 2>&1 fi PPU_TOOLCHAIN_RESULTS="$USR_SRC_REDHAT_RPMS_DIR/$ARCH/$SCE_PPU_TOOLCHAIN_BINUTILS.$ARCH.rpm $USR_SRC_REDHAT_RPMS_DIR/$ARCH/$SCE_PPU_TOOLCHAIN_GDB.$ARCH.rpm" # copy into sysroot if [ "$ARCH" == "ppc" ] ; then cp $PPU_TOOLCHAIN_RESULTS $USR_SRC_REDHAT_BUILD_DIR/PPC-F7 if [ $? != 0 ] ; then echo "ERROR: Failed to copy ppu toolchain to PPC-F7 directory" exit 1 fi fi popd > /dev/null 2>&1 fi fi if [ "$sputoolchain" = "1" ] ; then if [ "$ARCH" == "i686" ] ; then echo "=================================================" echo "`date` build spu toolchain for both i686 and ppc" echo "=================================================" pushd $USR_SRC_REDHAT_SPECS_DIR > /dev/null 2>&1 echo "Installing old-drop spu-gcc and spu-binutils" echo "Adding /opt/cell/bin to PATH" OLD_PATH=$PATH # Keep old path variable to later restore its value export PATH="/opt/cell/bin:$PATH" echo "PATH = $PATH" echo "Removing old-drop spu-gcc and spu-binutils" rpm -ev spu-binutils-2.17.50-21 spu-gcc-4.1.1-41 echo "Removing /opt/cell/bin from PATH" export PATH="$OLD_PATH" echo "PATH = $PATH" rpmbuild -ba spu-binutils.spec --target $ARCH pushd $USR_SRC_REDHAT_SOURCES_DIR > /dev/null 2>&1 rm -f $SCE_SPU_TOOLCHAIN_BINUTILS_PATCHES popd > /dev/null 2>&1 #Remove and re-install spu-binutils and spu-newlib CHECKINS=`rpm -q $SCE_SPU_TOOLCHAIN_BINUTILS`; if [ $? == 0 ] ; then echo "Removing $USR_SRC_REDHAT_RPMS_DIR/$ARCH/$SCE_SPU_TOOLCHAIN_BINUTILS.$ARCH.rpm" if [ $UID != 0 ] ; then sudo rpm -ev $SCE_SPU_TOOLCHAIN_BINUTILS else rpm -ev $SCE_SPU_TOOLCHAIN_BINUTILS fi fi echo "Installing $USR_SRC_REDHAT_RPMS_DIR/$ARCH/$SCE_SPU_TOOLCHAIN_BINUTILS.$ARCH.rpm" if [ $UID != 0 ] ; then sudo rpm -ivh $USR_SRC_REDHAT_RPMS_DIR/$ARCH/$SCE_SPU_TOOLCHAIN_BINUTILS.$ARCH.rpm else rpm -ivh $USR_SRC_REDHAT_RPMS_DIR/$ARCH/$SCE_SPU_TOOLCHAIN_BINUTILS.$ARCH.rpm fi echo "Adding /opt/cell/sysroot/bin to PATH" OLD_PATH=$PATH # Keep old path variable to later restore its value export PATH="/opt/cell/sysroot/bin:$PATH" rpmbuild -ba spu-gcc.spec --target $ARCH pushd $USR_SRC_REDHAT_SOURCES_DIR > /dev/null 2>&1 rm -f $SCE_SPU_TOOLCHAIN_GCC_PATCHES popd > /dev/null 2>&1 #install spu-gcc, spu-newlib requires spu-gcc installed CHECKINS=`rpm -q $SCE_SPU_TOOLCHAIN_GCC`; if [ $? == 0 ] ; then echo "Removing $USR_SRC_REDHAT_RPMS_DIR/$ARCH/$SCE_SPU_TOOLCHAIN_GCC.$ARCH.rpm" if [ $UID != 0 ] ; then sudo rpm -ev $SCE_SPU_TOOLCHAIN_GCC else rpm -ev $SCE_SPU_TOOLCHAIN_GCC fi fi echo "Installing $USR_SRC_REDHAT_RPMS_DIR/$ARCH/$SCE_SPU_TOOLCHAIN_GCC.$ARCH.rpm" if [ $UID != 0 ] ; then sudo rpm -ivh $USR_SRC_REDHAT_RPMS_DIR/$ARCH/$SCE_SPU_TOOLCHAIN_GCC.$ARCH.rpm else rpm -ivh $USR_SRC_REDHAT_RPMS_DIR/$ARCH/$SCE_SPU_TOOLCHAIN_GCC.$ARCH.rpm fi rpmbuild -ba spu-newlib.spec --target $ARCH pushd $USR_SRC_REDHAT_SOURCES_DIR > /dev/null 2>&1 rm -f $SCE_SPU_TOOLCHAIN_NEWLIB_PATCHES popd > /dev/null 2>&1 rpmbuild -ba spu-gdb.spec --target $ARCH pushd $USR_SRC_REDHAT_SOURCES_DIR > /dev/null 2>&1 rm -f $SCE_SPU_TOOLCHAIN_GDB_PATCHES popd > /dev/null 2>&1 echo "Removing /opt/cell/bin from PATH" export PATH="$OLD_PATH" fi if [ "$ARCH" == "ppc" ] ; then echo "=================================================" echo "`date` build spu toolchain for both i686 and ppc" echo "=================================================" pushd $USR_SRC_REDHAT_SPECS_DIR > /dev/null 2>&1 rpmbuild -ba spu-binutils.spec --target $ARCH pushd $USR_SRC_REDHAT_SOURCES_DIR > /dev/null 2>&1 rm -f $SCE_SPU_TOOLCHAIN_BINUTILS_PATCHES popd > /dev/null 2>&1 #install spu-gcc, spu-newlib requires spu-gcc installed CHECKINS=`rpm -q $SCE_SPU_TOOLCHAIN_GCC`; if [ $? == 0 ] ; then echo "Removing $USR_SRC_REDHAT_RPMS_DIR/$ARCH/$SCE_SPU_TOOLCHAIN_GCC.$ARCH.rpm" if [ $UID != 0 ] ; then sudo rpm -ev $SCE_SPU_TOOLCHAIN_GCC else rpm -ev $SCE_SPU_TOOLCHAIN_GCC fi fi #install spu-binutils CHECKINS=`rpm -q $SCE_SPU_TOOLCHAIN_BINUTILS`; if [ $? == 0 ] ; then echo "Removing $USR_SRC_REDHAT_RPMS_DIR/$ARCH/$SCE_SPU_TOOLCHAIN_BINUTILS.$ARCH.rpm" if [ $UID != 0 ] ; then sudo rpm -ev $SCE_SPU_TOOLCHAIN_BINUTILS else rpm -ev $SCE_SPU_TOOLCHAIN_BINUTILS fi fi echo "Installing $USR_SRC_REDHAT_RPMS_DIR/$ARCH/$SCE_SPU_TOOLCHAIN_BINUTILS.$ARCH.rpm" if [ $UID != 0 ] ; then sudo rpm -ivh $USR_SRC_REDHAT_RPMS_DIR/$ARCH/$SCE_SPU_TOOLCHAIN_BINUTILS.$ARCH.rpm else rpm -ivh $USR_SRC_REDHAT_RPMS_DIR/$ARCH/$SCE_SPU_TOOLCHAIN_BINUTILS.$ARCH.rpm fi rpmbuild -ba spu-gcc.spec --target $ARCH pushd $USR_SRC_REDHAT_SOURCES_DIR > /dev/null 2>&1 rm -f $SCE_SPU_TOOLCHAIN_GCC_PATCHES popd > /dev/null 2>&1 echo "Installing $USR_SRC_REDHAT_RPMS_DIR/$ARCH/$SCE_SPU_TOOLCHAIN_GCC.$ARCH.rpm" if [ $UID != 0 ] ; then sudo rpm -ivh $USR_SRC_REDHAT_RPMS_DIR/$ARCH/$SCE_SPU_TOOLCHAIN_GCC.$ARCH.rpm else rpm -ivh $USR_SRC_REDHAT_RPMS_DIR/$ARCH/$SCE_SPU_TOOLCHAIN_GCC.$ARCH.rpm fi rpmbuild -ba spu-newlib.spec --target $ARCH pushd $USR_SRC_REDHAT_SOURCES_DIR > /dev/null 2>&1 rm -f $SCE_SPU_TOOLCHAIN_NEWLIB_PATCHES popd > /dev/null 2>&1 rpmbuild -ba spu-gdb.spec --target $ARCH pushd $USR_SRC_REDHAT_SOURCES_DIR > /dev/null 2>&1 rm -f $SCE_SPU_TOOLCHAIN_GDB_PATCHES popd > /dev/null 2>&1 SPU_TOOLCHAIN_RESULTS="$USR_SRC_REDHAT_RPMS_DIR/$ARCH/$SCE_SPU_TOOLCHAIN_BINUTILS.$ARCH.rpm $USR_SRC_REDHAT_RPMS_DIR/$ARCH/$SCE_SPU_TOOLCHAIN_NEWLIB.$ARCH.rpm $USR_SRC_REDHAT_RPMS_DIR/$ARCH/$SCE_SPU_TOOLCHAIN_GDB.$ARCH.rpm" # copy into sysroot if [ "$ARCH" == "ppc" ] ; then cp $SPU_TOOLCHAIN_RESULTS $USR_SRC_REDHAT_BUILD_DIR/PPC-F7 if [ $? != 0 ] ; then echo "ERROR: Failed to copy spu toolchain to PPC-F7 directory" exit 1 fi popd > /dev/null 2>&1 fi fi fi if [ "$libspe" = "1" ] ; then if [ "$ARCH" == "ppc" ] ; then echo "=================================================" echo "`date` build elfspe, libspe, and libspe-devel for both ppc and ppc64" echo "=================================================" #rpm -ivh $CBE_LIBSPE.src.rpm pushd $USR_SRC_REDHAT_SPECS_DIR > /dev/null 2>&1 rpmbuild -ba libspe.spec --target ppc rpmbuild -bb libspe.spec --target ppc64 LIBSPE_RESULTS1="$USR_SRC_REDHAT_RPMS_DIR/ppc/$CBE_LIBSPE.ppc.rpm $USR_SRC_REDHAT_RPMS_DIR/ppc/$CBE_LIBSPE_DEBUGINFO.ppc.rpm" LIBSPE_RESULTS2="$USR_SRC_REDHAT_RPMS_DIR/ppc64/$CBE_LIBSPE.ppc64.rpm $USR_SRC_REDHAT_RPMS_DIR/ppc64/$CBE_LIBSPE_DEBUGINFO.ppc64.rpm" # copy into sysroot cp $LIBSPE_RESULTS1 $USR_SRC_REDHAT_BUILD_DIR/PPC-F7 cp $LIBSPE_RESULTS2 $USR_SRC_REDHAT_BUILD_DIR/PPC-F7 if [ $? != 0 ] ; then echo "ERROR: Failed to copy libspe to PPC-F7 directory" exit 1 fi popd > /dev/null 2>&1 fi fi if [ "$libspe2" = "1" ] ; then if [ "$ARCH" == "ppc" ] ; then echo "=================================================" echo "`date` build elfspe2, libspe2, and libspe2-devel for both ppc and ppc64" echo "=================================================" #rpm -ivh $CBE_LIBSPE2.src.rpm pushd $USR_SRC_REDHAT_SPECS_DIR > /dev/null 2>&1 rpmbuild -ba libspe2.spec --target ppc rpmbuild -bb libspe2.spec --target ppc64 rpmbuild --target=noarch -bb libspe2-cross.spec LIBSPE2_RESULTS1="$USR_SRC_REDHAT_RPMS_DIR/ppc/$CBE_LIBSPE2.ppc.rpm $USR_SRC_REDHAT_RPMS_DIR/ppc/$CBE_LIBSPE2_DEBUGINFO.ppc.rpm $USR_SRC_REDHAT_RPMS_DIR/ppc/$CBE_ELFSPE2.ppc.rpm" LIBSPE2_RESULTS2="$USR_SRC_REDHAT_RPMS_DIR/ppc64/$CBE_LIBSPE2.ppc64.rpm $USR_SRC_REDHAT_RPMS_DIR/ppc64/$CBE_LIBSPE2_DEBUGINFO.ppc64.rpm" # copy into sysroot cp $LIBSPE2_RESULTS1 $USR_SRC_REDHAT_BUILD_DIR/PPC-F7 cp $LIBSPE2_RESULTS2 $USR_SRC_REDHAT_BUILD_DIR/PPC-F7 if [ $? != 0 ] ; then echo "ERROR: Failed to copy libspe to PPC-F7 directory" exit 1 fi popd > /dev/null 2>&1 fi fi if [ "$oprofile" = "1" ] ; then if [ "$ARCH" == "ppc" ] ; then echo "=================================================" echo "`date` build oprofile for ppc" echo "=================================================" pushd $USR_SRC_REDHAT_SPECS_DIR > /dev/null 2>&1 rpmbuild -ba oprofile.spec --target ppc OPROFILE_RESULTS="$USR_SRC_REDHAT_RPMS_DIR/ppc/$OPROFILE.ppc.rpm $USR_SRC_REDHAT_RPMS_DIR/ppc/$OPROFILE_DEBUGINFO.ppc.rpm" # copy into sysroot cp $OPROFILE_RESULTS $USR_SRC_REDHAT_BUILD_DIR/PPC-F7 if [ $? != 0 ] ; then echo "ERROR: Failed to copy oprofile to PPC-F7 directory" exit 1 fi popd > /dev/null 2>&1 fi fi if [ "$sputools" = "1" ] ; then if [ "$ARCH" == "ppc" ] ; then echo "=================================================" echo "`date` build sputools for ppc" echo "=================================================" pushd $USR_SRC_REDHAT_SPECS_DIR > /dev/null 2>&1 rpmbuild -ba spu-tools.spec --target ppc SPUTOOLS_RESULTS="$USR_SRC_REDHAT_RPMS_DIR/ppc/$SPUTOOLS.ppc.rpm $USR_SRC_REDHAT_RPMS_DIR/ppc/$SPUTOOLS_DEBUGINFO.ppc.rpm" # copy into sysroot cp $SPUTOOLS_RESULTS $USR_SRC_REDHAT_BUILD_DIR/PPC-F7 if [ $? != 0 ] ; then echo "ERROR: Failed to copy spu-tools to PPC-F7 directory" exit 1 fi popd > /dev/null 2>&1 fi fi if [ "$crashspu" = "1" ] ; then if [ "$ARCH" == "ppc" ] ; then echo "=================================================" echo "`date` build crashspu for ppc" echo "=================================================" pushd $USR_SRC_REDHAT_SPECS_DIR > /dev/null 2>&1 rpmbuild -ba crash-spu-commands.spec --target ppc CRASHSPU_RESULTS="$USR_SRC_REDHAT_RPMS_DIR/ppc/$CRASHSPU.ppc.rpm $USR_SRC_REDHAT_RPMS_DIR/ppc/$CRASHSPU_DEBUGINFO.ppc.rpm" # copy into sysroot #cp $CRASHSPU_RESULTS $USR_SRC_REDHAT_BUILD_DIR/PPC-F7 if [ $? != 0 ] ; then echo "ERROR: Failed to copy spu-tools to PPC-F7 directory" exit 1 fi popd > /dev/null 2>&1 fi fi if [ "$netpbm" = "1" ] ; then if [ "$ARCH" == "ppc" ] ; then echo "=================================================" echo "`date` build netpbm for ppc" echo "=================================================" pushd $USR_SRC_REDHAT_SPECS_DIR > /dev/null 2>&1 rpmbuild -ba netpbm-cross.spec --target ppc NETPBM_RESULTS="$USR_SRC_REDHAT_RPMS_DIR/ppc/$NETPBM.ppc.rpm" # copy into sysroot cp $NETPBM_RESULTS $USR_SRC_REDHAT_BUILD_DIR/PPC-F7 if [ $? != 0 ] ; then echo "ERROR: Failed to copy netpbm to PPC-F7 directory" exit 1 fi popd > /dev/null 2>&1 fi fi if [ "$numactl" = "1" ] ; then if [ "$ARCH" == "i686" ] ; then echo "=================================================" echo "`date` build numactl for i686" echo "=================================================" pushd $USR_SRC_REDHAT_SPECS_DIR > /dev/null 2>&1 rpmbuild -ba numactl.spec --target i686 popd > /dev/null 2>&1 fi if [ "$ARCH" == "x86_64" ] ; then echo "=================================================" echo "`date` build numactl for x86_64" echo "=================================================" pushd $USR_SRC_REDHAT_SPECS_DIR > /dev/null 2>&1 rpmbuild -ba numactl.spec --target x86_64 popd > /dev/null 2>&1 fi if [ "$ARCH" == "ppc" ] ; then echo "=================================================" echo "`date` build numactl for ppc" echo "=================================================" pushd $USR_SRC_REDHAT_SPECS_DIR > /dev/null 2>&1 rpmbuild -bb numactl.spec --target ppc64 rpmbuild -ba numactl.spec --target ppc rpmbuild -bb numactl-cross.spec --target=noarch NUMACTL_RESULTS="$USR_SRC_REDHAT_RPMS_DIR/ppc/$NUMACTL.ppc.rpm" # copy into sysroot cp $NUMACTL_RESULTS $USR_SRC_REDHAT_BUILD_DIR/PPC-F7 if [ $? != 0 ] ; then echo "ERROR: Failed to copy netpbm to PPC-F7 directory" exit 1 fi popd > /dev/null 2>&1 fi fi if [ "$sysroot" = "1" ] ; then if [ "$ARCH" == "ppc" ] ; then echo "=================================================" echo "`date` build sysroot" echo "=================================================" # build sysroot disk which was copied into PPC-F7 previously # Note: this script assumes that any existing file in PPC-F7 are retained #rpm -ivh $SYSROOT.src.rpm pushd $USR_SRC_REDHAT_SPECS_DIR > /dev/null 2>&1 rpmbuild -ba sysroot_image.noarch.spec SYSROOT_RESULTS="$USR_SRC_REDHAT_RPMS_DIR/noarch/$SYSROOT.noarch.rpm" popd > /dev/null 2>&1 fi fi echo "=================================================" echo "`date` end" echo "================================================="