New (From rtems/scripts)

This commit is contained in:
Ralf Corsepius
2006-02-15 15:24:13 +00:00
parent d72421b836
commit b3a8c23bd0
16 changed files with 990 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
%if "%{_prefix}" != "/usr"
%if %build_g77
# ==============================================================
# rtems-base-g77
# ==============================================================
%package -n @rpmprefix@rtems@osversion@-base-g77
Summary: Base package for RTEMS gcc/g77 compiler
Group: %{rpmgroup}
Version: %{gcc_version}
License: GPL
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%description -n @rpmprefix@rtems@osversion@-base-g77
RTEMS is an open source operating system for embedded systems.
This is the files for gcc/g77 that are shared by all targets.
%files -n @rpmprefix@rtems@osversion@-base-g77
%defattr(-,root,root)
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/g77.info*.gz
%post -n @rpmprefix@rtems@osversion@-base-g77
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/g77.info.gz
%preun -n @rpmprefix@rtems@osversion@-base-g77
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/g77.info.gz
fi
%endif
%endif

View File

@@ -0,0 +1,69 @@
%if "%{_prefix}" != "/usr"
# ==============================================================
# @rpmprefix@rtems@osversion@-base-gcc
# ==============================================================
%package -n @rpmprefix@rtems@osversion@-base-gcc
Summary: Base package for rtems gcc and newlib C Library
Group: %{rpmgroup}
Version: %{gcc_version}
License: GPL
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%description -n @rpmprefix@rtems@osversion@-base-gcc
RTEMS is an open source operating system for embedded systems.
This is the files for gcc and newlib that are shared by all targets.
%files -n @rpmprefix@rtems@osversion@-base-gcc
%defattr(-,root,root)
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/cpp.info*
%{_infodir}/cppinternals.info*
%{_infodir}/gcc.info*
%{_infodir}/libc.info*
%{_infodir}/libm.info*
%{_infodir}/gccint.info*
%if "%{gcc_version}" >= "3.4"
%{_infodir}/gccinstall.info*
%endif
%dir %{_mandir}
%if "%{gcc_version}" < "3.4"
%dir %{_mandir}/man1
%{_mandir}/man1/cpp.1*
%{_mandir}/man1/gcov.1*
%endif
%dir %{_mandir}/man7
%{_mandir}/man7/fsf-funding.7*
%{_mandir}/man7/gfdl.7*
%{_mandir}/man7/gpl.7*
%post -n @rpmprefix@rtems@osversion@-base-gcc
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/cpp.info.gz
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/cppinternals.info.gz
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gcc.info.gz
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/libc.info.gz
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/libm.info.gz
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gccint.info.gz
%if "%{gcc_version}" >= "3.4"
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gccinstall.info.gz
%endif
%preun -n @rpmprefix@rtems@osversion@-base-gcc
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/cpp.info.gz
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/cppinternals.info.gz
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gcc.info.gz
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/libm.info.gz
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gccint.info.gz
%if "%{gcc_version}" >= "3.4"
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gccinstall.info.gz
%endif
fi
%endif

View File

@@ -0,0 +1,68 @@
%if "%{_prefix}" != "/usr"
%if %build_gcj
# ==============================================================
# rtems-base-gcj
# ==============================================================
%package -n @rpmprefix@rtems@osversion@-base-gcj
Summary: Base package for rtems gcc/java compiler (gcj)
Group: %{rpmgroup}
Version: %{gcc_version}
License: GPL
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%description -n @rpmprefix@rtems@osversion@-base-gcj
RTEMS is an open source operating system for embedded systems.
This is the files for gcc/java (gcj) that are shared by all targets.
%files -n @rpmprefix@rtems@osversion@-base-gcj
%defattr(-,root,root)
%if "%{gcc_version}" <= "3.4"
%dir %{_bindir}
%{_bindir}/jar%{_exeext}
%{_bindir}/grepjar%{_exeext}
%endif
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/gcj.info*
%if "%{gcc_version}" >= "3.3"
%{_infodir}/fastjar.info*
%endif
%if "%{gcc_version}" < "4.0"
%if "%{gcc_version}" >= "3.3"
%dir %{_mandir}
%dir %{_mandir}/man1
%{_mandir}/man1/gcjh.1*
%{_mandir}/man1/jv-scan.1*
%{_mandir}/man1/jcf-dump.1*
%{_mandir}/man1/gij.1*
%{_mandir}/man1/jv-convert.1*
%{_mandir}/man1/rmic.1*
%{_mandir}/man1/rmiregistry.1*
%{_mandir}/man1/jar.1*
%{_mandir}/man1/grepjar.1*
%endif
%endif
%post -n @rpmprefix@rtems@osversion@-base-gcj
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gcj.info*
%if "%{gcc_version}" >= "3.3"
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/fastjar.info*
%endif
%preun -n @rpmprefix@rtems@osversion@-base-gcj
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gcj.info*
%if "%{gcc_version}" >= "3.3"
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/fastjar.info*
%endif
fi
%endif
%endif

View File

@@ -0,0 +1,34 @@
%if "%{_prefix}" != "/usr"
%if %build_f95
# ==============================================================
# rtems-base-gfortran
# ==============================================================
%package -n @rpmprefix@rtems@osversion@-base-gfortran
Summary: Base package for RTEMS gcc/gfortran compiler
Group: %{rpmgroup}
License: GPL
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%description -n @rpmprefix@rtems@osversion@-base-gfortran
RTEMS is an open source operating system for embedded systems.
This is the files for gcc/gfortran that are shared by all targets.
%files -n @rpmprefix@rtems@osversion@-base-gfortran
%defattr(-,root,root)
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/gfortran.info*.gz
%post -n @rpmprefix@rtems@osversion@-base-gfortran
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gfortran.info.gz
%preun -n @rpmprefix@rtems@osversion@-base-gfortran
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gfortran.info.gz
fi
%endif
%endif

View File

@@ -0,0 +1,40 @@
%if "%{_prefix}" != "/usr"
%if %build_gnat
# ==============================================================
# rtems-base-gnat
# ==============================================================
%package -n @rpmprefix@rtems@osversion@-base-gnat
Summary: Base package for RTEMS gcc/gnat compiler
Group: %{rpmgroup}
License: GPL
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%description -n @rpmprefix@rtems@osversion@-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 @rpmprefix@rtems@osversion@-base-gnat
%defattr(-,root,root)
%dir %{_bindir}
%{_bindir}/vxaddr2line%{_exeext}
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/gnat*
%post -n @rpmprefix@rtems@osversion@-base-gnat
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gnat_rm.info.gz
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gnat-style.info.gz
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gnat_ugn_unw.info.gz
%preun -n @rpmprefix@rtems@osversion@-base-gnat
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gnat_rm.info.gz
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gnat-style.info.gz
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gnat_ugn_unw.info.gz
fi
%endif
%endif

View File

@@ -0,0 +1,256 @@
%define gcc_pkgvers @GCC_VERS@
%define gcc_version %{expand:%%(echo "@GCC_VERS@" | sed -e 's,-.*,,')}
%define gcc_rpmvers %{expand:%%(echo "@GCC_VERS@" | tr - _ )}
%define build_newlib 1
%if %build_newlib
%define newlib_version @newlib_version@
%define gccnewlib_version gcc%{gcc_version}newlib%{newlib_version}
%endif
%define gcc_target @target_alias@
Name: @rpmprefix@@tool_target@-gcc
Summary: @tool_target@ gcc
Group: %{rpmgroup}
Version: %gcc_rpmvers
Release: @GCC_RPMREL@
License: GPL
URL: http://gcc.gnu.org
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%define _use_internal_dependency_generator 0
# default languages to build
%define _cxx 1
%define _fortran 0
%define _gcj 0
%define _gnat 0
%define _objc 0
%define _libgcj 0
# custom defaults for specific targets
%if "@tool_target@" == "arm-rtems@osversion@"
# Gnat lacks arm support
%define _gnat 0
%endif
%if "@tool_target@" == "avr-rtems@osversion@"
%define _cxx 0
%define _fortran 0
%define _gcj 0
%define _gnat 0
%endif
%if "@tool_target@" == "h8300-rtems@osversion@"
%define _fortran 0
%define _gcj 0
%define _gnat 0
%endif
%if "@tool_target@" == "sh-rtems@osversion@"
# Triggers an ICE in GCC-4.0.0
%define _gnat 0
%endif
%if "@tool_target@" == "tic4x-rtems@osversion@"
%define _cxx 0
%define _gnat 0
%define _gcj 0
%define _fortran 0
%endif
# Allow the user to build arbitrary languages
%{?_with_cxx:%define _cxx 1}
%{?_with_fortran:%define _fortran 1}
%{?_with_gcj:%define _gcj 1}
%{?_with_gnat:%define _gnat 1}
%{?_with_objc:%define _objc 1}
%{?_with_libgcj:%define _libgcj 1}
# Allow the user to suppress building languages
%{?_without_cxx:%define _cxx 0}
%{?_without_fortran:%define _fortran 0}
%{?_without_gcj:%define _gcj 0}
%{?_without_gnat:%define _gnat 0}
%{?_without_objc:%define _objc 0}
%{?_without_libgcj:%define _libgcj 0}
%define build_cxx %_cxx
%if "%{gcc_version}" >= "4.0.0"
%define build_f95 %_fortran
%define build_g77 0
%else
%define build_f95 0
%define build_g77 %_fortran
%endif
%define build_gnat %_gnat
%define build_gcj %_gcj
%define build_objc %_objc
%define build_libgcj %_libgcj
%if %build_gcj
# Building gcj requires bison and zlib
BuildRequires: bison
%endif
BuildRequires: texinfo >= 4.2
BuildRequires: @rpmprefix@@tool_target@-binutils
BuildRequires: @rpmprefix@@tool_target@-sys-root
Requires: @rpmprefix@@tool_target@-binutils
%if "%{_vendor}" == "redhat"
%if %build_gcj
BuildRequires: zlib-devel
%endif
%if %build_gnat
# Building gnat requires gnat
# This really isn't available until RedHat 8.0. How to conditionalize this?
BuildRequires: gcc-gnat
# Urgh, building gnat requires the target libc
BuildRequires: @rpmprefix@@tool_target@-libc < %{newlib_version}-%{release}
%endif
%if %build_f95
BuildRequires: gmp-devel
%endif
%endif
%if "%{gcc_version}" >= "3.4"
%define gcclib %{_libdir}/gcc
%define gccexec %{_libexecdir}/gcc
%else
%define gcclib %{_libdir}/gcc-lib
%define gccexec %{_libdir}/gcc-lib
%endif
@SOURCES@
%description
Cross gcc for @tool_target@.
%prep
%setup -c -T -n %{name}-%{version}
%setup -q -T -D -n %{name}-%{version} -a0
%{?PATCH0:%patch0 -p0}
%if %build_cxx
%setup -q -T -D -n %{name}-%{version} -a1
%{?PATCH1:%patch1 -p0}
%endif
%if %build_f95
%setup -q -T -D -n %{name}-%{version} -a2
%{?PATCH2:%patch2 -p0}
%endif
%if %build_gcj
%setup -q -T -D -n %{name}-%{version} -a3
%{?PATCH3:%patch3 -p0}
%endif
%if %build_gnat
%setup -q -T -D -n %{name}-%{version} -a4
%{?PATCH4:%patch4 -p0}
%endif
%if %build_objc
%setup -T -D -n %{name}-%{version} -a5
%{?PATCH5:%patch5 -p0}
%endif
%if %build_newlib
%setup -q -T -D -n %{name}-%{version} -a50
cd newlib-%{newlib_version}
%{?PATCH50:%patch50 -p1}
cd ..
# Copy the C library into gcc's source tree
ln -s ../newlib-%{newlib_version}/newlib gcc-%{gcc_version}
%endif
cd gcc-%{gcc_pkgvers}
case @tool_target@ in
*rtems*)
sed -e 's/\(version_string.* = \"[^\"]*\)/\1 (RTEMS gcc-%{gcc_version}-@gcc_patch_version@\/newlib-%{newlib_version}-@newlib_patch_version@-@Release@)/' \
gcc/version.c > gcc/version.c~
mv gcc/version.c~ gcc/version.c
;;
esac
# Fix timestamps
contrib/gcc_update --touch
cd ..
%build
mkdir -p build
cd build
languages="c"
%if %build_cxx
languages="$languages,c++"
%endif
%if %build_g77
languages="$languages,g77"
%endif
%if %build_f95
languages="$languages,f95"
%endif
%if %build_gcj
languages="$languages,java"
%endif
%if %build_objc
languages="$languages,objc"
%endif
%if %build_gnat
languages="$languages,ada"
%endif
%if %build_libgcj
optargs="--enable-libgcj"
%endif
%if "%{_prefix}" != "/usr"
export PATH="%{_bindir}:${PATH}"
%endif
CC="%{__cc} ${RPM_OPT_FLAGS}" \
../gcc-%{gcc_pkgvers}/configure \
--prefix=%{_prefix} \
--bindir=%{_bindir} \
--includedir=%{_includedir} \
--libdir=%{_libdir} \
--mandir=%{_mandir} \
--infodir=%{_infodir} \
--datadir=%{_datadir} \
--build=%_build --host=%_host \
--target=@tool_target@ \
--with-gnu-as --with-gnu-ld --verbose \
--with-newlib \
--with-system-zlib \
--disable-nls --without-included-gettext \
--disable-win32-registry \
--enable-version-specific-runtime-libs \
--with-sysroot=%{_prefix}/@tool_target@/sys-root \
--enable-languages="$languages" $optargs
%if "%_host" != "%_build"
# Bug in gcc-3.2.1:
# Somehow, gcc doesn't get syslimits.h right for Cdn-Xs
mkdir -p gcc/include
cp ../gcc-%{gcc_pkgvers}/gcc/gsyslimits.h gcc/include/syslimits.h
%endif
make all
%if "%{_prefix}" != "/usr"
make info
%endif
cd ..

View File

@@ -0,0 +1,158 @@
%install
%if "%{_prefix}" != "/usr"
export PATH="%{_bindir}:${PATH}"
%endif
rm -rf $RPM_BUILD_ROOT
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 @tool_target@/bin/gcc
%if "%{gcc_version}" < "3.0"
mkdir -p $RPM_BUILD_ROOT%{_prefix}/@tool_target@/bin
%endif
make DESTDIR=$RPM_BUILD_ROOT install
# cd back to build/
cd ..
%if "%{gcc_version}" < "4.0.3"
# Misplaced header file
if test -f $RPM_BUILD_ROOT%{_includedir}/mf-runtime.h; then
mv $RPM_BUILD_ROOT%{_includedir}/mf-runtime.h \
$RPM_BUILD_ROOT%{gcclib}/@tool_target@/%{gcc_version}/include/
fi
%endif
# host library
rm -f ${RPM_BUILD_ROOT}%{_prefix}/lib/libiberty.a
# We use the version from binutils
rm -f $RPM_BUILD_ROOT%{_bindir}/@tool_target@-c++filt%{_exeext}
%if %build_gnat
# Seemingly a VAX tool. Not meaningful for RTEMS
rm -f $RPM_BUILD_ROOT%{_bindir}/vxaddr2line%{_exeext}
%endif
%if "%{_prefix}" != "/usr"
# We don't ship info/dir
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
touch $RPM_BUILD_ROOT%{_infodir}/dir
%endif
%if "%{_prefix}" == "/usr"
# Conflict with a native GCC's infos
rm -rf $RPM_BUILD_ROOT%{_infodir}
# Conflict with a native GCC's man pages
rm -rf $RPM_BUILD_ROOT%{_mandir}/man7
%endif
%if %build_f95
# # Bug in gcc-4.0.0pre
# mv $RPM_BUILD_ROOT%{_bindir}/gfortran $RPM_BUILD_ROOT%{_bindir}/@tool_target@-gfortran
%endif
%if "%{gcc_version}" >= "3.4"
# Bug in gcc-3.4.0pre
rm -f $RPM_BUILD_ROOT%{_bindir}/@tool_target@-@tool_target@-gcjh%{_exeext}
%endif
%if "%{gcc_version}" >= "3.3"
# Bug in gcc-3.3.x/gcc-3.4.x: Despite we don't need fixincludes, it installs
# the fixinclude-install-tools
rm -rf ${RPM_BUILD_ROOT}%{gcclib}/@tool_target@/%{gcc_version}/install-tools
rm -rf ${RPM_BUILD_ROOT}%{gccexec}/@tool_target@/%{gcc_version}/install-tools
%endif
%if "%{gcc_version}" < "3.0"
# Bug in gcc-2.95.x: It bogusly tries to share cpp for all targets.
# Rename it to target_alias-cpp
if test -f $RPM_BUILD_ROOT%{_bindir}/cpp%{_exeext};
then
mv $RPM_BUILD_ROOT%{_bindir}/cpp%{_exeext} \
$RPM_BUILD_ROOT%{_bindir}/@tool_target@-cpp%{_exeext}
fi
%endif
# Collect multilib subdirectories
f=`gcc/xgcc -Bgcc/ --print-multi-lib | sed -e 's,;.*$,,'`
echo "%defattr(-,root,root,-)" > build/files.libc
TGTDIR="%{_prefix}/@tool_target@/lib"
for i in $f; do
case $i in
\.) echo "%dir ${TGTDIR}" >> build/files.libc
;;
*) echo "%dir ${TGTDIR}/$i" >> build/files.libc
;;
esac
done
rm -f dirs ;
echo "%defattr(-,root,root,-)" >> dirs
%if "%{_prefix}" != "/usr"
echo "%dir %{_prefix}" >> dirs
echo "%dir %{_libdir}" >> dirs
%if "%{gcc_version}" >= "3.4"
echo "%dir %{_libexecdir}" >> dirs
%endif
%endif
echo "%dir %{gcclib}" >> dirs
echo "%dir %{gcclib}/@tool_target@" >> dirs
TGTDIR="%{gcclib}/@tool_target@/%{gcc_version}"
for i in $f; do
case $i in
\.) echo "%dir ${TGTDIR}" >> dirs
;;
*) echo "%dir ${TGTDIR}/$i" >> dirs
;;
esac
done
# Collect files to go into different packages
cp dirs build/files.gcc
cp dirs build/files.g77
cp dirs build/files.gfortran
cp dirs build/files.objc
cp dirs build/files.gcj
cp dirs build/files.g++
TGTDIR="%{gcclib}/@tool_target@/%{gcc_version}"
f=`find ${RPM_BUILD_ROOT}${TGTDIR} ! -type d -print | sed -e "s,^$RPM_BUILD_ROOT,,g"`;
for i in $f; do
case $i in
*lib*.la) rm ${RPM_BUILD_ROOT}/$i ;; # ignore: gcc produces bogus libtool libs
*f771) ;;
*f951) ;;
*cc1) ;;
*cc1obj) ;;
*cc1plus) ;; # ignore: explicitly put into rpm elsewhere
*collect2) ;;
*libobjc*) echo "$i" >> build/files.objc ;;
*include/objc*) ;;
*include/g++*);;
*include/c++*);;
*adainclude*);;
*adalib*);;
*gnat1);;
*jc1) ;;
*jvgenmain) ;;
*libgfortran*.a) echo "$i" >> build/files.gfortran ;;
*/libstdc++.*) echo "$i" >> build/files.g++ ;;
*/libsupc++.*) echo "$i" >> build/files.g++ ;;
*) echo "$i" >> build/files.gcc ;;
esac
done
TGTDIR="%{_prefix}/@tool_target@/lib"
f=`find ${RPM_BUILD_ROOT}${TGTDIR} ! -type d -print | sed -e "s,^$RPM_BUILD_ROOT,,g"`;
for i in $f; do
case $i in
*lib*.la) rm ${RPM_BUILD_ROOT}/$i;; # ignore - gcc produces bogus libtool libs
*libiberty.a) rm ${RPM_BUILD_ROOT}/$i ;; # ignore - GPL'ed
# all other files belong to libc
*) echo "$i" >> build/files.libc ;;
esac
done

View File

@@ -0,0 +1,48 @@
# Extract %%__os_install_post into os_install_post~
cat << \EOF >> os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
%if "%{_prefix}" != "/usr"
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,./%{_prefix},' < $a > $b
chmod a+x $b
;;
%endif
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
%if "%{_prefix}" != "/usr"
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
%endif
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
cat << EOF > %{_builddir}/%{name}-%{version}/find-provides
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_prefix}/@tool_target@/(lib|include|sys-root)' \
| grep -v '^${RPM_BUILD_ROOT}%{gcclib}/@tool_target@/' | %__find_provides
EOF
chmod +x %{_builddir}/%{name}-%{version}/find-provides
%define __find_provides %{_builddir}/%{name}-%{version}/find-provides
cat << EOF > %{_builddir}/%{name}-%{version}/find-requires
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_prefix}/@tool_target@/(lib|include|sys-root)' \
| grep -v '^${RPM_BUILD_ROOT}%{gcclib}/@tool_target@/' | %__find_requires
EOF
chmod +x %{_builddir}/%{name}-%{version}/find-requires
%define __find_requires %{_builddir}/%{name}-%{version}/find-requires

View File

@@ -0,0 +1,38 @@
%if %build_cxx
# ==============================================================
# @tool_target@-c++
# ==============================================================
%package -n @rpmprefix@@tool_target@-c++
Summary: GCC c++ compiler for @tool_target@
Group: %{rpmgroup}
Version: %{gcc_version}
License: GPL
%if "%{_prefix}" != "/usr"
Requires: @rpmprefix@rtems@osversion@-base-gcc
%endif
Requires: @rpmprefix@@tool_target@-gcc = %{gcc_version}-%{release}
%description -n @rpmprefix@@tool_target@-c++
GCC c++ compiler for @tool_target@.
%files -n @rpmprefix@@tool_target@-c++ -f build/files.g++
%defattr(-,root,root)
%{_mandir}/man1/@tool_target@-g++.1*
%{_bindir}/@tool_target@-c++%{_exeext}
%{_bindir}/@tool_target@-g++%{_exeext}
%dir %{gccexec}
%dir %{gccexec}/@tool_target@
%dir %{gccexec}/@tool_target@/%{gcc_version}
%{gccexec}/@tool_target@/%{gcc_version}/cc1plus%{_exeext}
%dir %{gcclib}/@tool_target@/%{gcc_version}/include
%if "%{gcc_version}" >= "3.2"
%{gcclib}/@tool_target@/%{gcc_version}/include/c++
%else
%{gcclib}/@tool_target@/%{gcc_version}/include/g++
%endif
%endif

View File

@@ -0,0 +1,29 @@
%if %build_g77
# ==============================================================
# @tool_target@-g77
# ==============================================================
%package -n @rpmprefix@@tool_target@-g77
Summary: Fortran 77 support for @tool_target@-gcc
Group: %{rpmgroup}
Version: %{gcc_version}
License: GPL
Requires: @rpmprefix@rtems@osversion@-base-g77
Requires: @rpmprefix@@tool_target@-gcc = %{gcc_version}-%{release}
%description -n @rpmprefix@@tool_target@-g77
RTEMS is an open source operating system for embedded systems.
This is the gcc/g77 compiler for @tool_target@.
%files -n @rpmprefix@@tool_target@-g77 -f build/files.g77
%defattr(-,root,root)
%{_bindir}/@tool_target@-g77%{_exeext}
%{_mandir}/man1/@tool_target@-g77.1*
%dir %{gccexec}
%dir %{gccexec}/@tool_target@
%dir %{gccexec}/@tool_target@/%{gcc_version}
%{gccexec}/@tool_target@/%{gcc_version}/f771%{_exeext}
%endif

View File

@@ -0,0 +1,45 @@
# ==============================================================
# @tool_target@-gcc
# ==============================================================
%package -n @rpmprefix@@tool_target@-gcc
Summary: GNU cc compiler for @tool_target@
Group: %{rpmgroup}
Version: %{gcc_version}
Requires: @rpmprefix@@tool_target@-binutils
Requires: @rpmprefix@@tool_target@-libc = %{newlib_version}-%{release}
License: GPL
%description -n @rpmprefix@@tool_target@-gcc
GNU cc compiler for @tool_target@.
%files -n @rpmprefix@@tool_target@-gcc -f build/files.gcc
%defattr(-,root,root)
%if "%{_prefix}" != "/usr"
%dir %{_mandir}
%dir %{_mandir}/man1
%endif
%{_mandir}/man1/@tool_target@-gcc.1*
%if "%{gcc_version}" >= "3.4"
%{_mandir}/man1/@tool_target@-cpp.1*
%{_mandir}/man1/@tool_target@-gcov.1*
%endif
%if "%{_prefix}" != "/usr"
%dir %{_bindir}
%endif
%{_bindir}/@tool_target@-cpp%{_exeext}
%{_bindir}/@tool_target@-gcc%{_exeext}
%if "%{gcc_version}" >= "3.3"
%{_bindir}/@tool_target@-gcc-%{gcc_version}%{_exeext}
%endif
%{_bindir}/@tool_target@-gcov%{_exeext}
%{_bindir}/@tool_target@-gccbug
%dir %{gcclib}/@tool_target@/%{gcc_version}/include
%dir %{gccexec}
%dir %{gccexec}/@tool_target@
%dir %{gccexec}/@tool_target@/%{gcc_version}
%{gccexec}/@tool_target@/%{gcc_version}/cc1%{_exeext}
%{gccexec}/@tool_target@/%{gcc_version}/collect2%{_exeext}

View File

@@ -0,0 +1,53 @@
%if %build_gcj
# ==============================================================
# @tool_target@-gcj
# ==============================================================
%package -n @rpmprefix@@tool_target@-gcj
Summary: Java support (gcj) for @tool_target@-gcc
Group: %{rpmgroup}
Version: %{gcc_version}
License: GPL
%if "%{_prefix}" != "/usr"
Requires: @rpmprefix@rtems@osversion@-base-gcj
%endif
Requires: @rpmprefix@@tool_target@-gcc = %{gcc_version}-%{release}
%description -n @rpmprefix@@tool_target@-gcj
RTEMS is an open source operating system for embedded systems.
This is the gcc/java compiler for @tool_target@
%files -n @rpmprefix@@tool_target@-gcj -f build/files.gcj
%defattr(-,root,root)
%{_bindir}/@tool_target@-gcj%{_exeext}
%{_bindir}/@tool_target@-jcf-dump%{_exeext}
%{_bindir}/@tool_target@-jv-scan%{_exeext}
%{_bindir}/@tool_target@-gcjh%{_exeext}
%if "%{gcc_version}" >= "3.4"
%{_bindir}/@tool_target@-*jar%{_exeext}
%{_mandir}/man1/@tool_target@-*jar.1*
%{_mandir}/man1/@tool_target@-gcj*.1*
%{_mandir}/man1/@tool_target@-jv-*.1*
%{_mandir}/man1/@tool_target@-jcf-dump.1*
%{_mandir}/man1/@tool_target@-gij.1*
%endif
%if "%{gcc_version}" >= "4.0"
%{_mandir}/man1/@tool_target@-grmi*.1*
%else
%if "%{gcc_version}" >= "3.4"
%{_mandir}/man1/@tool_target@-rmi*.1*
%endif
%endif
%dir %{gccexec}
%dir %{gccexec}/@tool_target@
%dir %{gccexec}/@tool_target@/%{gcc_version}
%{gccexec}/@tool_target@/%{gcc_version}/jc1%{_exeext}
%{gccexec}/@tool_target@/%{gcc_version}/jvgenmain%{_exeext}
%endif

View File

@@ -0,0 +1,33 @@
%if %build_f95
# ==============================================================
# @tool_target@-gfortran
# ==============================================================
%package -n @rpmprefix@@tool_target@-gfortran
Summary: Fortran 95 support for @tool_target@-gcc
Group: %{rpmgroup}
Version: %{gcc_version}
License: GPL
%if "%{_prefix}" != "/usr"
Requires: @rpmprefix@rtems@osversion@-base-gfortran
%endif
Requires: @rpmprefix@@tool_target@-gcc = %{gcc_version}-%{release}
Obsoletes: @rpmprefix@@tool_target@-g77
%description -n @rpmprefix@@tool_target@-gfortran
RTEMS is an open source operating system for embedded systems.
This is the gcc/gfortran compiler for @tool_target@.
%files -n @rpmprefix@@tool_target@-gfortran -f build/files.gfortran
%defattr(-,root,root)
%{_bindir}/@tool_target@-gfortran%{_exeext}
%{_mandir}/man1/@tool_target@-gfortran.1*
%dir %{gccexec}
%dir %{gccexec}/@tool_target@
%dir %{gccexec}/@tool_target@/%{gcc_version}
%{gccexec}/@tool_target@/%{gcc_version}/f951%{_exeext}
%endif

View File

@@ -0,0 +1,34 @@
%if %build_gnat
# ==============================================================
# @tool_target@-gnat
# ==============================================================
%package -n @rpmprefix@@tool_target@-gnat
Summary: Ada support for for @tool_target@-gcc
Group: %{rpmgroup}
Version: %{gcc_version}
License: GPL
%if "%{_prefix}" != "/usr"
Requires: @rpmprefix@rtems@osversion@-base-gnat
%endif
Requires: @rpmprefix@@tool_target@-gcc = %{gcc_version}-%{release}
%description -n @rpmprefix@@tool_target@-gnat
RTEMS is an open source operating system for embedded systems.
This is the gcc/gnat compiler for @tool_target@.
%files -n @rpmprefix@@tool_target@-gnat
%defattr(-,root,root)
%{_bindir}/@tool_target@-gnat*
%{_bindir}/@tool_target@-gprmake%{_exeext}
%dir %{gccexec}
%dir %{gccexec}/@tool_target@
%dir %{gccexec}/@tool_target@/%{gcc_version}
%{gccexec}/@tool_target@/%{gcc_version}/gnat1%{_exeext}
%{gcclib}/@tool_target@/%{gcc_version}/adalib
%{gcclib}/@tool_target@/%{gcc_version}/adainclude
%endif

View File

@@ -0,0 +1,23 @@
# ==============================================================
# @tool_target@-libc
# ==============================================================
%package -n @rpmprefix@@tool_target@-libc
Summary: C Library (newlib) for @tool_target@
Group: %{rpmgroup}
License: Distributable
Version: %{newlib_version}
Provides: @rpmprefix@@tool_target@-newlib = %{newlib_version}-%{release}
%description -n @rpmprefix@@tool_target@-libc
RTEMS is an open source operating system for embedded systems.
This is the newlib C Library for @tool_target@.
%files -n @rpmprefix@@tool_target@-libc -f build/files.libc
%defattr(-,root,root)
%if "%{_prefix}" != "/usr"
%dir %{_prefix}
%endif
%dir %{_prefix}/@tool_target@
%{_prefix}/@tool_target@/include

View File

@@ -0,0 +1,27 @@
%if %build_objc
# ==============================================================
# @tool_target@-objc
# ==============================================================
%package -n @rpmprefix@@tool_target@-objc
Summary: Objective C support for @tool_target@-gcc
Group: %{rpmgroup}
Version: %{gcc_version}
License: GPL
Requires: @rpmprefix@@tool_target@-gcc = %{gcc_version}-%{release}
%description -n @rpmprefix@@tool_target@-objc
RTEMS is an open source operating system for embedded systems.
This is the gcc/objc compiler for @tool_target@.
%files -n @rpmprefix@@tool_target@-objc -f build/files.objc
%defattr(-,root,root)
%dir %{gccexec}
%dir %{gccexec}/@tool_target@
%dir %{gccexec}/@tool_target@/%{gcc_version}
%{gccexec}/@tool_target@/%{gcc_version}/cc1obj%{_exeext}
%{gcclib}/@tool_target@/%{gcc_version}/include/objc
%endif