Patch rtems-rc-4.5.0-21.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>

which splits the current monolithic specs files into a sequence of
subparts.  These can be concatenated togather to make a the whole .spec
file.  This cleans up the maintenance problem of having "all languages"
and a "C/C++ only" gccnewlib spec files.  Plus it should make it easier
to produce variants like the gdb-m68k-bdm which require special hackery. :)
Ralf's comments:

  It addresses the way *.spec.in get composed inside of the source
  tree.

  Changes:
    * Each spec.in is broken into several files (*.add), one *.add file
      per sub-package.
    * Each Makefile.am composes spec.ins from the *.add files
    * Removal of redundant automake support files.
    * Default value for BuildRoot changed to /tmp/<spec-file-name>
    * %clean stage added to *specs

  Advantages (IMHO).
    * The *.add files are easier to adminstrate and more flexible in
      comparison to the former *.specs.ins.
    * gccnewlib_c_only.spec.in now is composed from the same sources as
      gccnewlib.spec.in (less errors)
    * If using the default BuildRoot --clean now deletes all files that
      were generated while building.

  Notes:
    * rtems.spec.in has not yet been adapted to the scheme used for the
      other *spec.ins
    * Except for cosmetical changes the internals of the  *.spec files
      should not have changed.

  To Apply:
    cvs rm -f scripts/binutils/binutils.spec.in
    cvs rm -f scripts/gccnewlib/gccnewlib.spec.in
    cvs rm -f scripts/gccnewlib/gccnewlib_c_only.spec.in
    cvs rm -f scripts/gdb/gdb.spec.in
    cvs rm -f scripts/config.sub
    cvs rm -f scripts/config.guess
    cvs rm -f scripts/install-sh
    cvs rm -f scripts/mkinstalldirs
    cvs rm -f scripts/missing

    patch -p1 < rtems-rc-4.5.0-21.diff

    cvs add scripts/*/*.add
    cvs add scripts/*/README
This commit is contained in:
Joel Sherrill
2000-05-28 18:14:55 +00:00
parent 22095e222d
commit 63cf252f31
29 changed files with 785 additions and 3264 deletions

View File

@@ -6,6 +6,13 @@ AUTOMAKE_OPTIONS = foreign 1.4
MKBINUTILSSPEC = $(SHELL) $(top_builddir)/mkbinutilspec
SUBPACKAGES = binutils.add \
base-binutils.add target-binutils.add
binutils.spec.in: $(SUBPACKAGES)
cat $^ > $@
CLEANFILES += binutils.spec.in
MKBINUTILSSPEC_DEPS = $(top_builddir)/mkbinutilspec binutils.spec.in \
$(top_builddir)/setup.cache
@@ -39,18 +46,14 @@ sh-rtemself-$(BINUTILSVERS).spec: $(MKBINUTILSSPEC_DEPS)
sparc-rtems-$(BINUTILSVERS).spec: $(MKBINUTILSSPEC_DEPS)
$(MKBINUTILSSPEC) -cfg $(top_builddir)/setup.cache -o . sparc-rtems
TEMPLATES = binutils.spec.in
RPM_SPECS_DATA = hppa1.1-rtems-$(BINUTILSVERS).spec \
i386-rtems-$(BINUTILSVERS).spec i960-rtems-$(BINUTILSVERS).spec \
m68k-rtems-$(BINUTILSVERS).spec m68k-rtemself-$(BINUTILSVERS).spec \
mips64orion-rtems-$(BINUTILSVERS).spec \
powerpc-rtems-$(BINUTILSVERS).spec sh-rtems-$(BINUTILSVERS).spec \
sh-rtemself-$(BINUTILSVERS).spec sparc-rtems-$(BINUTILSVERS).spec
CLEANFILES += $(RPM_SPECS_DATA)
noinst_DATA = $(TEMPLATES)
EXTRA_DIST = $(SUBPACKAGES)
EXTRA_DIST = $(TEMPLATES)
CLEANFILES = $(RPM_SPECS_DATA)
include $(top_srcdir)/../automake/local.am

View File

@@ -0,0 +1,64 @@
# ==============================================================
# rtems-base-binutils
# ==============================================================
%package -n rtems-base-binutils
Provides: rtems-base-binutils
Summary: base package for rtems binutils
Group: rtems
%description -n 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
if test -d $RPM_INSTALL_PREFIX/rtems/info;
then
rm -f $RPM_INSTALL_PREFIX/rtems/info/dir
f=`find $RPM_INSTALL_PREFIX/rtems/info -name '*.info.gz'`
test x"$f" != x"" && for i in $f; do
install-info $i $RPM_INSTALL_PREFIX/rtems/info/dir
done
fi
%postun -n rtems-base-binutils
if test -d $RPM_INSTALL_PREFIX/rtems/info;
then
rm -f $RPM_INSTALL_PREFIX/rtems/info/dir
f=`find $RPM_INSTALL_PREFIX/rtems/info -name '*.info.gz'`
test x"$f" != x"" && for i in $f; do
install-info $i $RPM_INSTALL_PREFIX/rtems/info/dir
done
fi
%files -n rtems-base-binutils -f files
%dir /opt/rtems/info
%doc /opt/rtems/info/dir
%doc /opt/rtems/info/as.info.gz
%doc /opt/rtems/info/as.info-?.gz
%doc /opt/rtems/info/bfd.info.gz
%doc /opt/rtems/info/bfd.info-?.gz
%doc /opt/rtems/info/binutils.info.gz
%doc /opt/rtems/info/binutils.info-?.gz
%doc /opt/rtems/info/ld.info.gz
%doc /opt/rtems/info/ld.info-?.gz
%doc /opt/rtems/info/gasp.info.gz
%doc /opt/rtems/info/standards.info.gz
%dir /opt/rtems/man
%dir /opt/rtems/man/man1
%dir /opt/rtems/include
/opt/rtems/include/bfd.h
/opt/rtems/include/ansidecl.h
/opt/rtems/include/bfdlink.h
%dir /opt/rtems/lib
/opt/rtems/lib/libbfd*
/opt/rtems/lib/libiberty*
/opt/rtems/lib/libopcodes*
%dir /opt/rtems/share
%dir /opt/rtems/share/locale

View File

@@ -0,0 +1,93 @@
#
# spec file for binutils package targetting rtems
#
# Copyright (c) 1999,2000 OARCorp, Huntsville, AL
#
# please send bugfixes or comments to joel@OARcorp.com
#
Vendor: OAR Corporation
Distribution: Linux
Name: @target_alias@-binutils-collection
Summary: binutils for target @target_alias@
Group: rtems
Release: @Release@
License: GPL/LGPL
Autoreqprov: off
Packager: corsepiu@faw.uni-ulm.de and joel@OARcorp.com
Prefix: /opt
BuildRoot: /tmp/@target_alias@-binutils
Version: @binutils_version@
Source0: ftp://ftp.gnu.org/pub/gnu/binutils/binutils-@binutils_version@.tar.gz
Patch0: binutils-@binutils_version@-rtems-@binutils_patch_version@.diff
#
# 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 :-)
#
NoSource: 0
%description
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 -a 0
%patch0 -p0
test -d build || mkdir build
%build
cd build
../binutils-@binutils_version@/configure --target=@target_alias@ \
--verbose --prefix=/opt/rtems
make all
make info
%install
cd build
make prefix=$RPM_BUILD_ROOT/opt/rtems install
make prefix=$RPM_BUILD_ROOT/opt/rtems install-info
# A bug in binutils: binutils does not install share/locale
# however it uses it
../binutils-@binutils_version@/mkinstalldirs \
$RPM_BUILD_ROOT/opt/rtems/share/locale
# gzip info files
gzip -f $RPM_BUILD_ROOT/opt/rtems/info/*.info 2>/dev/null
gzip -f $RPM_BUILD_ROOT/opt/rtems/info/*.info-? 2>/dev/null
if test -f $RPM_BUILD_ROOT/opt/rtems/info/configure.info.gz;
then
# These are only present in binutils >= 2.9.5
find $RPM_BUILD_ROOT/opt/rtems/info -name 'configure.*' | \
sed -e "s,^$RPM_BUILD_ROOT,,g" > ../files
else
touch ../files
fi
# We assume that info/dir exists when building the RPMs
rm -f $RPM_BUILD_ROOT/opt/rtems/info/dir
f=`find $RPM_BUILD_ROOT/opt/rtems/info -name '*.info.gz'`
test x"$f" != x"" && for i in $f; do
install-info $i $RPM_BUILD_ROOT/opt/rtems/info/dir
done
%clean
# let rpm --clean remove BuildRoot iif using the default BuildRoot
test "$RPM_BUILD_ROOT" = "/tmp/@target_alias@-binutils" && \
rm -rf $RPM_BUILD_ROOT

View File

@@ -1,194 +0,0 @@
#
# spec file for binutils package targetting rtems
#
# Copyright (c) 1999 OARCorp, Huntsville, AL
#
# please send bugfixes or comments to joel@OARcorp.com
#
Vendor: OAR Corporation
Distribution: Linux
Name: @target_alias@-binutils-collection
Summary: binutils for target @target_alias@
Group: rtems
Release: @Release@
License: GPL/LGPL
Provides: rtems-base-binutils @target_alias@-binutils
Autoreqprov: on
Packager: corsepiu@faw.uni-ulm.de and joel@OARcorp.com
Prefix: /opt
Version: @binutils_version@
Source0: ftp://ftp.gnu.org/pub/gnu/binutils/binutils-@binutils_version@.tar.gz
Patch0: binutils-@binutils_version@-rtems-@binutils_patch_version@.diff
#
# 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 :-)
#
NoSource: 0
%description
RTEMS is an open source operating system for embedded systems.
This is binutils sources with patches for RTEMS.
%package -n rtems-base-binutils
Summary: base package for rtems binutils
Group: rtems
%description -n rtems-base-binutils
RTEMS is an open source operating system for embedded systems.
This is the base for binutils regardless of target CPU.
%package -n @target_alias@-binutils
Summary: rtems binutils for @target_alias@
Group: rtems
Requires: rtems-base-binutils
%description -n @target_alias@-binutils
RTEMS is an open source operating system for embedded systems.
This is the GNU binutils for RTEMS targetting @target_alias@.
Authors:
--------
Joel Sherrill (joel@oarcorp.com)
...
%prep
# untar the sources inside @target_alias@-binutils
%setup -c -n @target_alias@-binutils -a 0
%patch0 -p0
test -d build || mkdir build
%build
cd build
../binutils-@binutils_version@/configure --target=@target_alias@ \
--verbose --prefix=/opt/rtems
make all
make info
%install
cd build
make prefix=$RPM_BUILD_ROOT/opt/rtems install
make prefix=$RPM_BUILD_ROOT/opt/rtems install-info
# A bug in binutils: binutils does not install share/locale
# however it uses it
../binutils-@binutils_version@/mkinstalldirs \
$RPM_BUILD_ROOT/opt/rtems/share/locale
# gzip info files
gzip -f $RPM_BUILD_ROOT/opt/rtems/info/*.info 2>/dev/null
gzip -f $RPM_BUILD_ROOT/opt/rtems/info/*.info-? 2>/dev/null
if test -f $RPM_BUILD_ROOT/opt/rtems/info/configure.info.gz;
then
# These are only present in binutils >= 2.9.5
find $RPM_BUILD_ROOT/opt/rtems/info -name 'configure.*' | \
sed -e "s,^$RPM_BUILD_ROOT,,g" > ../files
else
touch ../files
fi
# We assume that info/dir exists when building the RPMs
rm -f $RPM_BUILD_ROOT/opt/rtems/info/dir
f=`find $RPM_BUILD_ROOT/opt/rtems/info -name '*.info.gz'`
test x"$f" != x"" && for i in $f; do
install-info $i $RPM_BUILD_ROOT/opt/rtems/info/dir
done
%post
if test -d $RPM_INSTALL_PREFIX/rtems/info;
then
rm -f $RPM_INSTALL_PREFIX/rtems/info/dir
f=`find $RPM_INSTALL_PREFIX/rtems/info -name '*.info.gz'`
test x"$f" != x"" && for i in $f; do
install-info $i $RPM_INSTALL_PREFIX/rtems/info/dir
done
fi
%postun
if test -d $RPM_INSTALL_PREFIX/rtems/info;
then
rm -f $RPM_INSTALL_PREFIX/rtems/info/dir
f=`find $RPM_INSTALL_PREFIX/rtems/info -name '*.info.gz'`
test x"$f" != x"" && for i in $f; do
install-info $i $RPM_INSTALL_PREFIX/rtems/info/dir
done
fi
%files -n rtems-base-binutils -f files
%dir /opt/rtems/info
%doc /opt/rtems/info/dir
%doc /opt/rtems/info/as.info.gz
%doc /opt/rtems/info/as.info-?.gz
%doc /opt/rtems/info/bfd.info.gz
%doc /opt/rtems/info/bfd.info-?.gz
%doc /opt/rtems/info/binutils.info.gz
%doc /opt/rtems/info/binutils.info-?.gz
%doc /opt/rtems/info/ld.info.gz
%doc /opt/rtems/info/ld.info-?.gz
%doc /opt/rtems/info/gasp.info.gz
%doc /opt/rtems/info/standards.info.gz
%dir /opt/rtems/man
%dir /opt/rtems/man/man1
%dir /opt/rtems/include
/opt/rtems/include/bfd.h
/opt/rtems/include/ansidecl.h
/opt/rtems/include/bfdlink.h
%dir /opt/rtems/lib
/opt/rtems/lib/libbfd*
/opt/rtems/lib/libiberty*
/opt/rtems/lib/libopcodes*
%dir /opt/rtems/share
%dir /opt/rtems/share/locale
%files -n @target_alias@-binutils
%doc /opt/rtems/man/man1/@target_alias@-*.1
%dir /opt/rtems/bin
/opt/rtems/bin/@target_alias@-addr2line@exe_ext@
/opt/rtems/bin/@target_alias@-ar@exe_ext@
/opt/rtems/bin/@target_alias@-as@exe_ext@
/opt/rtems/bin/@target_alias@-c++filt@exe_ext@
/opt/rtems/bin/@target_alias@-gasp@exe_ext@
/opt/rtems/bin/@target_alias@-ld@exe_ext@
/opt/rtems/bin/@target_alias@-nm@exe_ext@
/opt/rtems/bin/@target_alias@-objcopy@exe_ext@
/opt/rtems/bin/@target_alias@-objdump@exe_ext@
/opt/rtems/bin/@target_alias@-ranlib@exe_ext@
/opt/rtems/bin/@target_alias@-readelf@exe_ext@
/opt/rtems/bin/@target_alias@-size@exe_ext@
/opt/rtems/bin/@target_alias@-strings@exe_ext@
/opt/rtems/bin/@target_alias@-strip@exe_ext@
%dir /opt/rtems/@target_alias@
%dir /opt/rtems/@target_alias@/bin
/opt/rtems/@target_alias@/bin/ar@exe_ext@
/opt/rtems/@target_alias@/bin/as@exe_ext@
/opt/rtems/@target_alias@/bin/ld@exe_ext@
/opt/rtems/@target_alias@/bin/nm@exe_ext@
/opt/rtems/@target_alias@/bin/ranlib@exe_ext@
/opt/rtems/@target_alias@/bin/strip@exe_ext@
%dir /opt/rtems/@target_alias@/lib
/opt/rtems/@target_alias@/lib/ldscripts

View File

@@ -0,0 +1,46 @@
# ==============================================================
# @target_alias@-binutils
# ==============================================================
%package -n @target_alias@-binutils
Provides: @target_alias@-binutils
Summary: rtems binutils for @target_alias@
Group: rtems
Requires: rtems-base-binutils
Autoreqprov: off
%description -n @target_alias@-binutils
RTEMS is an open source operating system for embedded systems.
This is the GNU binutils for RTEMS targetting @target_alias@.
%files -n @target_alias@-binutils
%doc /opt/rtems/man/man1/@target_alias@-*.1
%dir /opt/rtems/bin
/opt/rtems/bin/@target_alias@-addr2line@exe_ext@
/opt/rtems/bin/@target_alias@-ar@exe_ext@
/opt/rtems/bin/@target_alias@-as@exe_ext@
/opt/rtems/bin/@target_alias@-c++filt@exe_ext@
/opt/rtems/bin/@target_alias@-gasp@exe_ext@
/opt/rtems/bin/@target_alias@-ld@exe_ext@
/opt/rtems/bin/@target_alias@-nm@exe_ext@
/opt/rtems/bin/@target_alias@-objcopy@exe_ext@
/opt/rtems/bin/@target_alias@-objdump@exe_ext@
/opt/rtems/bin/@target_alias@-ranlib@exe_ext@
/opt/rtems/bin/@target_alias@-readelf@exe_ext@
/opt/rtems/bin/@target_alias@-size@exe_ext@
/opt/rtems/bin/@target_alias@-strings@exe_ext@
/opt/rtems/bin/@target_alias@-strip@exe_ext@
%dir /opt/rtems/@target_alias@
%dir /opt/rtems/@target_alias@/bin
/opt/rtems/@target_alias@/bin/ar@exe_ext@
/opt/rtems/@target_alias@/bin/as@exe_ext@
/opt/rtems/@target_alias@/bin/ld@exe_ext@
/opt/rtems/@target_alias@/bin/nm@exe_ext@
/opt/rtems/@target_alias@/bin/ranlib@exe_ext@
/opt/rtems/@target_alias@/bin/strip@exe_ext@
%dir /opt/rtems/@target_alias@/lib
/opt/rtems/@target_alias@/lib/ldscripts