LogoopenSUSE Build Service > Projects
Sign Up | Log In

View File change_spec of Package libffi46 (Project home:ftake:branches:devel:gcc)

#!/bin/bash

do_icecream=0
do_cross_static=0
do_cross_shared=0
do_optional_compiler=0
rm -f libgcj*.spec libgcj*.changes libffi*.spec libffi*.changes gcc*-testresults.spec gcc*-testresults.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

	echo -n > $outfile
	if test "$do_optional_compiler" = "1"; then
	    echo '%define run_tests 1' >> $outfile
	    echo '%define build_optional_compiler 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
	if test "$do_optional_compiler" = "0"; then
	echo '%define building_libjava 1' > libgcj$base_ver.spec
	sed -e '/^# LIBJAVA-DELETE-BEGIN/,/^# LIBJAVA-DELETE-END/d;s/-n libgcj@base_ver@$//g;s/^Name:[[:space:]]*gcc/Name: libgcj/g' \
	    gcc.spec.in \
	| sed -e 's%@base_ver@%'$base_ver'%g' \
	| 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
}
}' >> libgcj$base_ver.spec
	echo '%define building_testsuite 1' > gcc$base_ver-testresults.spec
	echo '%define run_tests 1' >> gcc$base_ver-testresults.spec
	sed -e '/^# GCC-TESTSUITE-DELETE-BEGIN/,/^# GCC-TESTSUITE-DELETE-END/d;s/-n gcc@base_ver@-testresults$//g;s/^Name:[[:space:]]*gcc@base_ver@/Name: gcc@base_ver@-testresults/g' \
	    gcc.spec.in \
	| sed -e 's%@base_ver@%'$base_ver'%g' \
>> gcc$base_ver-testresults.spec
	echo '%define building_libffi 1' > libffi$base_ver.spec
	sed -e '/^# LIBFFI-DELETE-BEGIN/,/^# LIBFFI-DELETE-END/d;s/^Name:[[:space:]]*gcc/Name: libffi/g' \
	    gcc.spec.in \
	| sed -e 's%@base_ver@%'$base_ver'%g' \
	| 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
}
}' \
	| sed -e '/^%package -n libffi'$base_ver'$/d' \
	| sed -e 's/-n libffi'$base_ver'$//g' \
>> libffi$base_ver.spec

  test -f gcc$base_ver.changes \
    && ( ln -f gcc$base_ver.changes libgcj$base_ver.changes; \
	 ln -f gcc$base_ver.changes libffi$base_ver.changes; \
	 ln -f gcc$base_ver.changes gcc$base_ver-testresults.changes; )
	fi


# disabled: mips, sparc, alpha, arm
if test "$do_icecream" = 1 ; then
  for arch in hppa i386 x86_64 s390 s390x ppc ppc64 ia64; do
    { 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#" > cross-$arch-gcc-icecream-backend.spec
    test -f gcc$base_ver.changes && ln -f gcc$base_ver.changes cross-$arch-gcc-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
exit 0