#
# spec file for package 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
Release: @Release@
Copyright: 1999 OARCorp
Group: unsorted
Provides: @target_alias@-gcc-newlib
Requires: @target_alias@-binutils
Autoreqprov: on
Packager: corsepiu@faw.uni-ulm.de and joel@OARcorp.com
Version: @gcc_version@newlib@newlib_version@
Summary: rtems gcc and newlib C Library for target @target_alias@
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
#
# 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
Buildroot: @rpm_build_root@
%description
RTEMS is an open source operating system for embedded systems.
This is gcc and newlib C Library for @target_alias@.
Authors:
--------
Joel Sherrill (joel@oarcorp.com)
...
%prep
echo RPM_BUILD_ROOT=${RPM_BUILD_ROOT}
# untar the sources inside @target_alias@-gcc-newlib -@Version@
%setup -c -n @target_alias@-gcc-newlib -a 0 -a 1
%patch0 -p0
%patch1 -p0
# Now link the C library into the source tree
ln -s ../newlib-1.8.2/newlib gcc-@gcc_version@
%build
test -d build || mkdir build
cd build
../gcc-@gcc_version@/configure --target=@target_alias@ \
--with-gnu-as --with-gnu-ld --with-newlib --verbose \
--prefix=/opt/rtems
# for now we are building all the languages
# '--enable-languages=c c++'
make all
make info
# Since gcc now finds the RTEMS limits.h, this should not be needed
# cd gcc
# rm -f stmp-multilib
# find . -name "*.a" -print | xargs -e rm -f
#
# make all
# cd ..
%install
cd build
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 files
# collect c++ headers
if test -d $RPM_BUILD_ROOT/opt/rtems/include/g++-3; then
find $RPM_BUILD_ROOT/opt/rtems/include/g++-3 \
-type d | \
sed -e "s,^$RPM_BUILD_ROOT,%dir ,g" >> files
find $RPM_BUILD_ROOT/opt/rtems/include/g++-3 \
\( -type f -o -type l \) | \
sed -e "s,^$RPM_BUILD_ROOT,,g" >> files
fi
# collect target gcc-lib
if test -d "$RPM_BUILD_ROOT/opt/rtems/lib/gcc-lib/@target_alias@/@gcc_version@"; \
then
find "$RPM_BUILD_ROOT/opt/rtems/lib/gcc-lib/@target_alias@/@gcc_version@" \
-type d | sed -e "s,^$RPM_BUILD_ROOT,%dir ,g" >> files
find "$RPM_BUILD_ROOT/opt/rtems/lib/gcc-lib/@target_alias@/@gcc_version@" \
\( -type f -o -type l \) \
| sed -e "s,^$RPM_BUILD_ROOT,,g" >> files
fi
# collect target files
if test -d "$RPM_BUILD_ROOT/opt/rtems/@target_alias@"; \
then
find "$RPM_BUILD_ROOT/opt/rtems/@target_alias@" \
-type d | \
sed -e "s,^$RPM_BUILD_ROOT,%dir ,g" >> files
find "$RPM_BUILD_ROOT/opt/rtems/@target_alias@" \
\( -type f -o -type l \) | \
sed -e "s,^$RPM_BUILD_ROOT,,g" >> files
fi
%post
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
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
%files -f build/files
%docdir /opt/rtems/info
%doc /opt/rtems/info/dir
%doc /opt/rtems/info/chill.info*
%doc /opt/rtems/info/cpp.info*
%doc /opt/rtems/info/gcc.info*
%doc /opt/rtems/info/g77.info*
%doc /opt/rtems/info/libc.info*
%doc /opt/rtems/info/libm.info*
%docdir /opt/rtems/man
%docdir /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
%doc /opt/rtems/man/man1/@target_alias@-g77.1
%dir /opt/rtems/bin
/opt/rtems/bin/cpp
/opt/rtems/bin/jv-scan
/opt/rtems/bin/gcov
/opt/rtems/bin/jcf-dump
/opt/rtems/bin/gcjh
/opt/rtems/bin/@target_alias@-c++
/opt/rtems/bin/@target_alias@-g++
/opt/rtems/bin/@target_alias@-gcc
/opt/rtems/bin/@target_alias@-gcj
/opt/rtems/bin/@target_alias@-chill
/opt/rtems/bin/@target_alias@-g77
/opt/rtems/bin/@target_alias@-protoize
/opt/rtems/bin/@target_alias@-unprotoize
%dir /opt/rtems/lib
/opt/rtems/lib/libiberty*
%dir /opt/rtems/include
%dir /opt/rtems/lib/gcc-lib
%dir /opt/rtems/lib/gcc-lib/@target_alias@