forked from Imagelibrary/rtems
particular, using bsp.h, or getting information from the BSP which should properly be obtained from RTEMS is forbidden. This is necessary to strengthen the division between the BSP independent parts of RTEMS and the BSPs themselves. This started after comments and analysis by Ralf Corsepius <corsepiu@faw.uni-ulm.de>. The changes primarily eliminated the need to include bsp.h and peeking at BSP_Configuration. The use of Cpu_table in each BSP needs to be eliminated.
280 lines
7.9 KiB
RPMSpec
280 lines
7.9 KiB
RPMSpec
#
|
|
# 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: gnat, 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: gnat@gnat_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
|
|
Source2: ftp://cs.nyu.edu/pub/gnat/gnat-@gnat_version@.tar.gz
|
|
Patch0: gcc-@gcc_version@-gnatrtems-@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, 2
|
|
|
|
%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 :-)
|
|
|
|
This is the gcc/g77 compiler for @target_alias@
|
|
|
|
%package -n @target_alias@-objc
|
|
Summary: gcc/objc compiler for @target_alias@
|
|
Group: rtems
|
|
Requires: @target_alias@-objc
|
|
|
|
%description -n @target_alias@-objc
|
|
RTEMS is an open source operating system for embedded systems.
|
|
|
|
This is the gcc/objc compiler for @target_alias@
|
|
|
|
%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
|
|
|
|
# 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
|
|
# 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.chill
|
|
cp dirs files.gcc
|
|
cp dirs files.g77
|
|
cp dirs files.objc
|
|
cp dirs files.gcj
|
|
|
|
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 -n @target_alias@-gcc -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
|
|
|
|
|
|
%files -n @target_alias@-chill -f build/files.chill
|
|
%dir /opt/rtems/bin
|
|
/opt/rtems/bin/@target_alias@-chill
|
|
|
|
%dir /opt/rtems/info
|
|
%doc /opt/rtems/info/dir
|
|
%doc /opt/rtems/info/chill.info*
|
|
|
|
%post -n @target_alias@-chill
|
|
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@-chill
|
|
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 -n @target_alias@-gcj -f build/files.gcj
|
|
%dir /opt/rtems/bin
|
|
/opt/rtems/bin/jcf-dump
|
|
/opt/rtems/bin/jv-scan
|
|
/opt/rtems/bin/gcjh
|
|
/opt/rtems/bin/@target_alias@-gcj
|
|
|
|
/opt/rtems/lib/gcc-lib/@target_alias@/@gcc_version@/jc1
|
|
/opt/rtems/lib/gcc-lib/@target_alias@/@gcc_version@/jvgenmain
|
|
|
|
|
|
%files -n @target_alias@-g77 -f build/files.g77
|
|
%dir /opt/rtems/bin
|
|
/opt/rtems/bin/@target_alias@-g77
|
|
|
|
%dir /opt/rtems/info
|
|
%doc /opt/rtems/info/g77.info*
|
|
|
|
%dir /opt/rtems/man
|
|
%dir /opt/rtems/man/man1
|
|
%doc /opt/rtems/man/man1/@target_alias@-g77.1
|
|
|
|
/opt/rtems/lib/gcc-lib/@target_alias@/@gcc_version@/f771
|
|
|
|
%post -n @target_alias@-g77
|
|
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@-g77
|
|
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 -n @target_alias@-objc -f build/files.objc
|
|
/opt/rtems/lib/gcc-lib/@target_alias@/@gcc_version@/cc1obj
|
|
/opt/rtems/lib/gcc-lib/@target_alias@/@gcc_version@/include/objc
|