From 087a6c86f55b8ddbd6a5bc1961e28a044225475f Mon Sep 17 00:00:00 2001 From: Ralf Corsepius Date: Tue, 2 Sep 2003 16:41:50 +0000 Subject: 2003-09-02 Ralf Corsepius * Makefile.am, configure.ac, autotools/autoconf-rtems.spec.in, autotools/automake-rtems.spec.in, binutils/Makefile.am, binutils/base-binutils.add, binutils/binutils.add, binutils/mkspec.in, binutils/target-binutils.add, common/common.add.in, cpukit/Makefile.am, gcc3newlib/Makefile.am, gcc3newlib/base-g77.add, gcc3newlib/base-gcc.add, gcc3newlib/base-gcj.add, gcc3newlib/base-gnat.add, gcc3newlib/gccnewlib.add, gcc3newlib/mkspec.in, gcc3newlib/target-c++.add, gcc3newlib/target-g77.add, gcc3newlib/target-gcc.add, gcc3newlib/target-gcj.add, gcc3newlib/target-gnat.add, gcc3newlib/target-objc.add, gccnewlib/Makefile.am, gdb/Makefile.am, rtems/Makefile.am, rtemsdoc/Makefile.am: Merger from rtems-4-6-branch. * common/common.am: New. --- scripts/ChangeLog | 23 +++++++++++ scripts/Makefile.am | 6 +-- scripts/autotools/autoconf-rtems.spec.in | 4 +- scripts/autotools/automake-rtems.spec.in | 6 +-- scripts/binutils/Makefile.am | 27 ++++++++----- scripts/binutils/base-binutils.add | 14 +++---- scripts/binutils/binutils.add | 17 ++++---- scripts/binutils/mkspec.in | 2 + scripts/binutils/target-binutils.add | 67 ++++++++++++++++---------------- scripts/common/common.add.in | 12 +++++- scripts/common/common.am | 4 ++ scripts/configure.ac | 15 ++++++- scripts/cpukit/Makefile.am | 1 + scripts/gcc3newlib/Makefile.am | 2 + scripts/gcc3newlib/base-g77.add | 13 +++---- scripts/gcc3newlib/base-gcc.add | 15 ++++--- scripts/gcc3newlib/base-gcj.add | 11 +++--- scripts/gcc3newlib/base-gnat.add | 9 ++--- scripts/gcc3newlib/gccnewlib.add | 39 ++++++++++++++----- scripts/gcc3newlib/mkspec.in | 2 + scripts/gcc3newlib/target-c++.add | 13 +++---- scripts/gcc3newlib/target-g77.add | 11 +++--- scripts/gcc3newlib/target-gcc.add | 11 +++--- scripts/gcc3newlib/target-gcj.add | 11 +++--- scripts/gcc3newlib/target-gnat.add | 12 +++--- scripts/gcc3newlib/target-objc.add | 11 +++--- scripts/gccnewlib/Makefile.am | 1 + scripts/gdb/Makefile.am | 2 + scripts/rtems/Makefile.am | 1 + scripts/rtemsdoc/Makefile.am | 2 + 30 files changed, 218 insertions(+), 146 deletions(-) create mode 100644 scripts/common/common.am diff --git a/scripts/ChangeLog b/scripts/ChangeLog index ca1485fff5..29292ac78d 100644 --- a/scripts/ChangeLog +++ b/scripts/ChangeLog @@ -1,3 +1,26 @@ +2003-09-02 Ralf Corsepius + + * Makefile.am, configure.ac, + autotools/autoconf-rtems.spec.in, autotools/automake-rtems.spec.in, + binutils/Makefile.am, binutils/base-binutils.add, + binutils/binutils.add, binutils/mkspec.in, + binutils/target-binutils.add, + common/common.add.in, + cpukit/Makefile.am, + gcc3newlib/Makefile.am, gcc3newlib/base-g77.add, + gcc3newlib/base-gcc.add, gcc3newlib/base-gcj.add, + gcc3newlib/base-gnat.add, gcc3newlib/gccnewlib.add, + gcc3newlib/mkspec.in, gcc3newlib/target-c++.add, + gcc3newlib/target-g77.add, gcc3newlib/target-gcc.add, + gcc3newlib/target-gcj.add, gcc3newlib/target-gnat.add, + gcc3newlib/target-objc.add, + gccnewlib/Makefile.am, + gdb/Makefile.am, + rtems/Makefile.am, + rtemsdoc/Makefile.am: + Merger from rtems-4-6-branch. + * common/common.am: New. + 2003-08-23 Ralf Corsepius * common/common.add.in: s/www.oarcorp.com/www.rtems.com/. diff --git a/scripts/Makefile.am b/scripts/Makefile.am index d5226922a6..751f50a970 100644 --- a/scripts/Makefile.am +++ b/scripts/Makefile.am @@ -10,13 +10,11 @@ SUBDIRS += rtemsdoc noinst_SCRIPTS = setup buildall buildalltar mkbspspec \ mkgccnewlibspec mkrpms mkspec -TEMPLATES = - -noinst_DATA = setup.def $(TEMPLATES) +noinst_DATA = setup.def EXTRA_DIST = $(noinst_DATA) $(noinst_SCRIPTS) -CONFIGURE_DEPENDENCIES = setup.cache +CONFIG_STATUS_DEPENDENCIES = setup.cache setup.cache: setup.def cp setup.def $@ diff --git a/scripts/autotools/autoconf-rtems.spec.in b/scripts/autotools/autoconf-rtems.spec.in index b37a5f7db6..6e81bab2af 100644 --- a/scripts/autotools/autoconf-rtems.spec.in +++ b/scripts/autotools/autoconf-rtems.spec.in @@ -10,7 +10,7 @@ %define _name autoconf %if "%{_prefix}" != "/usr" -%define name %{_name}-rtems +%define name @rpmprefix@%{_name}-rtems %define _infodir %{_prefix}/info %define _mandir %{_prefix}/man %else @@ -24,7 +24,7 @@ Packager: Ralf Corsepius Copyright: GPL URL: http://www.gnu.org/software/autoconf -Group: rtems +Group: @rpmgroup@ Autoreqprov: on Version: %{rpmvers} Release: 1 diff --git a/scripts/autotools/automake-rtems.spec.in b/scripts/autotools/automake-rtems.spec.in index 1bc1d000ba..498fc0b177 100644 --- a/scripts/autotools/automake-rtems.spec.in +++ b/scripts/autotools/automake-rtems.spec.in @@ -11,8 +11,8 @@ %define _name automake %if "%{_prefix}" != "/usr" -%define name %{_name}-rtems -%define requirements autoconf-rtems >= 2.54 +%define name @rpmprefix@%{_name}-rtems +%define requirements @rpmprefix@autoconf-rtems >= 2.54 %define _infodir %{_prefix}/info %define _mandir %{_prefix}/man %else @@ -25,7 +25,7 @@ Name: %{name} Packager: Ralf Corsepius Copyright: GPL -Group: rtems +Group: @rpmgroup@ Autoreqprov: on Version: %{rpmvers} Release: 1 diff --git a/scripts/binutils/Makefile.am b/scripts/binutils/Makefile.am index aad90027a9..9953111019 100644 --- a/scripts/binutils/Makefile.am +++ b/scripts/binutils/Makefile.am @@ -2,6 +2,7 @@ ## $Id$ ## +include $(top_srcdir)/common/common.am MKBINUTILSSPEC = $(SHELL) ./mkspec @@ -13,61 +14,67 @@ SUBPACKAGES += base-binutils.add target-binutils.add binutils.spec.in: $(SUBPACKAGES) cat $^ > $@ CLEANFILES = binutils.spec.in +RPM_SPECS_DATA = MKBINUTILSSPEC_DEPS = mkspec binutils.spec.in \ $(top_builddir)/setup.cache arm-rtems-$(BINUTILSVERS).spec: $(MKBINUTILSSPEC_DEPS) $(MKBINUTILSSPEC) -cfg $(top_builddir)/setup.cache arm-rtems > $@ +RPM_SPECS_DATA += arm-rtems-$(BINUTILSVERS).spec c4x-rtems-$(BINUTILSVERS).spec: $(MKBINUTILSSPEC_DEPS) $(MKBINUTILSSPEC) -cfg $(top_builddir)/setup.cache c4x-rtems > $@ +RPM_SPECS_DATA += c4x-rtems-$(BINUTILSVERS).spec h8300-rtems-$(BINUTILSVERS).spec: $(MKBINUTILSSPEC_DEPS) $(MKBINUTILSSPEC) -cfg $(top_builddir)/setup.cache h8300-rtems > $@ +RPM_SPECS_DATA += h8300-rtems-$(BINUTILSVERS).spec hppa1.1-rtems-$(BINUTILSVERS).spec: $(MKBINUTILSSPEC_DEPS) $(MKBINUTILSSPEC) -cfg $(top_builddir)/setup.cache hppa1.1-rtems > $@ +RPM_SPECS_DATA += hppa1.1-rtems-$(BINUTILSVERS).spec i386-rtems-$(BINUTILSVERS).spec: $(MKBINUTILSSPEC_DEPS) $(MKBINUTILSSPEC) -cfg $(top_builddir)/setup.cache i386-rtems > $@ +RPM_SPECS_DATA += i386-rtems-$(BINUTILSVERS).spec i960-rtems-$(BINUTILSVERS).spec: $(MKBINUTILSSPEC_DEPS) $(MKBINUTILSSPEC) -cfg $(top_builddir)/setup.cache i960-rtems > $@ +RPM_SPECS_DATA += i960-rtems-$(BINUTILSVERS).spec m68k-rtems-$(BINUTILSVERS).spec: $(MKBINUTILSSPEC_DEPS) $(MKBINUTILSSPEC) -cfg $(top_builddir)/setup.cache m68k-rtems > $@ +RPM_SPECS_DATA += m68k-rtems-$(BINUTILSVERS).spec mips64orion-rtems-$(BINUTILSVERS).spec: $(MKBINUTILSSPEC_DEPS) $(MKBINUTILSSPEC) -cfg $(top_builddir)/setup.cache mips64orion-rtems > $@ +RPM_SPECS_DATA += mips64orion-rtems-$(BINUTILSVERS).spec + mips-rtems-$(BINUTILSVERS).spec: $(MKBINUTILSSPEC_DEPS) $(MKBINUTILSSPEC) -cfg $(top_builddir)/setup.cache mips-rtems > $@ +RPM_SPECS_DATA += mips-rtems-$(BINUTILSVERS).spec or32-rtems-$(BINUTILSVERS).spec: $(MKBINUTILSSPEC_DEPS) $(MKBINUTILSSPEC) -cfg $(top_builddir)/setup.cache or32-rtems > $@ +RPM_SPECS_DATA += or32-rtems-$(BINUTILSVERS).spec powerpc-rtems-$(BINUTILSVERS).spec: $(MKBINUTILSSPEC_DEPS) $(MKBINUTILSSPEC) -cfg $(top_builddir)/setup.cache powerpc-rtems > $@ +RPM_SPECS_DATA += powerpc-rtems-$(BINUTILSVERS).spec sh-rtems-$(BINUTILSVERS).spec: $(MKBINUTILSSPEC_DEPS) $(MKBINUTILSSPEC) -cfg $(top_builddir)/setup.cache sh-rtems > $@ +RPM_SPECS_DATA += sh-rtems-$(BINUTILSVERS).spec sh-rtemself-$(BINUTILSVERS).spec: $(MKBINUTILSSPEC_DEPS) $(MKBINUTILSSPEC) -cfg $(top_builddir)/setup.cache sh-rtemself > $@ +RPM_SPECS_DATA += sh-rtemself-$(BINUTILSVERS).spec sparc-rtems-$(BINUTILSVERS).spec: $(MKBINUTILSSPEC_DEPS) $(MKBINUTILSSPEC) -cfg $(top_builddir)/setup.cache sparc-rtems > $@ +RPM_SPECS_DATA += sparc-rtems-$(BINUTILSVERS).spec -RPM_SPECS_DATA = \ - arm-rtems-$(BINUTILSVERS).spec \ - c4x-rtems-$(BINUTILSVERS).spec h8300-rtems-$(BINUTILSVERS).spec \ - hppa1.1-rtems-$(BINUTILSVERS).spec \ - i386-rtems-$(BINUTILSVERS).spec i960-rtems-$(BINUTILSVERS).spec \ - m68k-rtems-$(BINUTILSVERS).spec \ - mips-rtems-$(BINUTILSVERS).spec mips64orion-rtems-$(BINUTILSVERS).spec \ - or32-rtems-$(BINUTILSVERS).spec \ - powerpc-rtems-$(BINUTILSVERS).spec sh-rtems-$(BINUTILSVERS).spec \ - sh-rtemself-$(BINUTILSVERS).spec sparc-rtems-$(BINUTILSVERS).spec CLEANFILES += $(RPM_SPECS_DATA) EXTRA_DIST = $(SUBPACKAGES) diff --git a/scripts/binutils/base-binutils.add b/scripts/binutils/base-binutils.add index c354e8219d..21644618a2 100644 --- a/scripts/binutils/base-binutils.add +++ b/scripts/binutils/base-binutils.add @@ -1,19 +1,18 @@ # ============================================================== # rtems-base-binutils # ============================================================== -%package -n rtems-base-binutils -Provides: rtems-base-binutils +%package -n %{rpmprefix}rtems-base-binutils Summary: base package for rtems binutils -Group: rtems +Group: %{rpmgroup} PreReq: /sbin/install-info -%description -n rtems-base-binutils +%description -n %{rpmprefix}rtems-base-binutils RTEMS is an open source operating system for embedded systems. This is the base for binutils regardless of target CPU. -%post -n rtems-base-binutils +%post -n %{rpmprefix}rtems-base-binutils if test -d $RPM_INSTALL_PREFIX%{_prefix}/info; then rm -f $RPM_INSTALL_PREFIX%{_prefix}/info/dir @@ -23,7 +22,7 @@ This is the base for binutils regardless of target CPU. done fi -%postun -n rtems-base-binutils +%postun -n %{rpmprefix}rtems-base-binutils if test -d $RPM_INSTALL_PREFIX%{_prefix}/info; then rm -f $RPM_INSTALL_PREFIX%{_prefix}/info/dir @@ -33,7 +32,7 @@ This is the base for binutils regardless of target CPU. done fi -%files -n rtems-base-binutils -f files +%files -n %{rpmprefix}rtems-base-binutils -f files %defattr(-,root,root) %dir %{_prefix}/info %doc %{_prefix}/info/dir @@ -42,7 +41,6 @@ This is the base for binutils regardless of target CPU. %doc %{_prefix}/info/binutils.info.gz %doc %{_prefix}/info/ld.info.gz %if "%{binutils_version}" < "2.14" -# binutils >= 2.14 ships monolytic infos. %doc %{_prefix}/info/as.info-*.gz %doc %{_prefix}/info/bfd.info-?.gz %doc %{_prefix}/info/binutils.info-?.gz diff --git a/scripts/binutils/binutils.add b/scripts/binutils/binutils.add index 1ff0abc247..e811d33a99 100644 --- a/scripts/binutils/binutils.add +++ b/scripts/binutils/binutils.add @@ -1,9 +1,10 @@ -%define binutils_version @binutils_version@ +%define binutils_version @binutils_version@ +%define binutils_target @target_alias@ -Name: @target_alias@-binutils-collection -Summary: binutils for target @target_alias@ -Group: rtems +Name: %{rpmprefix}%{binutils_target}-binutils-collection +Summary: binutils for target %{binutils_target} +Group: %{rpmgroup} Release: @Release@ License: GPL/LGPL @@ -37,8 +38,8 @@ RTEMS is an open source operating system for embedded systems. This is binutils sources with patches for RTEMS. %prep -# untar the sources inside @target_alias@-binutils -%setup -c -n @target_alias@-binutils +# untar the sources inside %{binutils_target}-binutils +%setup -c -n %{binutils_target}-binutils @PATCH2@ test -d build || mkdir build @@ -46,7 +47,7 @@ This is binutils sources with patches for RTEMS. cd build ../binutils-%{binutils_version}/configure \ --build=%_build --host=%_host \ - --target=@target_alias@ \ + --target=%{binutils_target} \ --verbose --prefix=%{_prefix} --disable-nls make all @@ -62,7 +63,7 @@ This is binutils sources with patches for RTEMS. ../binutils-%{binutils_version}/mkinstalldirs \ $RPM_BUILD_ROOT%{_prefix}/share/locale - rm -f $RPM_BUILD_ROOT%{_prefix}/bin/@target_alias@-c++filt%{_exeext} + rm -f $RPM_BUILD_ROOT%{_prefix}/bin/%{binutils_target}-c++filt%{_exeext} # gzip info files gzip -9qf $RPM_BUILD_ROOT%{_prefix}/info/*.info 2>/dev/null gzip -9qf $RPM_BUILD_ROOT%{_prefix}/info/*.info-* 2>/dev/null diff --git a/scripts/binutils/mkspec.in b/scripts/binutils/mkspec.in index cf44605ca3..bbba80989b 100644 --- a/scripts/binutils/mkspec.in +++ b/scripts/binutils/mkspec.in @@ -57,6 +57,8 @@ sed -e "s%@Release\@%${binutils_rpm_release}%g" \ -e "s,@rpm_build_root\@,${rpm_build_root},g" \ -e "s%@target_alias\@%${target_alias}%g" \ -e "s%@prefix\@%@prefix@%g" \ + -e "s,@rpmprefix\@,@rpmprefix@,g" \ + -e "s%@rpmgroup\@%@rpmgroup@%g" \ -e "s%@binutils_version\@%${binutils_version}%g" \ -e "s%@binutils_patch_version\@%${binutils_patch_version}%g" \ -e "s,@PATCH1\@,${PATCH1}," \ diff --git a/scripts/binutils/target-binutils.add b/scripts/binutils/target-binutils.add index 6ab71ff328..7cd9da0a85 100644 --- a/scripts/binutils/target-binutils.add +++ b/scripts/binutils/target-binutils.add @@ -1,49 +1,48 @@ # ============================================================== -# @target_alias@-binutils +# %{binutils_target}-binutils # ============================================================== -%package -n @target_alias@-binutils -Provides: @target_alias@-binutils -Summary: rtems binutils for @target_alias@ -Group: rtems -Requires: rtems-base-binutils +%package -n %{rpmprefix}%{binutils_target}-binutils +Summary: rtems binutils for %{binutils_target} +Group: %{rpmgroup} +Requires: %{rpmprefix}rtems-base-binutils Autoreqprov: off -%description -n @target_alias@-binutils +%description -n %{rpmprefix}%{binutils_target}-binutils RTEMS is an open source operating system for embedded systems. -This is the GNU binutils for RTEMS targetting @target_alias@. +This is the GNU binutils for RTEMS targetting %{binutils_target}. -%files -n @target_alias@-binutils +%files -n %{rpmprefix}%{binutils_target}-binutils %defattr(-,root,root) -%doc %{_prefix}/man/man1/@target_alias@-*.1* +%doc %{_prefix}/man/man1/%{binutils_target}-*.1* %dir %{_prefix}/bin -%{_prefix}/bin/@target_alias@-addr2line%{_exeext} -%{_prefix}/bin/@target_alias@-ar%{_exeext} -%{_prefix}/bin/@target_alias@-as%{_exeext} +%{_prefix}/bin/%{binutils_target}-addr2line%{_exeext} +%{_prefix}/bin/%{binutils_target}-ar%{_exeext} +%{_prefix}/bin/%{binutils_target}-as%{_exeext} # c++filt now comes from gcc -# %{_prefix}/bin/@target_alias@-c++filt%{_exeext} +# %{_prefix}/bin/%{binutils_target}-c++filt%{_exeext} # deleted as of 2.13 -# %{_prefix}/bin/@target_alias@-gasp%{_exeext} -%{_prefix}/bin/@target_alias@-ld%{_exeext} -%{_prefix}/bin/@target_alias@-nm%{_exeext} -%{_prefix}/bin/@target_alias@-objcopy%{_exeext} -%{_prefix}/bin/@target_alias@-objdump%{_exeext} -%{_prefix}/bin/@target_alias@-ranlib%{_exeext} -%{_prefix}/bin/@target_alias@-readelf%{_exeext} -%{_prefix}/bin/@target_alias@-size%{_exeext} -%{_prefix}/bin/@target_alias@-strings%{_exeext} -%{_prefix}/bin/@target_alias@-strip%{_exeext} +# %{_prefix}/bin/%{binutils_target}-gasp%{_exeext} +%{_prefix}/bin/%{binutils_target}-ld%{_exeext} +%{_prefix}/bin/%{binutils_target}-nm%{_exeext} +%{_prefix}/bin/%{binutils_target}-objcopy%{_exeext} +%{_prefix}/bin/%{binutils_target}-objdump%{_exeext} +%{_prefix}/bin/%{binutils_target}-ranlib%{_exeext} +%{_prefix}/bin/%{binutils_target}-readelf%{_exeext} +%{_prefix}/bin/%{binutils_target}-size%{_exeext} +%{_prefix}/bin/%{binutils_target}-strings%{_exeext} +%{_prefix}/bin/%{binutils_target}-strip%{_exeext} -%dir %{_prefix}/@target_alias@ -%dir %{_prefix}/@target_alias@/bin -%{_prefix}/@target_alias@/bin/ar%{_exeext} -%{_prefix}/@target_alias@/bin/as%{_exeext} -%{_prefix}/@target_alias@/bin/ld%{_exeext} -%{_prefix}/@target_alias@/bin/nm%{_exeext} -%{_prefix}/@target_alias@/bin/ranlib%{_exeext} -%{_prefix}/@target_alias@/bin/strip%{_exeext} +%dir %{_prefix}/%{binutils_target} +%dir %{_prefix}/%{binutils_target}/bin +%{_prefix}/%{binutils_target}/bin/ar%{_exeext} +%{_prefix}/%{binutils_target}/bin/as%{_exeext} +%{_prefix}/%{binutils_target}/bin/ld%{_exeext} +%{_prefix}/%{binutils_target}/bin/nm%{_exeext} +%{_prefix}/%{binutils_target}/bin/ranlib%{_exeext} +%{_prefix}/%{binutils_target}/bin/strip%{_exeext} -%dir %{_prefix}/@target_alias@/lib -%{_prefix}/@target_alias@/lib/ldscripts +%dir %{_prefix}/%{binutils_target}/lib +%{_prefix}/%{binutils_target}/lib/ldscripts diff --git a/scripts/common/common.add.in b/scripts/common/common.add.in index 12f3a55c10..9365c88138 100644 --- a/scripts/common/common.add.in +++ b/scripts/common/common.add.in @@ -5,6 +5,14 @@ # %define _prefix @prefix@ +%if "%{_prefix}" != "/usr" +%define _infodir %{_prefix}/info +%define _mandir %{_prefix}/man +%endif + +%define rpmprefix @rpmprefix@ +%define rpmgroup @rpmgroup@ + %define _defaultbuildroot %{_tmppath}/%{name}-%{version}-root %ifos cygwin cygwin32 %define _exeext .exe @@ -12,8 +20,8 @@ %define _exeext %{nil} %endif -# Without this, RPM-4.x' rpm-brp-strip screws up on cross-binaries -%define __os_install_post %{nil} +# Work around to a bug in rpm-4.2 +%define __os_install_post %{nil} Vendor: OARCorp Distribution: Linux diff --git a/scripts/common/common.am b/scripts/common/common.am new file mode 100644 index 0000000000..a1c6b651a2 --- /dev/null +++ b/scripts/common/common.am @@ -0,0 +1,4 @@ +$(top_builddir)/common/common.add: $(top_builddir)/config.status $(top_srcdir)/common/common.add.in + cd $(top_builddir) && $(SHELL) ./config.status common/common.add +$(top_builddir)/common/clean.add: $(top_builddir)/config.status $(top_srcdir)/common/clean.add.in + cd $(top_builddir) && $(SHELL) ./config.status common/clean.add diff --git a/scripts/configure.ac b/scripts/configure.ac index 69dd444026..7ce93f907f 100644 --- a/scripts/configure.ac +++ b/scripts/configure.ac @@ -4,7 +4,7 @@ AC_PREREQ(2.57) AC_INIT([rtems-scripts],[_RTEMS_VERSION],[rtems-bugs@rtems.com]) AC_CONFIG_SRCDIR([binutils]) RTEMS_TOP([..]) -AC_PREFIX_DEFAULT([/opt/rtems]) + AM_INIT_AUTOMAKE([no-define foreign 1.7.2]) AC_CANONICAL_HOST @@ -12,6 +12,17 @@ AC_CANONICAL_HOST test -f ./setup.cache || cp ${srcdir}/setup.def ./setup.cache . ./setup.cache +AC_ARG_ENABLE([rpmprefix], +[ --enable-rpmprefix= prefix rpms], +[case $enable_rpmprefix in +yes ) rpmprefix="rtems-"]RTEMS_API["-";; +no ) rpmprefix="%{nil}";; +* ) AS_IF([test -z "$enable_rpmprefix"], + [rpmprefix="%{nil}"], + [rpmprefix="$enable_rpmprefix"]);; +esac], +[rpmprefix="rtems-"]RTEMS_API["-"]) + AC_MSG_CHECKING(for rpm SPECS directory) # Allow users to override RPM_SPECSdir from the environment. if test -z "$RPM_SPECSdir" ; @@ -66,6 +77,8 @@ BSPVERS="${rtems_version}" AC_SUBST(RTEMS_VERSION) AC_SUBST(BSPVERS) AC_SUBST(RPM_CPU) +AC_SUBST(rpmprefix,$rpmprefix) +AC_SUBST(rpmgroup,[Rtems/][RTEMS_API]) AC_CONFIG_FILES([Makefile binutils/Makefile diff --git a/scripts/cpukit/Makefile.am b/scripts/cpukit/Makefile.am index 03a95b87e3..04b71cf47d 100644 --- a/scripts/cpukit/Makefile.am +++ b/scripts/cpukit/Makefile.am @@ -2,6 +2,7 @@ ## $Id$ ## +include $(top_srcdir)/common/common.am MKSPEC = $(SHELL) ./mkspec diff --git a/scripts/gcc3newlib/Makefile.am b/scripts/gcc3newlib/Makefile.am index 9e02b98fba..b1e68cfe26 100644 --- a/scripts/gcc3newlib/Makefile.am +++ b/scripts/gcc3newlib/Makefile.am @@ -2,6 +2,8 @@ ## $Id$ ## +include $(top_srcdir)/common/common.am + MKSPEC = $(SHELL) ./mkspec SUBPACKAGES = header.add diff --git a/scripts/gcc3newlib/base-g77.add b/scripts/gcc3newlib/base-g77.add index 1aaf604672..06f96e8e61 100644 --- a/scripts/gcc3newlib/base-g77.add +++ b/scripts/gcc3newlib/base-g77.add @@ -2,18 +2,17 @@ # ============================================================== # rtems-base-g77 # ============================================================== -%package -n rtems-base-g77 -Provides: rtems-base-g77 +%package -n %{rpmprefix}rtems-base-g77 Summary: rtems base package for gcc/g77 compiler -Group: rtems +Group: %{rpmgroup} Requires: rtems-base-gcc -%description -n rtems-base-g77 +%description -n %{rpmprefix}rtems-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 rtems-base-g77 +%files -n %{rpmprefix}rtems-base-g77 %defattr(-,root,root) %dir %{_prefix}/info %doc %{_prefix}/info/g77.info*.gz @@ -22,7 +21,7 @@ This is the files for gcc/g77 that are shared by all targets. %dir %{_prefix}/man/man1 %doc %{_prefix}/man/man1/%{gcc_target}-g77.1* -%post -n rtems-base-g77 +%post -n %{rpmprefix}rtems-base-g77 if test -d $RPM_INSTALL_PREFIX%{_prefix}/info; then rm -f $RPM_INSTALL_PREFIX%{_prefix}/info/dir @@ -32,7 +31,7 @@ This is the files for gcc/g77 that are shared by all targets. done fi -%postun -n rtems-base-g77 +%postun -n %{rpmprefix}rtems-base-g77 if test -d $RPM_INSTALL_PREFIX%{_prefix}/info; then rm -f $RPM_INSTALL_PREFIX%{_prefix}/info/dir diff --git a/scripts/gcc3newlib/base-gcc.add b/scripts/gcc3newlib/base-gcc.add index f719e8f5cc..f628b8d50c 100644 --- a/scripts/gcc3newlib/base-gcc.add +++ b/scripts/gcc3newlib/base-gcc.add @@ -1,18 +1,17 @@ # ============================================================== -# rtems-base-gcc +# %{rpmprefix}rtems-base-gcc # ============================================================== -%package -n rtems-base-gcc -Provides: rtems-base-gcc +%package -n %{rpmprefix}rtems-base-gcc Summary: base package for rtems gcc and newlib C Library -Group: rtems +Group: %{rpmgroup} -%description -n rtems-base-gcc +%description -n %{rpmprefix}rtems-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 rtems-base-gcc +%files -n %{rpmprefix}rtems-base-gcc %defattr(-,root,root) %dir %{_prefix}/info %doc %{_prefix}/info/cpp.info*.gz @@ -33,7 +32,7 @@ This is the files for gcc and newlib that are shared by all targets. %dir %{_prefix}/include -%post -n rtems-base-gcc +%post -n %{rpmprefix}rtems-base-gcc if test -d $RPM_INSTALL_PREFIX%{_prefix}/info; then rm -f $RPM_INSTALL_PREFIX%{_prefix}/info/dir @@ -43,7 +42,7 @@ This is the files for gcc and newlib that are shared by all targets. done fi -%postun -n rtems-base-gcc +%postun -n %{rpmprefix}rtems-base-gcc if test -d $RPM_INSTALL_PREFIX%{_prefix}/info; then rm -f $RPM_INSTALL_PREFIX%{_prefix}/info/dir diff --git a/scripts/gcc3newlib/base-gcj.add b/scripts/gcc3newlib/base-gcj.add index ef0ecb9778..93d4f9f25d 100644 --- a/scripts/gcc3newlib/base-gcj.add +++ b/scripts/gcc3newlib/base-gcj.add @@ -2,18 +2,17 @@ # ============================================================== # rtems-base-gcj # ============================================================== -%package -n rtems-base-gcj -Provides: rtems-base-gcj +%package -n %{rpmprefix}rtems-base-gcj Summary: base package for rtems gcc/java compiler (gcj). -Group: rtems -Requires: rtems-base-gcc +Group: %{rpmgroup} +Requires: %{rpmprefix}rtems-base-gcc -%description -n rtems-base-gcj +%description -n %{rpmprefix}rtems-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 rtems-base-gcj +%files -n %{rpmprefix}rtems-base-gcj %defattr(-,root,root) %dir %{_prefix}/bin %{_prefix}/bin/jar%{_exeext} diff --git a/scripts/gcc3newlib/base-gnat.add b/scripts/gcc3newlib/base-gnat.add index 648e764c5e..451994596a 100644 --- a/scripts/gcc3newlib/base-gnat.add +++ b/scripts/gcc3newlib/base-gnat.add @@ -2,17 +2,16 @@ # ============================================================== # rtems-base-gnat # ============================================================== -%package -n rtems-base-gnat -Provides: rtems-base-gnat +%package -n %{rpmprefix}rtems-base-gnat Summary: gcc/gnat tools -Group: rtems +Group: %{rpmgroup} -%description -n rtems-base-gnat +%description -n %{rpmprefix}rtems-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 rtems-base-gnat +%files -n %{rpmprefix}rtems-base-gnat %defattr(-,root,root) %dir %{_prefix}/bin # %{_prefix}/bin/gnat* diff --git a/scripts/gcc3newlib/gccnewlib.add b/scripts/gcc3newlib/gccnewlib.add index fc806527d0..66a77139ba 100644 --- a/scripts/gcc3newlib/gccnewlib.add +++ b/scripts/gcc3newlib/gccnewlib.add @@ -4,9 +4,9 @@ %define gcc_target @target_alias@ -Name: %{gcc_target}-gcc-newlib +Name: %{rpmprefix}%{gcc_target}-gcc-newlib Summary: gcc and newlib C Library for %{gcc_target}. -Group: rtems +Group: %{rpmgroup} Release: @Release@ License: gcc is GPL/LGPL ; newlib no has restrictions on run-time usage @@ -14,16 +14,20 @@ Autoreqprov: on Packager: corsepiu@faw.uni-ulm.de and joel@OARcorp.com Version: gcc%{gcc_version}newlib%{newlib_version} -# gcc 3.x and gcc 2.9 -# Source0: ftp://ftp.gnu.org/pub/gnu/gcc/gcc-%{gcc_version}.tar.gz -Source0: ftp://ftp.gnu.org/pub/gnu/gcc/gcc-%{gcc_version}.tar.bz2 -# gcc 2.95.x -# Source0: ftp://ftp.gnu.org/pub/gnu/gcc/gcc-%{gcc_version}.tar.bz2 +%if "%{gcc_version}" >= "3.2.2" +Source0: ftp://ftp.gnu.org/pub/gnu/gcc/gcc-%{gcc_version}/gcc-%{gcc_version}.tar.bz2 +%else +%if "%{gcc_version}" >= "3.0" +Source0: ftp://ftp.gnu.org/pub/gnu/gcc/gcc-%{gcc_version}/gcc-%{gcc_version}.tar.gz +%else +Source0: ftp://ftp.gnu.org/pub/gnu/gcc/gcc-%{gcc_version}/gcc-%{gcc_version}-everything.tar.gz +%endif +%endif Source1: ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_version}.tar.gz @PATCH1@ @PATCH3@ BuildPreReq: texinfo >= 4.2 -BuildPreReq: %{gcc_target}-binutils +BuildPreReq: %{rpmprefix}%{gcc_target}-binutils # # The original sources are not included in the source RPM. # If we included them, then the source RPMs for each target @@ -57,7 +61,7 @@ NoSource: 1 %define _gcj %{?gcj:%gcj}%{!?gcj:1} %else # default to not building gcj -%define _gcj %{?gnat:%gcj}%{!?gcj:0} +%define _gcj %{?gcj:%gcj}%{!?gcj:0} %endif @@ -177,6 +181,8 @@ This is gcc's and newlib C Library's sources with patches for RTEMS. %if %build_gnat languages="$languages,ada" %endif + + export PATH="%{_bindir}:${PATH}" ../gcc-%{gcc_version}/configure \ --build=%_build --host=%_host \ --target=%{gcc_target} \ @@ -193,6 +199,12 @@ This is gcc's and newlib C Library's sources with patches for RTEMS. cp ../gcc-%{gcc_version}/gcc/gsyslimits.h gcc/include/syslimits.h %endif +%if %build_cxx +%if "%{gcc_version}" >= "3.3" + make -C %{gcc_target}/libiberty CFLAGS="$RPM_OPT_FLAGS" c++filt +%endif +%endif + %if %build_gnat cd ../gcc-%{gcc_version}/gcc/ada touch treeprs.ads [es]info.h nmake.ad[bs] @@ -226,6 +238,7 @@ This is gcc's and newlib C Library's sources with patches for RTEMS. make info %install + export PATH="%{_bindir}:${PATH}" 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 %{gcc_target}/bin/gcc @@ -265,6 +278,14 @@ This is gcc's and newlib C Library's sources with patches for RTEMS. fi %endif +%if %build_cxx +%if "%{gcc_version}" >= "3.3" + install -d $RPM_BUILD_ROOT%{_prefix}/bin + install -c -m 755 %{gcc_target}/libiberty/c++filt%{_exeext} \ + $RPM_BUILD_ROOT%{_prefix}/bin/%{target_alias}-c++filt%{_exeext} +%endif +%endif + # gzip info files gzip -f $RPM_BUILD_ROOT%{_prefix}/info/*.info 2>/dev/null %if "%{gcc_version}" < "3.3" diff --git a/scripts/gcc3newlib/mkspec.in b/scripts/gcc3newlib/mkspec.in index 3b4391da77..0492edd10a 100644 --- a/scripts/gcc3newlib/mkspec.in +++ b/scripts/gcc3newlib/mkspec.in @@ -69,6 +69,8 @@ sed -e "s,@PATCH1\@,${PATCH1}," \ -e "s%@Release\@%${gcc3newlib_rpm_release}%g" \ -e "s%@target_alias\@%${target_alias}%g" \ -e "s%@prefix\@%@prefix@%g" \ + -e "s,@rpmprefix\@,@rpmprefix@,g" \ + -e "s%@rpmgroup\@%@rpmgroup@%g" \ -e "s,@rpm_build_root\@,${rpm_build_root},g" \ -e "s%@gcc_version\@%${gcc3_version}%g" \ -e "s%@gcc_patch_version\@%${gcc3_patch_version}%g" \ diff --git a/scripts/gcc3newlib/target-c++.add b/scripts/gcc3newlib/target-c++.add index f73670cc2e..e2fe80a86b 100644 --- a/scripts/gcc3newlib/target-c++.add +++ b/scripts/gcc3newlib/target-c++.add @@ -2,27 +2,24 @@ # ============================================================== # %{gcc_target}-c++ # ============================================================== -%package -n %{gcc_target}-c++ -Provides: %{gcc_target}-c++ +%package -n %{rpmprefix}%{gcc_target}-c++ Summary: gcc/g++ compiler (c++) for %{gcc_target} -Group: rtems -Requires: rtems-base-gcc %{gcc_target}-gcc +Group: %{rpmgroup} +Requires: %{rpmprefix}rtems-base-gcc %{rpmprefix}%{gcc_target}-gcc -%description -n %{gcc_target}-c++ +%description -n %{rpmprefix}%{gcc_target}-c++ RTEMS is an open source operating system for embedded systems. This is the gcc/g++ compiler for %{gcc_target} -%files -n %{gcc_target}-c++ -f build/files.g++ +%files -n %{rpmprefix}%{gcc_target}-c++ -f build/files.g++ %defattr(-,root,root) %doc %{_prefix}/man/man1/%{gcc_target}-g++.1* %dir %{_prefix}/bin %{_prefix}/bin/%{gcc_target}-c++%{_exeext} %{_prefix}/bin/%{gcc_target}-g++%{_exeext} -%if "{gcc_version}" < "3.3" %{_prefix}/bin/%{gcc_target}-c++filt%{_exeext} -%endif %{_prefix}/lib/gcc-lib/%{gcc_target}/%{gcc_version}/cc1plus%{_exeext} %dir %{_prefix}/lib/gcc-lib/%{gcc_target}/%{gcc_version}/include diff --git a/scripts/gcc3newlib/target-g77.add b/scripts/gcc3newlib/target-g77.add index abd1b5e792..0e2b696855 100644 --- a/scripts/gcc3newlib/target-g77.add +++ b/scripts/gcc3newlib/target-g77.add @@ -2,18 +2,17 @@ # ============================================================== # %{gcc_target}-g77 # ============================================================== -%package -n %{gcc_target}-g77 -Provides: %{gcc_target}-g77 +%package -n %{rpmprefix}%{gcc_target}-g77 Summary: gcc/g77 compiler for %{gcc_target} -Group: rtems -Requires: rtems-base-g77 %{gcc_target}-gcc +Group: %{rpmgroup} +Requires: %{rpmprefix}rtems-base-g77 %{rpmprefix}%{gcc_target}-gcc -%description -n %{gcc_target}-g77 +%description -n %{rpmprefix}%{gcc_target}-g77 RTEMS is an open source operating system for embedded systems. This is the gcc/g77 compiler for %{gcc_target} -%files -n %{gcc_target}-g77 -f build/files.g77 +%files -n %{rpmprefix}%{gcc_target}-g77 -f build/files.g77 %defattr(-,root,root) %dir %{_prefix}/bin %{_prefix}/bin/%{gcc_target}-g77%{_exeext} diff --git a/scripts/gcc3newlib/target-gcc.add b/scripts/gcc3newlib/target-gcc.add index 25bf77d525..161d902524 100644 --- a/scripts/gcc3newlib/target-gcc.add +++ b/scripts/gcc3newlib/target-gcc.add @@ -1,18 +1,17 @@ # ============================================================== # %{gcc_target}-gcc # ============================================================== -%package -n %{gcc_target}-gcc -Provides: %{gcc_target}-gcc +%package -n %{rpmprefix}%{gcc_target}-gcc Summary: rtems gcc and newlib C Library for %{gcc_target} -Group: rtems -Requires: %{gcc_target}-binutils rtems-base-gcc +Group: %{rpmgroup} +Requires: %{rpmprefix}%{gcc_target}-binutils %{rpmprefix}rtems-base-gcc -%description -n %{gcc_target}-gcc +%description -n %{rpmprefix}%{gcc_target}-gcc RTEMS is an open source operating system for embedded systems. This is gcc and newlib C Library for %{gcc_target}. -%files -n %{gcc_target}-gcc -f build/files.gcc +%files -n %{rpmprefix}%{gcc_target}-gcc -f build/files.gcc %defattr(-,root,root) %doc %{_prefix}/man/man1/%{gcc_target}-gcc.1* diff --git a/scripts/gcc3newlib/target-gcj.add b/scripts/gcc3newlib/target-gcj.add index 4d8b144ea7..d1a5e6b9c2 100644 --- a/scripts/gcc3newlib/target-gcj.add +++ b/scripts/gcc3newlib/target-gcj.add @@ -2,18 +2,17 @@ # ============================================================== # %{gcc_target}-gcj # ============================================================== -%package -n %{gcc_target}-gcj -Provides: %{gcc_target}-gcj +%package -n %{rpmprefix}%{gcc_target}-gcj Summary: gcc/java compiler (gcj) for %{gcc_target} -Group: rtems -Requires: rtems-base-gcj %{gcc_target}-gcc +Group: %{rpmgroup} +Requires: %{rpmprefix}rtems-base-gcj %{rpmprefix}%{gcc_target}-gcc -%description -n %{gcc_target}-gcj +%description -n %{rpmprefix}%{gcc_target}-gcj RTEMS is an open source operating system for embedded systems. This is the gcc/java compiler for %{gcc_target} -%files -n %{gcc_target}-gcj -f build/files.gcj +%files -n %{rpmprefix}%{gcc_target}-gcj -f build/files.gcj %defattr(-,root,root) %dir %{_prefix}/bin %{_prefix}/bin/%{gcc_target}-gcj%{_exeext} diff --git a/scripts/gcc3newlib/target-gnat.add b/scripts/gcc3newlib/target-gnat.add index 6490fd1b2c..6e9d1166a0 100644 --- a/scripts/gcc3newlib/target-gnat.add +++ b/scripts/gcc3newlib/target-gnat.add @@ -2,20 +2,18 @@ # ============================================================== # %{gcc_target}-gnat # ============================================================== -%package -n %{gcc_target}-gnat -Provides: %{gcc_target}-gnat +%package -n %{rpmprefix}%{gcc_target}-gnat Summary: gcc/gnat compiler for %{gcc_target} -Group: rtems -Requires: rtems-base-gnat %{gcc_target}-gcc +Group: %{rpmgroup} +Requires: %{rpmprefix}rtems-base-gnat %{rpmprefix}%{gcc_target}-gcc -%description -n %{gcc_target}-gnat +%description -n %{rpmprefix}%{gcc_target}-gnat RTEMS is an open source operating system for embedded systems. This is the gcc/gnat compiler for %{gcc_target} -%files -n %{gcc_target}-gnat +%files -n %{rpmprefix}%{gcc_target}-gnat %defattr(-,root,root) -# %files -n %{gcc_target}-gnat -f build/files.gnat %dir %{_prefix}/bin %{_prefix}/bin/%{gcc_target}-gnat* diff --git a/scripts/gcc3newlib/target-objc.add b/scripts/gcc3newlib/target-objc.add index 7c723c0f35..27f66f5bee 100644 --- a/scripts/gcc3newlib/target-objc.add +++ b/scripts/gcc3newlib/target-objc.add @@ -2,18 +2,17 @@ # ============================================================== # %{gcc_target}-objc # ============================================================== -%package -n %{gcc_target}-objc -Provides: %{gcc_target}-objc +%package -n %{rpmprefix}%{gcc_target}-objc Summary: gcc/objc compiler for %{gcc_target} -Group: rtems -Requires: %{gcc_target}-gcc +Group: %{rpmgroup} +Requires: %{rpmprefix}%{gcc_target}-gcc -%description -n %{gcc_target}-objc +%description -n %{rpmprefix}%{gcc_target}-objc RTEMS is an open source operating system for embedded systems. This is the gcc/objc compiler for %{gcc_target} -%files -n %{gcc_target}-objc -f build/files.objc +%files -n %{rpmprefix}%{gcc_target}-objc -f build/files.objc %defattr(-,root,root) %{_prefix}/lib/gcc-lib/%{gcc_target}/%{gcc_version}/cc1obj%{_exeext} %{_prefix}/lib/gcc-lib/%{gcc_target}/%{gcc_version}/include/objc diff --git a/scripts/gccnewlib/Makefile.am b/scripts/gccnewlib/Makefile.am index 12f779bd02..6bf511022f 100644 --- a/scripts/gccnewlib/Makefile.am +++ b/scripts/gccnewlib/Makefile.am @@ -2,6 +2,7 @@ ## $Id$ ## +include $(top_srcdir)/common/common.am MKGCCNEWLIBSPEC = $(SHELL) $(top_builddir)/mkgccnewlibspec diff --git a/scripts/gdb/Makefile.am b/scripts/gdb/Makefile.am index fd29ad67cc..f4d60a92ca 100644 --- a/scripts/gdb/Makefile.am +++ b/scripts/gdb/Makefile.am @@ -2,6 +2,8 @@ ## $Id$ ## +include $(top_srcdir)/common/common.am + MKSPEC = $(SHELL) ./mkspec SUBPACKAGES = header.add diff --git a/scripts/rtems/Makefile.am b/scripts/rtems/Makefile.am index adca9d2e7f..39856c4f5d 100644 --- a/scripts/rtems/Makefile.am +++ b/scripts/rtems/Makefile.am @@ -2,6 +2,7 @@ ## $Id$ ## +include $(top_srcdir)/common/common.am MKBSPSPEC = $(SHELL) $(top_builddir)/mkbspspec diff --git a/scripts/rtemsdoc/Makefile.am b/scripts/rtemsdoc/Makefile.am index fd205e54e4..c294037973 100644 --- a/scripts/rtemsdoc/Makefile.am +++ b/scripts/rtemsdoc/Makefile.am @@ -2,6 +2,8 @@ ## $Id$ ## +include ${top_srcdir}/common/common.am + CLEANFILES = MKSPEC = $(SHELL) ./mkspec -- cgit v1.2.3