From e639b998f595e5c0a47482540777f7fc893da9d0 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Fri, 5 Nov 1999 19:40:42 +0000 Subject: Added this file as a way to build RPMs for CPUs that would only successfully build C/C++ and not all of the other languages included in late model egcs/gcc releases. --- scripts/gccnewlib/gccnewlib_c_only.spec.in | 174 +++++++++++++++++++++++++++++ 1 file changed, 174 insertions(+) create mode 100644 scripts/gccnewlib/gccnewlib_c_only.spec.in (limited to 'scripts/gccnewlib/gccnewlib_c_only.spec.in') diff --git a/scripts/gccnewlib/gccnewlib_c_only.spec.in b/scripts/gccnewlib/gccnewlib_c_only.spec.in new file mode 100644 index 0000000000..1f6a61242f --- /dev/null +++ b/scripts/gccnewlib/gccnewlib_c_only.spec.in @@ -0,0 +1,174 @@ +# +# spec file for building gcc for rtems +# +# Copyright (c) 1999 OARCorp, Huntsville, AL +# +# please send bugfixes or comments to joel@OARcorp.com +# + +Vendor: OAR Corporation +Distribution: Linux +Name: @target_alias@-gcc-newlib +Summary: gcc and newlib C Library for @target_alias@. +Group: rtems +Release: @Release@ +Copyright: 1999 OARCorp + +Provides: @target_alias@-gcc +Requires: @target_alias@-binutils + +Autoreqprov: on +Packager: corsepiu@faw.uni-ulm.de and joel@OARcorp.com + +Version: gcc@gcc_version@newlib@newlib_version@ +Source0: ftp://ftp.gnu.org/pub/gnu/gcc/gcc-@gcc_version@.tar.gz +Source1: ftp://sourceware.cygnus/com/pub/newlib/newlib-@newlib_version@.tar.gz +Patch0: gcc-@gcc_version@-rtems-@gcc_patch_version@.diff +Patch1: newlib-@newlib_version@-rtems-@newlib_patch_version@.diff +Buildroot: /tmp + +# +# The original sources are not included in the source RPM. +# If we included them, then the source RPMs for each target +# would duplicate MBs of source unnecessarily. This is +# a duplication of over 30 MBs of source for each of +# the more than 10 targets it is possible to build. +# +# You can get them yourself from the Internet and copy them to +# your /usr/src/redhat/SOURCES directory ($RPM_SOURCE_DIR). +# Or you can try the ftp options of rpm :-) +# +NoSource: 0, 1 + +%description +RTEMS is an open source operating system for embedded systems. + +This is gcc's and newlib C Library's sources with patches for RTEMS. + + The original sources are not included in the source RPM. + If we included them, then the source RPMs for each target + would duplicate MBs of source unnecessarily. This is + a duplication of over 30 MBs of source for each of + the more than 10 targets it is possible to build. + + You can get them yourself from the Internet and copy them to + your /usr/src/redhat/SOURCES directory ($RPM_SOURCE_DIR). + Or you can try the ftp options of rpm :-) + +%prep +# untar the sources inside @target_alias@-gcc-newlib +%setup -c -n @target_alias@-gcc-newlib -a 0 -a 1 + +%patch0 -p0 +%patch1 -p0 + + # Copy the C library into gcc's source tree + ln -s ../newlib-@newlib_version@/newlib gcc-@gcc_version@ + test -d build || mkdir build + +%build + cd build + ../gcc-@gcc_version@/configure --target=@target_alias@ \ + --with-gnu-as --with-gnu-ld --with-newlib --verbose \ + --prefix=/opt/rtems '--enable-languages=c,c++' + + make all + make info + +%install + cd build + # Bug in gcc-2.95.1: It doesn't build this installation directory + # If it doesn't find it, gcc doesn't install @target_alias@/bin/gcc + ../gcc-@gcc_version@/mkinstalldirs \ + $RPM_BUILD_ROOT/opt/rtems/@target_alias@/bin + + make prefix=$RPM_BUILD_ROOT/opt/rtems install + cd @target_alias@/newlib + make prefix=$RPM_BUILD_ROOT/opt/rtems install-info + + # cd back to build/ + cd ../.. + + # gzip info files + gzip -f $RPM_BUILD_ROOT/opt/rtems/info/*.info 2>/dev/null + gzip -f $RPM_BUILD_ROOT/opt/rtems/info/*.info-? 2>/dev/null + gzip -f $RPM_BUILD_ROOT/opt/rtems/info/*.info-?? 2>/dev/null + + rm -f dirs ; + echo "%dir /opt/rtems/lib" >> dirs ; + echo "%dir /opt/rtems/lib/gcc-lib" >> dirs ; + echo "%dir /opt/rtems/lib/gcc-lib/@target_alias@" >> dirs ; + + # Collect multilib subdirectories + TGTDIR="$RPM_BUILD_ROOT/opt/rtems/lib/gcc-lib/@target_alias@/@gcc_version@" + find $TGTDIR \ + \( -type d -a ! -path "$TGTDIR/include*" \) -print | \ + sed -e "s,^$RPM_BUILD_ROOT,%dir ,g" >> dirs + + # Collect files to go into different packages + cp dirs files.gcc + + f=`find $TGTDIR ! -type d -print | sed -e "s,^$RPM_BUILD_ROOT,,g"`; + for i in $f; do + case $i in + # *chill*) echo "$i" >> files.chill ;; + # *f771) ;; + # *cc1obj) ;; + # *libobjc*) echo "$i" >> files.objc ;; + # *include/objc*) ;; + # *jc1) ;; + # *jvgenmain) ;; + *) echo "$i" >> files.gcc ;; + esac + done + +%files -f build/files.gcc +%dir /opt/rtems/info +%doc /opt/rtems/info/dir +%doc /opt/rtems/info/cpp.info* +%doc /opt/rtems/info/gcc.info* +%doc /opt/rtems/info/libc.info* +%doc /opt/rtems/info/libm.info* + +%dir /opt/rtems/man +%dir /opt/rtems/man/man1 +%doc /opt/rtems/man/man1/cccp.1 +%doc /opt/rtems/man/man1/@target_alias@-gcc.1 +%doc /opt/rtems/man/man1/@target_alias@-g++.1 + +%dir /opt/rtems/bin +/opt/rtems/bin/cpp +/opt/rtems/bin/gcov +/opt/rtems/bin/@target_alias@-c++ +/opt/rtems/bin/@target_alias@-g++ +/opt/rtems/bin/@target_alias@-gcc +/opt/rtems/bin/@target_alias@-protoize +/opt/rtems/bin/@target_alias@-unprotoize + +%dir /opt/rtems/lib/gcc-lib/@target_alias@/@gcc_version@/include + +%dir /opt/rtems/include +/opt/rtems/include/g++-3 +/opt/rtems/@target_alias@ + +%post -n @target_alias@-gcc + if test -d $RPM_INSTALL_PREFIX/rtems/info; + then + rm -f $RPM_INSTALL_PREFIX/rtems/info/dir + f=`find $RPM_INSTALL_PREFIX/rtems/info -name '*.info.gz'` + test -n "$f" && for i in $f; do + install-info $i $RPM_INSTALL_PREFIX/rtems/info/dir + done + fi + +%postun -n @target_alias@-gcc + if test -d $RPM_INSTALL_PREFIX/rtems/info; + then + rm -f $RPM_INSTALL_PREFIX/rtems/info/dir + f=`find $RPM_INSTALL_PREFIX/rtems/info -name '*.info.gz'` + test -n "$f" && for i in $f; do + install-info $i $RPM_INSTALL_PREFIX/rtems/info/dir + done + fi + + -- cgit v1.2.3