%define binutils_version @binutils_version@ %define binutils_target @target_alias@ Name: @rpmprefix@%{binutils_target}-binutils Summary: Binutils for target %{binutils_target} Group: %{rpmgroup} Version: %{binutils_version} Release: @Release@ License: GPL/LGPL URL: http://sources.redhat.com/binutils BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) %if "%{_prefix}" != "/usr" # Required for building the infos BuildRequires: /sbin/install-info BuildRequires: texinfo >= 4.2 %endif BuildRequires: flex Source0: ftp://ftp.gnu.org/pub/gnu/binutils/binutils-%{binutils_version}@binutils_suffix@ @PATCH1@ # # 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 :-) # %{?!_with_sources:NoSource: 0} # %description # # RTEMS is an open source operating system for embedded systems. # # This is binutils sources with patches for RTEMS. %prep %setup -c -T -n %{name}-%{version} -a0 %if "%{_prefix}" != "/usr" # 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 %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-compress,./brp-compress,' \ < os_install_post~ > os_install_post %define __os_install_post . ./os_install_post %endif cd binutils-%{version} %{?PATCH0:%patch0 -p1} cd .. %build mkdir -p build cd build CFLAGS="$RPM_OPT_FLAGS" \ ../binutils-%{binutils_version}/configure \ --build=%_build --host=%_host \ --target=%{binutils_target} \ --verbose --disable-nls \ --prefix=%{_prefix} --bindir=%{_bindir} \ --includedir=%{_includedir} --libdir=%{_libdir} \ --mandir=%{_mandir} --infodir=%{_infodir} \ make all %if "%{_prefix}" != "/usr" make info %endif cd .. %install rm -rf $RPM_BUILD_ROOT cd build make prefix=$RPM_BUILD_ROOT%{_prefix} \ bindir=$RPM_BUILD_ROOT%{_bindir} \ includedir=$RPM_BUILD_ROOT%{_includedir} \ libdir=$RPM_BUILD_ROOT%{_libdir} \ infodir=$RPM_BUILD_ROOT%{_infodir} \ mandir=$RPM_BUILD_ROOT%{_mandir} \ install %if "%{_prefix}" != "/usr" make prefix=$RPM_BUILD_ROOT%{_prefix} \ bindir=$RPM_BUILD_ROOT%{_bindir} \ includedir=$RPM_BUILD_ROOT%{_includedir} \ libdir=$RPM_BUILD_ROOT%{_libdir} \ infodir=$RPM_BUILD_ROOT%{_infodir} \ mandir=$RPM_BUILD_ROOT%{_mandir} \ install-info %endif %if "%{_prefix}" == "/usr" # Conflict with a native binutils' infos rm -rf $RPM_BUILD_ROOT%{_infodir} %else %if "%{binutils_version}" < "2.9.5" rm -rf $RPM_BUILD_ROOT%{_infodir}/configure.info* %endif rm -f $RPM_BUILD_ROOT%{_infodir}/dir touch $RPM_BUILD_ROOT%{_infodir}/dir # binutils does not install share/locale, however it uses it mkdir -p $RPM_BUILD_ROOT%{_prefix}/share/locale %endif # We don't ship host files rm -f ${RPM_BUILD_ROOT}%{_libdir}/libiberty* # manpages without corresponding tools rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/%{binutils_target}-dlltool* rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/%{binutils_target}-nlmconv* rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/%{binutils_target}-windres* cd ..