%define gdb_version @gdb_version@ %define gdb_target @target_alias@ Name: %{rpmprefix}%{gdb_target}-gdb Release: @Release@ License: GPL/LGPL Group: %{rpmgroup} Packager: ralf.corsepius@rtems.org and joel@OARcorp.com Version: %{gdb_version} Summary: gdb for target %{gdb_version} %if "%{gdb_version}" < "6.0" Source0: ftp://ftp.gnu.org/pub/gnu/gdb-%{gdb_version}@gdb_suffix@ Patch0: gdb-%{gdb_version}-rtems-base-@gdb_patch_version@.diff Patch1: gdb-%{gdb_version}-rtems-cg-@gdb_patch_version@.diff Patch2: gdb-%{gdb_version}-rtems-rdbg-@gdb_patch_version@.diff %else Source0: ftp://ftp.gnu.org/pub/gnu/gdb-%{gdb_version}@gdb_suffix@ @PATCH1@ %endif %if "%{_vendor}" == "redhat" BuildRequires: ncurses-devel %endif # # 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} # Account as best possible for targets without simulators # and targets which require extra arguments. %define _sim 1 %if "%{gdb_target}" == "avr-rtems@osversion@" %define _sim 0 %endif %if "%{gdb_target}" == "m68k-rtems@osversion@" %define _sim 0 %endif %if "%{gdb_target}" == "i386-rtems@osversion@" %define _sim 0 %endif %if "%{gdb_target}" == "powerpc-rtems@osversion@" %define _sim 1 %endif %if "%{gdb_target}" == "sparc-rtems@osversion@" %define _sim 1 %endif %description RTEMS is an open source operating system for embedded systems. This is the GNU gdb for RTEMS targetting %{gdb_version}. %prep %setup -c -T -n %{name}-%{version} -a0 cd gdb-%{gdb_version} %{?PATCH0:%patch0 -p1} %{?PATCH1:%patch1 -p1} %{?PATCH2:%patch2 -p1} cd .. %build %if "%_sim" == "1" simargs="--enable-sim" %endif %if "%{gdb_target}" == "powerpc-rtems@osversion@" simargs="$simargs --enable-sim-timebase --enable-sim-hardware" # Enabling this causes the program image to be huge and causes # some gcc/hosts combinations to run out of memory. # simargs="$simargs --enable-sim-inline" %endif mkdir -p build cd build export PATH="%{_bindir}:${PATH}" CFLAGS="$RPM_OPT_FLAGS" \ ../gdb-%{gdb_version}/configure \ --build=%_build --host=%_host \ --target=%{gdb_target} \ --prefix=%{_prefix} --bindir=%{_bindir} \ --includedir=%{_includedir} --libdir=%{_libdir} \ --mandir=%{_mandir} --infodir=%{_infodir} \ --verbose $simargs \ --disable-nls make all make info %install rm -rf $RPM_BUILD_ROOT cd build %if "%{gdb_version}" >= "6.3" make DESTDIR=$RPM_BUILD_ROOT install make DESTDIR=$RPM_BUILD_ROOT install-info %%else 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 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 # host files rm -rf $RPM_BUILD_ROOT%{_includedir}/*.h rm -rf $RPM_BUILD_ROOT%{_libdir}/lib*a # These come from other packages rm -rf $RPM_BUILD_ROOT%{_infodir}/bfd* rm -rf $RPM_BUILD_ROOT%{_infodir}/configure* rm -rf $RPM_BUILD_ROOT%{_infodir}/standards* # gdb 4.18 installed this, later versions don't # Don't care about it, anymore rm -rf $RPM_BUILD_ROOT%{_infodir}/readline.info* rm -f $RPM_BUILD_ROOT%{_infodir}/dir touch $RPM_BUILD_ROOT%{_infodir}/dir # gzip info files ls $RPM_BUILD_ROOT%{_infodir}/*.info \ $RPM_BUILD_ROOT%{_infodir}/*.info-? \ $RPM_BUILD_ROOT%{_infodir}/*.info-?? \ | while read a; do \ gzip -9qf $a 2>/dev/null; \ done # gzip man pages gzip -9qf $RPM_BUILD_ROOT%{_mandir}/man?/*.? 2>/dev/null