From 4aba88a119b6844e725b0fce452b1498f8fc3c87 Mon Sep 17 00:00:00 2001 From: Ralf Corsepius Date: Mon, 12 Aug 2002 10:11:44 +0000 Subject: 2002-08-12 Ralf Corsepius * mkgcc3newlibspec.in: Remove * gcc3newlib/mkspec.in: New. * configure.ac: Reflect changes above. * gcc3newlib/gccnewlib.add: Add build_XXX defines. Add preliminary gnat support. * gcc3newlib/base-g77.add: Add build_g77. * gcc3newlib/base-gcj.add: Add build_gcj. * gcc3newlib/base-gnat.add: New. * gcc3newlib/target-c++.add: Add build_cxx. * gcc3newlib/target-g77.add: Add build_g77. * gcc3newlib/target-gcj.add: Add build_gcj. * gcc3newlib/target-objc.add: Add build_objc. * gcc3newlib/target-gnat.add: New. * gcc3newlib/Makefile.am: Use ./mkspec. Use unified spec. --- scripts/ChangeLog | 17 +++++++ scripts/configure.ac | 2 +- scripts/gcc3newlib/Makefile.am | 67 +++++++++++++++------------- scripts/gcc3newlib/base-g77.add | 2 + scripts/gcc3newlib/base-gcj.add | 2 + scripts/gcc3newlib/base-gnat.add | 18 ++++++++ scripts/gcc3newlib/gccnewlib.add | 51 ++++++++++++++++++++- scripts/gcc3newlib/mkspec.in | 79 +++++++++++++++++++++++++++++++++ scripts/gcc3newlib/target-c++.add | 2 + scripts/gcc3newlib/target-g77.add | 2 + scripts/gcc3newlib/target-gcj.add | 2 + scripts/gcc3newlib/target-gnat.add | 22 ++++++++++ scripts/gcc3newlib/target-objc.add | 2 + scripts/mkgcc3newlibspec.in | 90 -------------------------------------- 14 files changed, 235 insertions(+), 123 deletions(-) create mode 100644 scripts/gcc3newlib/base-gnat.add create mode 100644 scripts/gcc3newlib/mkspec.in create mode 100644 scripts/gcc3newlib/target-gnat.add delete mode 100644 scripts/mkgcc3newlibspec.in (limited to 'scripts') diff --git a/scripts/ChangeLog b/scripts/ChangeLog index 72cf629a1d..5d4e7a4592 100644 --- a/scripts/ChangeLog +++ b/scripts/ChangeLog @@ -1,3 +1,20 @@ +2002-08-12 Ralf Corsepius + + * mkgcc3newlibspec.in: Remove + * gcc3newlib/mkspec.in: New. + * configure.ac: Reflect changes above. + * gcc3newlib/gccnewlib.add: Add build_XXX defines. + Add preliminary gnat support. + * gcc3newlib/base-g77.add: Add build_g77. + * gcc3newlib/base-gcj.add: Add build_gcj. + * gcc3newlib/base-gnat.add: New. + * gcc3newlib/target-c++.add: Add build_cxx. + * gcc3newlib/target-g77.add: Add build_g77. + * gcc3newlib/target-gcj.add: Add build_gcj. + * gcc3newlib/target-objc.add: Add build_objc. + * gcc3newlib/target-gnat.add: New. + * gcc3newlib/Makefile.am: Use ./mkspec. Use unified spec. + 2002-08-09 Ralf Corsepius * setup.def: Increment release for gcc3newlib. diff --git a/scripts/configure.ac b/scripts/configure.ac index ef33954620..4e46dd5f3a 100644 --- a/scripts/configure.ac +++ b/scripts/configure.ac @@ -93,8 +93,8 @@ AC_CONFIG_FILES([buildall],[chmod +x buildall]) AC_CONFIG_FILES([mkgdbspec],[chmod +x mkgdbspec]) AC_CONFIG_FILES([mkbinutilspec],[chmod +x mkbinutilspec]) AC_CONFIG_FILES([mkgccnewlibspec],[chmod +x mkgccnewlibspec]) -AC_CONFIG_FILES([mkgcc3newlibspec],[chmod +x mkgcc3newlibspec]) AC_CONFIG_FILES([mkbspspec],[chmod +x mkbspspec]) +AC_CONFIG_FILES([gcc3newlib/mkspec],[chmod +x gcc3newlib/mkspec]) AC_CONFIG_FILES([cpukit/mkspec],[chmod +x cpukit/mkspec]) AC_CONFIG_COMMANDS([default],[[chmod 755 buildall diff --git a/scripts/gcc3newlib/Makefile.am b/scripts/gcc3newlib/Makefile.am index ee77454223..6eee24319e 100644 --- a/scripts/gcc3newlib/Makefile.am +++ b/scripts/gcc3newlib/Makefile.am @@ -2,18 +2,20 @@ ## $Id$ ## -MKGCCNEWLIBSPEC = $(SHELL) $(top_builddir)/mkgcc3newlibspec +MKSPEC = $(SHELL) ./mkspec SUBPACKAGES = gccnewlib.add \ base-gcc.add target-gcc.add \ base-g77.add target-g77.add \ base-gcj.add target-gcj.add \ target-objc.add \ - target-c++.add + target-c++.add \ + base-gnat.add target-gnat.add + +noinst_DATA = gccnewlib.spec.in gccnewlib_c_only.spec.in gccnewlib.spec.in: $(SUBPACKAGES) - cat $^ \ - | sed -e 's%@GCCLANGS@%%g' > $@ + cat $^ > $@ CLEANFILES = gccnewlib.spec.in gccnewlib_c_only.spec.in: gccnewlib.add base-gcc.add target-gcc.add \ @@ -29,55 +31,60 @@ MKGCCNEWLIBSPEC_DEPS = $(top_builddir)/mkgcc3newlibspec gccnewlib.spec.in \ MKGCCNEWLIB_C_ONLY_SPEC_DEPS = $(top_builddir)/mkgcc3newlibspec \ gccnewlib_c_only.spec.in $(top_builddir)/setup.cache +RPM_SPECS_DATA = + arm-rtems-$(GCC3NEWLIBVERS).spec: $(MKGCCNEWLIBSPEC_DEPS) - $(MKGCCNEWLIBSPEC) $(C_ONLY_ARG) -cfg $(top_builddir)/setup.cache -o . arm-rtems + $(MKSPEC) -cfg $(top_builddir)/setup.cache arm-rtems > $@ +RPM_SPECS_DATA += arm-rtems-$(GCC3NEWLIBVERS).spec c4x-rtems-$(GCC3NEWLIBVERS).spec: $(MKGCCNEWLIB_C_ONLY_SPEC_DEPS) - $(MKGCCNEWLIBSPEC) $(C_ONLY_ARG) -cfg $(top_builddir)/setup.cache -o . c4x-rtems + $(MKSPEC) $(C_ONLY_ARG) -cfg $(top_builddir)/setup.cache c4x-rtems > $@ +RPM_SPECS_DATA += c4x-rtems-$(GCC3NEWLIBVERS).spec -h8300-rtems-$(GCC3NEWLIBVERS).spec: $(MKGCCNEWLIB_C_ONLY_SPEC_DEPS) - $(MKGCCNEWLIBSPEC) $(C_ONLY_ARG) -cfg $(top_builddir)/setup.cache -o . h8300-rtems +h8300-rtems-$(GCC3NEWLIBVERS).spec: $(MKGCCNEWLIBSPEC_DEPS) + $(MKSPEC) -cfg $(top_builddir)/setup.cache h8300-rtems > $@ +RPM_SPECS_DATA += h8300-rtems-$(GCC3NEWLIBVERS).spec hppa1.1-rtems-$(GCC3NEWLIBVERS).spec: $(MKGCCNEWLIBSPEC_DEPS) - $(MKGCCNEWLIBSPEC) $(C_ONLY_ARG) -cfg $(top_builddir)/setup.cache -o . hppa1.1-rtems + $(MKSPEC) -cfg $(top_builddir)/setup.cache hppa1.1-rtems > $@ +RPM_SPECS_DATA += hppa1.1-rtems-$(GCC3NEWLIBVERS).spec i386-rtems-$(GCC3NEWLIBVERS).spec: $(MKGCCNEWLIBSPEC_DEPS) - $(MKGCCNEWLIBSPEC) $(C_ONLY_ARG) -cfg $(top_builddir)/setup.cache -o . i386-rtems + $(MKSPEC) -cfg $(top_builddir)/setup.cache i386-rtems > $@ +RPM_SPECS_DATA += i386-rtems-$(GCC3NEWLIBVERS).spec -i960-rtems-$(GCC3NEWLIBVERS).spec: $(MKGCCNEWLIB_C_ONLY_SPEC_DEPS) - $(MKGCCNEWLIBSPEC) $(C_ONLY_ARG) -cfg $(top_builddir)/setup.cache -o . i960-rtems +i960-rtems-$(GCC3NEWLIBVERS).spec: $(MKGCCNEWLIBSPEC_DEPS) + $(MKSPEC) -cfg $(top_builddir)/setup.cache i960-rtems > $@ +RPM_SPECS_DATA += i960-rtems-$(GCC3NEWLIBVERS).spec m68k-rtems-$(GCC3NEWLIBVERS).spec: $(MKGCCNEWLIBSPEC_DEPS) - $(MKGCCNEWLIBSPEC) $(C_ONLY_ARG) -cfg $(top_builddir)/setup.cache -o . m68k-rtems + $(MKSPEC) -cfg $(top_builddir)/setup.cache m68k-rtems > $@ +RPM_SPECS_DATA += m68k-rtems-$(GCC3NEWLIBVERS).spec mips64orion-rtems-$(GCC3NEWLIBVERS).spec: $(MKGCCNEWLIBSPEC_DEPS) - $(MKGCCNEWLIBSPEC) $(C_ONLY_ARG) -cfg $(top_builddir)/setup.cache -o . mips64orion-rtems + $(MKSPEC) -cfg $(top_builddir)/setup.cache mips64orion-rtems > $@ +RPM_SPECS_DATA += mips64orion-rtems-$(GCC3NEWLIBVERS).spec mips-rtems-$(GCC3NEWLIBVERS).spec: $(MKGCCNEWLIBSPEC_DEPS) - $(MKGCCNEWLIBSPEC) $(C_ONLY_ARG) -cfg $(top_builddir)/setup.cache -o . mips-rtems + $(MKSPEC) -cfg $(top_builddir)/setup.cache mips-rtems > $@ +RPM_SPECS_DATA += mips-rtems-$(GCC3NEWLIBVERS).spec powerpc-rtems-$(GCC3NEWLIBVERS).spec: $(MKGCCNEWLIBSPEC_DEPS) - $(MKGCCNEWLIBSPEC) $(C_ONLY_ARG) -cfg $(top_builddir)/setup.cache -o . powerpc-rtems + $(MKSPEC) -cfg $(top_builddir)/setup.cache powerpc-rtems > $@ +RPM_SPECS_DATA += powerpc-rtems-$(GCC3NEWLIBVERS).spec sh-rtems-$(GCC3NEWLIBVERS).spec: $(MKGCCNEWLIBSPEC_DEPS) - $(MKGCCNEWLIBSPEC) $(C_ONLY_ARG) -cfg $(top_builddir)/setup.cache -o . sh-rtems + $(MKSPEC) -cfg $(top_builddir)/setup.cache sh-rtems > $@ +RPM_SPECS_DATA += sh-rtems-$(GCC3NEWLIBVERS).spec sh-rtemself-$(GCC3NEWLIBVERS).spec: $(MKGCCNEWLIBSPEC_DEPS) - $(MKGCCNEWLIBSPEC) $(C_ONLY_ARG) -cfg $(top_builddir)/setup.cache -o . sh-rtemself + $(MKSPEC) -cfg $(top_builddir)/setup.cache sh-rtemself > $@ +RPM_SPECS_DATA += sh-rtemself-$(GCC3NEWLIBVERS).spec sparc-rtems-$(GCC3NEWLIBVERS).spec: $(MKGCCNEWLIBSPEC_DEPS) - $(MKGCCNEWLIBSPEC) $(C_ONLY_ARG) -cfg $(top_builddir)/setup.cache -o . sparc-rtems - -RPM_SPECS_DATA = \ - arm-rtems-$(GCC3NEWLIBVERS).spec \ - c4x-rtems-$(GCC3NEWLIBVERS).spec \ - h8300-rtems-$(GCC3NEWLIBVERS).spec \ - hppa1.1-rtems-$(GCC3NEWLIBVERS).spec \ - i386-rtems-$(GCC3NEWLIBVERS).spec i960-rtems-$(GCC3NEWLIBVERS).spec \ - m68k-rtems-$(GCC3NEWLIBVERS).spec \ - mips-rtems-$(GCC3NEWLIBVERS).spec mips64orion-rtems-$(GCC3NEWLIBVERS).spec \ - powerpc-rtems-$(GCC3NEWLIBVERS).spec sh-rtems-$(GCC3NEWLIBVERS).spec \ - sh-rtemself-$(GCC3NEWLIBVERS).spec sparc-rtems-$(GCC3NEWLIBVERS).spec + $(MKSPEC) -cfg $(top_builddir)/setup.cache sparc-rtems > $@ +RPM_SPECS_DATA += sparc-rtems-$(GCC3NEWLIBVERS).spec + CLEANFILES += $(RPM_SPECS_DATA) EXTRA_DIST = $(SUBPACKAGES) diff --git a/scripts/gcc3newlib/base-g77.add b/scripts/gcc3newlib/base-g77.add index 96f7d28efd..b1e2ba9f1f 100644 --- a/scripts/gcc3newlib/base-g77.add +++ b/scripts/gcc3newlib/base-g77.add @@ -1,3 +1,4 @@ +%if %build_g77 # ============================================================== # rtems-base-g77 # ============================================================== @@ -40,3 +41,4 @@ This is the files for gcc/g77 that are shared by all targets. done fi +%endif diff --git a/scripts/gcc3newlib/base-gcj.add b/scripts/gcc3newlib/base-gcj.add index b3ff2a2608..5926be30e9 100644 --- a/scripts/gcc3newlib/base-gcj.add +++ b/scripts/gcc3newlib/base-gcj.add @@ -1,3 +1,4 @@ +%if %build_gcj # ============================================================== # rtems-base-gcj # ============================================================== @@ -18,3 +19,4 @@ This is the files for gcc/java (gcj) that are shared by all targets. %{_prefix}/bin/jv-scan@exe_ext@ %{_prefix}/bin/gcjh@exe_ext@ +%endif diff --git a/scripts/gcc3newlib/base-gnat.add b/scripts/gcc3newlib/base-gnat.add new file mode 100644 index 0000000000..0996f3034c --- /dev/null +++ b/scripts/gcc3newlib/base-gnat.add @@ -0,0 +1,18 @@ +%if %build_gnat +# ============================================================== +# base-gnat +# ============================================================== +%package -n base-gnat +Provides: base-gnat +Summary: gcc/gnat tools +Group: rtems + +%description -n base-gnat +RTEMS is an open source operating system for embedded systems. + +This is the gcc/gnat tools for the gcc/gnat compiler + +%files -n base-gnat +%dir %{_prefix}/bin +%{_prefix}/bin/gnat* +%endif diff --git a/scripts/gcc3newlib/gccnewlib.add b/scripts/gcc3newlib/gccnewlib.add index 36eceaf02d..23e7790610 100644 --- a/scripts/gcc3newlib/gccnewlib.add +++ b/scripts/gcc3newlib/gccnewlib.add @@ -43,6 +43,26 @@ Buildroot: %{_tmppath}/%{name} NoSource: 0 NoSource: 1 +%define build_cxx 1 +%define build_g77 0 +%define build_objc 0 +%define build_gcj 0 +%define build_gnat 0 + +%if "@target_alias@" == "c4x-rtems" +%define build_gnat 0 +%define build_cxx 0 +%elseif "@target_alias@" == "i386-rtems" +%define build_gnat 1 +%elseif "@target_alias@" == "i960-rtems" +%define build_gnat 0 +%define build_cxx 0 +%elseif "@target_alias@" == "powerpc-rtems" +%define build_gnat 1 +%elseif "@target_alias@" == "sparc-rtems" +%define build_gnat 1 +%endif + %description RTEMS is an open source operating system for embedded systems. @@ -82,12 +102,38 @@ This is gcc's and newlib C Library's sources with patches for RTEMS. # CONFIGURE_ARGS="--build=%{_build} --host=%{_target}" # %endif + languages="c,c++" +%if %build_g77 + languages="$languages,g77" +%endif +%if %build_gcj + languages="$languages,gcj" +%endif +%if %build_objc + languages="$languages,objc" +%endif +%if %build_gnat + languages="$languages,ada" +%endif ../gcc-@gcc_version@/configure $CONFIGURE_ARGS --target=@target_alias@ \ --with-gnu-as --with-gnu-ld --with-newlib --verbose \ --with-system-zlib --disable-nls \ --enable-version-specific-runtime-libs \ - --enable-threads=rtems --prefix=%{_prefix} @GCCLANGS@ + --enable-threads=rtems --prefix=%{_prefix} \ + --enable-languages=$languages +%if %build_gnat + cd ../gcc-@gcc_version@/gcc/ada + touch treeprs.ads [es]info.h nmake.ad[bs] + cd ../../../build +%endif make all +%if %build_gnat + cd gcc +# This is what is documented, but it doesn't work for me (RC) +# make gnatlib_and_tools + make cross-gnattools + cd .. +%endif make info %install @@ -100,7 +146,8 @@ This is gcc's and newlib C Library's sources with patches for RTEMS. make prefix=$RPM_BUILD_ROOT%{_prefix} install cd @target_alias@/newlib - make prefix=$RPM_BUILD_ROOT%{_prefix} install-info + make prefix=$RPM_BUILD_ROOT%{_prefix} \ + bindir=$RPM_BUILD_ROOT%{_bindir} install-info # cd back to build/ cd ../.. diff --git a/scripts/gcc3newlib/mkspec.in b/scripts/gcc3newlib/mkspec.in new file mode 100644 index 0000000000..ffe0591b39 --- /dev/null +++ b/scripts/gcc3newlib/mkspec.in @@ -0,0 +1,79 @@ +#!/bin/sh +# +# Usage: mktoolspec CPU +# + +RTEMS_DIR=`dirname $0`/@top_srcdir@ + +CFG=../setup.cache +exe_ext=@EXEEXT@ + +usage() +{ + echo "$0 [options] " + echo " options:" + echo " -cfg " + echo " -o " + exit 1 ; +} + +specsrc=${RTEMS_DIR}/gcc3newlib/gccnewlib.spec.in + +while test $# -ge 2; do +case $1 in +-cfg) + shift + CFG=$1 + shift + ;; +-a) # alternate specs file + shift + specsrc=$1 + shift + ;; +-*) + echo "invalid option $1"; + usage + ;; +esac +done + +if test ! $# -eq 1; +then + echo "Invalid number of arguments" + usage +fi + +# target to build for +target_alias=$1 + +. ./$CFG + +patchn=-1 +if test -n "${gcc3_patch_version}"; then +patchn=`expr $patchn + 1` +PATCH1="Patch${patchn}: gcc-${gcc3_version}-rtems-${gcc3_patch_version}.diff" +PATCH2="%patch${patchn} -p0" +fi + +if test -n "${gcc3newlib_patch_version}"; then +patchn=`expr $patchn + 1` +PATCH3="Patch${patchn}: newlib-${gcc3newlib_version}-rtems-${gcc3newlib_patch_version}.diff" +PATCH4="%patch${patchn} -p0" +fi + +# note that the variables in the gcc3newlib directory are actually the same +sed -e "s,@PATCH1\@,${PATCH1}," \ + -e "s,@PATCH2\@,${PATCH2}," \ + -e "s,@PATCH3\@,${PATCH3}," \ + -e "s,@PATCH4\@,${PATCH4}," \ + -e "s%@Release\@%${gcc3newlib_rpm_release}%g" \ + -e "s%@target_alias\@%${target_alias}%g" \ + -e "s%@prefix\@%@prefix@%g" \ + -e "s,@rpm_build_root\@,${rpm_build_root},g" \ + -e "s%@gcc_version\@%${gcc3_version}%g" \ + -e "s%@gcc_patch_version\@%${gcc3_patch_version}%g" \ + -e "s%@newlib_version\@%${gcc3newlib_version}%g" \ + -e "s%@newlib_patch_version\@%${gcc3newlib_patch_version}%g" \ + -e "s%@exe_ext\@%${exe_ext}%g" \ +< ${specsrc} diff --git a/scripts/gcc3newlib/target-c++.add b/scripts/gcc3newlib/target-c++.add index 5e310a9e4e..0850623447 100644 --- a/scripts/gcc3newlib/target-c++.add +++ b/scripts/gcc3newlib/target-c++.add @@ -1,3 +1,4 @@ +%if %build_cxx # ============================================================== # @target_alias@-c++ # ============================================================== @@ -23,3 +24,4 @@ This is the gcc/g++ compiler for @target_alias@ %{_prefix}/lib/gcc-lib/@target_alias@/@gcc_version@/cc1plus@exe_ext@ %dir %{_prefix}/lib/gcc-lib/@target_alias@/@gcc_version@/include %{_prefix}/lib/gcc-lib/@target_alias@/@gcc_version@/include/g++ +%endif diff --git a/scripts/gcc3newlib/target-g77.add b/scripts/gcc3newlib/target-g77.add index e2c576a469..01a897a18d 100644 --- a/scripts/gcc3newlib/target-g77.add +++ b/scripts/gcc3newlib/target-g77.add @@ -1,3 +1,4 @@ +%if %build_g77 # ============================================================== # @target_alias@-g77 # ============================================================== @@ -17,3 +18,4 @@ This is the gcc/g77 compiler for @target_alias@ %{_prefix}/bin/@target_alias@-g77@exe_ext@ %{_prefix}/lib/gcc-lib/@target_alias@/@gcc_version@/f771@exe_ext@ +%endif diff --git a/scripts/gcc3newlib/target-gcj.add b/scripts/gcc3newlib/target-gcj.add index 6a09abd423..8a5d4a8b2b 100644 --- a/scripts/gcc3newlib/target-gcj.add +++ b/scripts/gcc3newlib/target-gcj.add @@ -1,3 +1,4 @@ +%if %build_gcj # ============================================================== # @target_alias@-gcj # ============================================================== @@ -19,3 +20,4 @@ This is the gcc/java compiler for @target_alias@ %{_prefix}/lib/gcc-lib/@target_alias@/@gcc_version@/jc1@exe_ext@ %{_prefix}/lib/gcc-lib/@target_alias@/@gcc_version@/jvgenmain@exe_ext@ +%endif diff --git a/scripts/gcc3newlib/target-gnat.add b/scripts/gcc3newlib/target-gnat.add new file mode 100644 index 0000000000..f47d227c1d --- /dev/null +++ b/scripts/gcc3newlib/target-gnat.add @@ -0,0 +1,22 @@ +%if %build_gnat +# ============================================================== +# @target_alias@-gnat +# ============================================================== +%package -n @target_alias@-gnat +Provides: @target_alias@-gnat +Summary: gcc/gnat compiler for @target_alias@ +Group: rtems +Requires: rtems-base-gnat @target_alias@-gcc + +%description -n @target_alias@-gnat +RTEMS is an open source operating system for embedded systems. + +This is the gcc/gnat compiler for @target_alias@ + +%files -n @target_alias@-gnat +# %files -n @target_alias@-gnat -f build/files.gnat +%dir %{_prefix}/bin +%{_prefix}/bin/@target_alias@-gnat* + +%{_prefix}/lib/gcc-lib/@target_alias@/@gcc_version@/gnat1@exe_ext@ +%endif diff --git a/scripts/gcc3newlib/target-objc.add b/scripts/gcc3newlib/target-objc.add index c7eb2b1b7d..8bf6468d39 100644 --- a/scripts/gcc3newlib/target-objc.add +++ b/scripts/gcc3newlib/target-objc.add @@ -1,3 +1,4 @@ +%if %build_objc # ============================================================== # @target_alias@-objc # ============================================================== @@ -15,3 +16,4 @@ This is the gcc/objc compiler for @target_alias@ %files -n @target_alias@-objc -f build/files.objc %{_prefix}/lib/gcc-lib/@target_alias@/@gcc_version@/cc1obj@exe_ext@ %{_prefix}/lib/gcc-lib/@target_alias@/@gcc_version@/include/objc +%endif diff --git a/scripts/mkgcc3newlibspec.in b/scripts/mkgcc3newlibspec.in deleted file mode 100644 index 89d322305c..0000000000 --- a/scripts/mkgcc3newlibspec.in +++ /dev/null @@ -1,90 +0,0 @@ -#!/bin/sh -# -# Usage: mktoolspec CPU -# - -RTEMS_DIR=`dirname $0`/@top_srcdir@ - -CFG=setup.cache -dst=@RPM_SPECSdir@ -exe_ext=@EXEEXT@ - -usage() -{ - echo "$0 [options] " - echo " options:" - echo " -cfg " - echo " -o " - exit 1 ; -} - -specsrc=${RTEMS_DIR}/gcc3newlib/gccnewlib.spec.in - -while test $# -ge 2; do -case $1 in --cfg) - shift - CFG=$1 - shift - ;; --o) - shift - dst=$1 - shift - ;; --a) # alternate specs file - shift - specsrc=$1 - shift - ;; --*) - echo "invalid option $1"; - usage - ;; -esac -done - -if test ! $# -eq 1; -then - echo "Invalid number of arguments" - usage -fi - -# target to build for -target_alias=$1 - -. ./$CFG - -specfile=${dst}/${target_alias}-gcc-${gcc3_version}-newlib-${gcc3newlib_version}.spec - -patchn=-1 -if test -n "${gcc3_patch_version}"; then -patchn=`expr $patchn + 1` -PATCH1="Patch${patchn}: gcc-${gcc3_version}-rtems-${gcc3_patch_version}.diff" -PATCH2="%patch${patchn} -p0" -fi - -if test -n "${gcc3newlib_patch_version}"; then -patchn=`expr $patchn + 1` -PATCH3="Patch${patchn}: newlib-${gcc3newlib_version}-rtems-${gcc3newlib_patch_version}.diff" -PATCH4="%patch${patchn} -p0" -fi - -# note that the variables in the gcc3newlib directory are actually the same -sed -e "s,@PATCH1\@,${PATCH1}," \ - -e "s,@PATCH2\@,${PATCH2}," \ - -e "s,@PATCH3\@,${PATCH3}," \ - -e "s,@PATCH4\@,${PATCH4}," \ - -e "s%@Release\@%${gcc3newlib_rpm_release}%g" \ - -e "s%@target_alias\@%${target_alias}%g" \ - -e "s%@prefix\@%@prefix@%g" \ - -e "s,@rpm_build_root\@,${rpm_build_root},g" \ - -e "s%@gcc_version\@%${gcc3_version}%g" \ - -e "s%@gcc_patch_version\@%${gcc3_patch_version}%g" \ - -e "s%@newlib_version\@%${gcc3newlib_version}%g" \ - -e "s%@newlib_patch_version\@%${gcc3newlib_patch_version}%g" \ - -e "s%@exe_ext\@%${exe_ext}%g" \ -< ${specsrc} \ -> ${specfile} - -echo Generated ${specfile}. -- cgit v1.2.3