#!/bin/bash do_icecream=1 do_cross_static=0 do_cross_shared=1 do_optional_compiler_languages=0 rm -f libgcj*.spec libgcj*.changes libffi*.spec libffi*.changes gcc*.spec cross*.spec cross*.changes # Default is to generate the normal gcc package # unless a parameter is given. In case that it is '-*', # that parameter will be used as suffix for the package name # and as suffix for the install path (/opt/gccSUFFIX) # In case that it is '[0-9]*', that parameter will be used # as a suffix for a versioned package name. if [ $# -lt 1 ]; then outfile=gcc.spec else case $1 in [0-9]*) base_ver=$1 outfile=gcc$1.spec ;; *) exit 1 ;; esac fi : > $outfile if test "$do_optional_compiler_languages" = "1"; then echo '%define run_tests 1' >> $outfile echo '%define build_optional_compiler_languages 1' >> $outfile fi sed -e 's%@base_ver@%'$base_ver'%g' \ gcc.spec.in \ | sed -n -e '{ /^# PACKAGE-BEGIN/h /^# PACKAGE-BEGIN/,/^# PACKAGE-END/H /^# PACKAGE-BEGIN/,/^# PACKAGE-END/!p /^# PACKAGE-END/{g s/@variant@//g p g s/@variant@/-32bit/g p g s/@variant@/-64bit/g p } }' >> $outfile # disabled: mips, sparc, alpha if test "$do_icecream" = 1 ; then for arch in x86_64 armv7hl armv7l; do exclarch=`echo $arch | sed -e 's/ppc$/ppc64/'` { sed -n -e '1,/COMMON-BEGIN/p' cross-icecream.spec.in sed -n -e '/COMMON-BEGIN/,/COMMON-END/p' $outfile sed -n -e '/COMMON-END/,$p' cross-icecream.spec.in; } | sed -e "s#@cross_arch@#$arch#" \ -e "s#@base_ver@#$base_ver#" \ -e "s/^\(ExclusiveArch.*\) $exclarch /\1 /" \ > cross-$arch-gcc$base_ver-icecream-backend.spec test -f gcc$base_ver.changes && ln -f gcc$base_ver.changes cross-$arch-gcc$base_ver-icecream-backend.changes done fi export outfile if test "$do_cross_shared" = 1 ; then # shared cross for arch in ; do base_ver=$base_ver cross_arch=$arch sh cross.spec.in > cross-$arch-gcc$base_ver.spec test -f gcc$base_ver.changes && ln -f gcc$base_ver.changes cross-$arch-gcc$base_ver.changes done fi if test "$do_cross_static" = 1 ; then # static crosses for arch in ; do echo '%define build_static 1' > cross-$arch-gcc$base_ver-static.spec base_ver=$base_ver cross_arch=$arch name_suffix="-static" sh cross.spec.in >> cross-$arch-gcc$base_ver-static.spec test -f gcc$base_ver.changes && ln -f gcc$base_ver.changes cross-$arch-gcc$base_ver-static.changes done # # avr is static but wants the non-static versioned name # echo '%define build_static 1' > cross-avr-gcc$base_ver.spec # base_ver=$base_ver cross_arch=avr sh cross.spec.in >> cross-avr-gcc$base_ver.spec # test -f gcc$base_ver.changes && ln -f gcc$base_ver.changes cross-avr-gcc$base_ver.changes fi for f in *.spec; do sed -i -e '/^# .*-\(BEGIN\|END\)$/d' $f done exit 0