# Build this architecture %define crossarch powerpc-e500v2-linux-gnuspe # Must match %{crossarch}.config file %define binutils_version 2.19.1 %define gcc_version 4.3.2 %define eglibc_version 2_9 %define gmp_version 4.2.4 %define mpfr_version 2.4.1 %define gdb_version 6.8 # Convinience macros %define nvr %{name}-%{version}-%{release} %define cpus %(echo %{_smp_mflags} | sed 's/-j//') %define topdir %{_prefix}/%{crossarch} %define sysroot %{topdir}/%{crossarch}/sys-root Name: %{crossarch} Version: 1.0 Release: 2%{?dist} Summary: Toolchain for %{crossarch} Group: Development/Tools License: GPLv2+ #URL: Source0: %{crossarch}.config Source1: ftp.gnu.org/gnu/binutils/binutils-%{binutils_version}.tar.bz2 Source2: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_version}/gcc-%{gcc_version}.tar.bz2 Source3: ftp://gcc.gnu.org/pub/java/ecj-latest.jar Source4: ftp://ftp.gnu.org/gnu/gmp/gmp-%{gmp_version}.tar.bz2 Source5: ftp://kernel.org/pub/linux/kernel/v2.6/linux-2.6.29.1.tar.bz2 Source6: http://www.mpfr.org/mpfr-%{mpfr_version}.tar.bz2 # From: svn://svn.eglibc.org/branches Source7: eglibc-%{eglibc_version}.tar.bz2 Source8: eglibc-linuxthreads-%{eglibc_version}.tar.bz2 Source9: eglibc-localedef-%{eglibc_version}.tar.bz2 Source10: eglibc-ports-%{eglibc_version}.tar.bz2 Source11: ftp://ftp.gnu.org/pub/gnu/gdb/gdb-%{gdb_version}.tar.bz2 BuildRoot: %{_tmppath}/%{nvr}-root-%(%{__id_u} -n) BuildRequires: crosstool-ng # Require all subpackages Requires: %{crossarch}-base Requires: %{crossarch}-binutils, %{crossarch}-binutils-devel Requires: %{crossarch}-gcc, %{crossarch}-g++, %{crossarch}-gfortran Requires: %{crossarch}-eglibc, %{crossarch}-libstdc++-devel Requires: %{crossarch}-gmp-devel, %{crossarch}-mpfr-devel Requires: %{crossarch}-gdb %description Toolchain for %{crossarch} %package base Summary: base for %{crossarch} toolchain %description base Base directories and files for %{crossarch} toolchain %package binutils Summary: binutils for %{crossarch} Version: %{binutils_version} %description binutils binutils for %{crossarch} %package binutils-devel Summary: binutils-devel for %{crossarch} Version: %{binutils_version} Requires: %{crossarch}-binutils = %{binutils_version} %description binutils-devel binutils-devel for %{crossarch} %package gcc Summary: gcc for %{crossarch} Version: %{gcc_version} Requires: %{crossarch}-binutils %description gcc gcc-%{gcc_version} for %{crossarch} %package g++ Summary: g++ for %{crossarch} Version: %{gcc_version} Requires: %{crossarch}-gcc = %{gcc_version} Requires: %{crossarch}-libstdc++-devel = %{eglibc_version} %description g++ g++-%{gcc_version} for %{crossarch} %package gfortran Summary: gfortran for %{crossarch} Version: %{gcc_version} Requires: %{crossarch}-gcc = %{gcc_version} %description gfortran gfortran-%{gcc_version} for %{crossarch} %package eglibc Summary: eglibc for %{crossarch} Version: %{eglibc_version} %description eglibc eglibc-%{eglibc_version} for %{crossarch} %package libstdc++-devel Summary: libstdc++-devel for %{crossarch} Version: %{eglibc_version} %description libstdc++-devel libstdc++-devel-%{eglibc_version} for %{crossarch} %package gmp-devel Summary: gmp-devel for %{crossarch} Version: %{gmp_version} %description gmp-devel gmp-devel-%{gmp_version} for %{crossarch} %package mpfr-devel Summary: mpfr-devel for %{crossarch} Version: %{mpfr_version} %description mpfr-devel mpfr-devel-%{mpfr_version} for %{crossarch} %package gdb Summary: gdb for %{crossarch} Version: %{gdb_version} %description gdb gdb-%{gdb_version} for %{crossarch} %prep umask 022 export LANG=C unset DISPLAY cd $RPM_BUILD_DIR rm -rf %{nvr} mkdir %{nvr} cd %{nvr} mkdir instdir cp %{SOURCE0} .config sed -i \ -e "s,^CT_LOCAL_TARBALLS_DIR.*,CT_LOCAL_TARBALLS_DIR=\"$RPM_SOURCE_DIR\"," \ -e "s,^CT_PREFIX_DIR.*,CT_PREFIX_DIR=\"\${CT_TOP_DIR}/instdir%{_prefix}/\${CT_TARGET}\"," \ -e "s,^CT_PARALLEL_JOBS.*,CT_PARALLEL_JOBS=%{cpus}," \ .config %build cd %{nvr} ct-ng oldconfig ct-ng build %install cd %{nvr} rm -rf $RPM_BUILD_ROOT mkdir $RPM_BUILD_ROOT cp -a instdir/* $RPM_BUILD_ROOT # No need for the native %{crossarch} binaries, info and config rm -rf $RPM_BUILD_ROOT%{sysroot}/etc rm -rf $RPM_BUILD_ROOT%{sysroot}/bin rm -rf $RPM_BUILD_ROOT%{sysroot}/sbin rm -rf $RPM_BUILD_ROOT%{sysroot}/usr/bin rm -rf $RPM_BUILD_ROOT%{sysroot}/usr/sbin rm -rf $RPM_BUILD_ROOT%{sysroot}/usr/libexec rm -rf $RPM_BUILD_ROOT%{sysroot}/usr/share/info %clean #rm -rf $RPM_BUILD_ROOT %files base %defattr(-,root,root,-) %dir %{topdir} %dir %{topdir}/bin %dir %{topdir}/%{crossarch} %dir %{topdir}/%{crossarch}/bin %dir %{topdir}/%{crossarch}/include %dir %{topdir}/%{crossarch}/lib %dir %{topdir}/include %dir %{topdir}/lib %dir %{topdir}/libexec %dir %{topdir}/libexec/gcc %dir %{topdir}/libexec/gcc/%{crossarch} %dir %{topdir}/libexec/gcc/%{crossarch}/%{gcc_version} %dir %{topdir}/lib/gcc %dir %{topdir}/lib/gcc/%{crossarch} %dir %{topdir}/lib/gcc/%{crossarch}/%{gcc_version} %dir %{topdir}/share %dir %{topdir}/share/info %dir %{topdir}/share/locale %dir %{topdir}/share/locale/* %dir %{topdir}/share/locale/*/LC_MESSAGES %doc %{topdir}/bin/%{crossarch}-ct-ng.config %doc %{topdir}/build.log.bz2 %{topdir}/bin/%{crossarch}-embedspu %{topdir}/bin/%{crossarch}-gccbug %{topdir}/bin/%{crossarch}-populate %{topdir}/bin/%{crossarch}-run %{topdir}/libexec/gcc/%{crossarch}/%{gcc_version}/install-tools %{topdir}/lib/gcc/%{crossarch}/%{gcc_version}/install-tools %{topdir}/share/info/dir %files binutils %defattr(-,root,root,-) %{topdir}/bin/%{crossarch}-addr2line %{topdir}/bin/%{crossarch}-ar %{topdir}/bin/%{crossarch}-as %{topdir}/bin/%{crossarch}-c++filt %{topdir}/bin/%{crossarch}-gprof %{topdir}/bin/%{crossarch}-ld %{topdir}/bin/%{crossarch}-nm %{topdir}/bin/%{crossarch}-objcopy %{topdir}/bin/%{crossarch}-objdump %{topdir}/bin/%{crossarch}-ranlib %{topdir}/bin/%{crossarch}-readelf %{topdir}/bin/%{crossarch}-size %{topdir}/bin/%{crossarch}-strings %{topdir}/bin/%{crossarch}-strip %{topdir}/share/locale/*/LC_MESSAGES/bfd.mo %{topdir}/share/locale/*/LC_MESSAGES/opcodes.mo %{topdir}/%{crossarch}/bin/ar %{topdir}/%{crossarch}/bin/as %{topdir}/%{crossarch}/bin/ld %{topdir}/%{crossarch}/bin/nm %{topdir}/%{crossarch}/bin/objcopy %{topdir}/%{crossarch}/bin/objdump %{topdir}/%{crossarch}/bin/ranlib %{topdir}/%{crossarch}/bin/strip %{sysroot}/usr/lib/libbfd-*.so %files binutils-devel %defattr(-,root,root,-) %{sysroot}/usr/include/ansidecl.h %{sysroot}/usr/include/bfd.h %{sysroot}/usr/include/bfdlink.h %{sysroot}/usr/include/symcat.h %{sysroot}/usr/lib/libbfd.* %{sysroot}/usr/lib/libiberty.a %{topdir}/lib/libiberty.a %files gcc %defattr(-,root,root,-) %{topdir}/bin/%{crossarch}-cc %{topdir}/bin/%{crossarch}-cpp %{topdir}/bin/%{crossarch}-gcc %{topdir}/bin/%{crossarch}-gcc-%{gcc_version} %{topdir}/bin/%{crossarch}-gcov %{topdir}/%{crossarch}/bin/gcc %{topdir}/libexec/gcc/%{crossarch}/%{gcc_version}/cc1 %{topdir}/libexec/gcc/%{crossarch}/%{gcc_version}/collect2 %{topdir}/lib/gcc/%{crossarch}/%{gcc_version}/crtbegin.o %{topdir}/lib/gcc/%{crossarch}/%{gcc_version}/crtbeginS.o %{topdir}/lib/gcc/%{crossarch}/%{gcc_version}/crtbeginT.o %{topdir}/lib/gcc/%{crossarch}/%{gcc_version}/crtend.o %{topdir}/lib/gcc/%{crossarch}/%{gcc_version}/crtendS.o %{topdir}/lib/gcc/%{crossarch}/%{gcc_version}/crtsavres.o %{topdir}/lib/gcc/%{crossarch}/%{gcc_version}/ecrti.o %{topdir}/lib/gcc/%{crossarch}/%{gcc_version}/ecrtn.o %{topdir}/lib/gcc/%{crossarch}/%{gcc_version}/libgcc.a %{topdir}/lib/gcc/%{crossarch}/%{gcc_version}/libgcc_eh.a %{topdir}/lib/gcc/%{crossarch}/%{gcc_version}/libgcov.a %{topdir}/lib/gcc/%{crossarch}/%{gcc_version}/ncrti.o %{topdir}/lib/gcc/%{crossarch}/%{gcc_version}/ncrtn.o %files g++ %defattr(-,root,root,-) %{topdir}/bin/%{crossarch}-c++ %{topdir}/bin/%{crossarch}-g++ %{topdir}/%{crossarch}/bin/c++ %{topdir}/%{crossarch}/bin/g++ %{topdir}/libexec/gcc/%{crossarch}/%{gcc_version}/cc1plus %files gfortran %defattr(-,root,root,-) %{topdir}/bin/%{crossarch}-gfortran %{topdir}/%{crossarch}/bin/gfortran %{sysroot}/lib/libgfortran.* %{topdir}/libexec/gcc/%{crossarch}/%{gcc_version}/f951 %{topdir}/lib/gcc/%{crossarch}/%{gcc_version}/libgfortranbegin.* %files eglibc %defattr(-,root,root,-) %{sysroot} %{topdir}/lib/gcc/%{crossarch}/%{gcc_version}/finclude %{topdir}/lib/gcc/%{crossarch}/%{gcc_version}/include-fixed %{topdir}/lib/gcc/%{crossarch}/%{gcc_version}/include %exclude %{sysroot}/lib/libgfortran.* %exclude %{sysroot}/usr/include/ansidecl.h %exclude %{sysroot}/usr/include/bfd.h %exclude %{sysroot}/usr/include/bfdlink.h %exclude %{sysroot}/usr/include/gmp.h %exclude %{sysroot}/usr/include/linux/igmp.h %exclude %{sysroot}/usr/include/mpf2mpfr.h %exclude %{sysroot}/usr/include/mpfr.h %exclude %{sysroot}/usr/include/netinet/igmp.h %exclude %{sysroot}/usr/include/symcat.h %exclude %{sysroot}/usr/lib/libbfd.* %exclude %{sysroot}/usr/lib/libbfd-*.so %exclude %{sysroot}/usr/lib/libgmp.* %exclude %{sysroot}/usr/lib/libiberty.a %exclude %{sysroot}/usr/lib/libmpfr.* %exclude %{topdir}/include/gmp.h %exclude %{topdir}/include/mpf2mpfr.h %exclude %{topdir}/include/mpfr.h %exclude %{topdir}/include/mp.h %exclude %{topdir}/lib/libgmp.* %exclude %{topdir}/lib/libiberty.a %exclude %{topdir}/lib/libmp.* %exclude %{topdir}/lib/libmpfr.* %exclude %{topdir}/share/info/mpfr.info %files libstdc++-devel %defattr(-,root,root,-) %{topdir}/%{crossarch}/include/c++ %files gmp-devel %defattr(-,root,root,-) %{sysroot}/usr/include/gmp.h %{sysroot}/usr/include/linux/igmp.h %{sysroot}/usr/include/netinet/igmp.h %{sysroot}/usr/lib/libgmp.* %{topdir}/include/gmp.h %{topdir}/include/mp.h %{topdir}/lib/libgmp.* %{topdir}/lib/libmp.* %files mpfr-devel %defattr(-,root,root,-) %{sysroot}/usr/include/mpf2mpfr.h %{sysroot}/usr/include/mpfr.h %{sysroot}/usr/lib/libmpfr.* %{topdir}/include/mpf2mpfr.h %{topdir}/include/mpfr.h %{topdir}/lib/libmpfr.* %{topdir}/share/info/mpfr.info %files gdb %defattr(-,root,root,-) %{topdir}/bin/%{crossarch}-gdb %{topdir}/bin/%{crossarch}-gdbtui %{topdir}/%{crossarch}/debug-root %changelog