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,12 @@ AUTOMAKE_OPTIONS = foreign 1.4
MKGDBSPEC = $(SHELL) $(top_builddir)/mkgdbspec
SUBPACKAGES = gdb.add base-gdb.add target-gdb.add
gdb.spec.in: $(SUBPACKAGES)
cat $^ > $@
CLEANFILES += gdb.spec.in
MKGDBSPEC_DEPS = $(top_builddir)/mkgdbspec gdb.spec.in \
$(top_builddir)/setup.cache
@@ -39,17 +45,13 @@ sh-rtemself-$(GDBVERS).spec: $(MKGDBSPEC_DEPS)
sparc-rtems-$(GDBVERS).spec: $(MKGDBSPEC_DEPS)
$(MKGDBSPEC) -cfg $(top_builddir)/setup.cache -o . sparc-rtems
TEMPLATES = gdb.spec.in
RPM_SPECS_DATA = hppa1.1-rtems-$(GDBVERS).spec i386-rtems-$(GDBVERS).spec \
i960-rtems-$(GDBVERS).spec m68k-rtems-$(GDBVERS).spec \
m68k-rtemself-$(GDBVERS).spec mips64orion-rtems-$(GDBVERS).spec \
powerpc-rtems-$(GDBVERS).spec sh-rtems-$(GDBVERS).spec \
sh-rtemself-$(GDBVERS).spec sparc-rtems-$(GDBVERS).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,55 @@
# =====================================================================
# rtems-base-gdb
# =====================================================================
%package -n rtems-base-gdb
Provides: rtems-base-gdb
Summary: base package for rtems gdb
Group: rtems
%description -n rtems-base-gdb
RTEMS is an open source operating system for embedded systems.
This is the base for gdb regardless of target CPU.
%files -n rtems-base-gdb
%dir /opt/rtems/info
%doc /opt/rtems/info/gdb.info*
%doc /opt/rtems/info/mmalloc.info*
%doc /opt/rtems/info/readline.info*
%dir /opt/rtems/man
%dir /opt/rtems/man/man1
%dir /opt/rtems/include
# We install libbfd from binutils
# /opt/rtems/include/bfd.h
# /opt/rtems/include/bfdlink.h
%dir /opt/rtems/lib
# We install libbfd from binutils
# /opt/rtems/lib/libbfd*
# We use libiberty from gcc
# /opt/rtems/lib/libiberty*
%post -n rtems-base-gdb
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 -n "$f" && for i in $f; do
install-info $i $RPM_INSTALL_PREFIX/rtems/info/dir
done
fi
%postun -n rtems-base-gdb
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 -n "$f" && for i in $f; do
install-info $i $RPM_INSTALL_PREFIX/rtems/info/dir
done
fi

View File

@@ -0,0 +1,75 @@
#
# spec file for package rtems
#
# Copyright (c) 1999 OARCorp, Huntsville, AL
#
# please send bugfixes or comments to joel@OARcorp.com
#
# neededforbuild -- nothing
Vendor: OAR Corporation
Distribution: Linux
Name: @target_alias@-gdb-collection
Release: @Release@
License: GPL/LGPL
Group: rtems
Autoreqprov: on
Packager: corsepiu@faw.uni-ulm.de and joel@OARcorp.com
Version: @gdb_version@
Summary: gdb for target @target_alias@
Source0: ftp://ftp.gnu.org/pub/gnu/gdb-@gdb_version@.tar.gz
Patch0: gdb-@gdb_version@-rtems-@gdb_patch_version@.diff
Buildroot: /tmp/@target_alias@-gdb
#
# 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 the GNU gdb for RTEMS targetting @target_alias@.
%prep
echo RPM_BUILD_ROOT=${RPM_BUILD_ROOT}
# untar the sources inside @target_alias@-gdb
%setup -c -n @target_alias@-gdb -a 0
%patch0 -p0
%build
test -d build || mkdir build
cd build
../gdb-@gdb_version@/configure --target=@target_alias@ \
--verbose --prefix=/opt/rtems @extra_configure_arguments@
make all
make info
%install
cd build
make prefix=$RPM_BUILD_ROOT/opt/rtems install
make prefix=$RPM_BUILD_ROOT/opt/rtems install-info
# 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
gzip -f $RPM_BUILD_ROOT/opt/rtems/info/*.info-?? 2>/dev/null
%clean
# let rpm --clean remove BuildRoot iif using the default BuildRoot
test "$RPM_BUILD_ROOT" = "/tmp/@target_alias@-gdb" && \
rm -rf $RPM_BUILD_ROOT

View File

@@ -1,144 +0,0 @@
#
# spec file for package rtems
#
# Copyright (c) 1999 OARCorp, Huntsville, AL
#
# please send bugfixes or comments to joel@OARcorp.com
#
# neededforbuild -- nothing
Vendor: OAR Corporation
Distribution: Linux
Name: @target_alias@-gdb-collection
Release: @Release@
License: GPL/LGPL
Group: rtems
Provides: rtems-base-gdb @target_alias@-gdb
Autoreqprov: on
Packager: corsepiu@faw.uni-ulm.de and joel@OARcorp.com
Version: @gdb_version@
Summary: gdb for target @target_alias@
Source0: ftp://ftp.gnu.org/pub/gnu/gdb-@gdb_version@.tar.gz
Patch0: gdb-@gdb_version@-rtems-@gdb_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 the GNU gdb for RTEMS targetting @target_alias@.
%package -n rtems-base-gdb
Summary: base package for rtems gdb
Group: rtems
%description -n rtems-base-gdb
RTEMS is an open source operating system for embedded systems.
This is the base for gdb regardless of target CPU.
%package -n @target_alias@-gdb
Summary: rtems gdb for @target_alias@
Group: rtems
Requires: rtems-base-gdb
%description -n @target_alias@-gdb
RTEMS is an open source operating system for embedded systems.
This is the GNU gdb for RTEMS targetting @target_alias@.
Authors:
--------
Joel Sherrill (joel@oarcorp.com)
...
%prep
echo RPM_BUILD_ROOT=${RPM_BUILD_ROOT}
# untar the sources inside @target_alias@-gdb
%setup -c -n @target_alias@-gdb -a 0
%patch0 -p0
%build
test -d build || mkdir build
cd build
../gdb-@gdb_version@/configure --target=@target_alias@ \
--verbose --prefix=/opt/rtems @extra_configure_arguments@
make all
make info
%install
cd build
make prefix=$RPM_BUILD_ROOT/opt/rtems install
make prefix=$RPM_BUILD_ROOT/opt/rtems install-info
# 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
gzip -f $RPM_BUILD_ROOT/opt/rtems/info/*.info-?? 2>/dev/null
%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 -n "$f" && 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 -n "$f" && for i in $f; do
install-info $i $RPM_INSTALL_PREFIX/rtems/info/dir
done
fi
%files -n rtems-base-gdb
%dir /opt/rtems/info
%doc /opt/rtems/info/gdb.info*
%doc /opt/rtems/info/mmalloc.info*
%doc /opt/rtems/info/readline.info*
%dir /opt/rtems/man
%dir /opt/rtems/man/man1
%dir /opt/rtems/include
# We install libbfd from binutils
# /opt/rtems/include/bfd.h
# /opt/rtems/include/bfdlink.h
%dir /opt/rtems/lib
# We install libbfd from binutils
# /opt/rtems/lib/libbfd*
# We use libiberty from gcc
# /opt/rtems/lib/libiberty*
%files -n @target_alias@-gdb
%doc /opt/rtems/man/man1/@target_alias@-gdb.1
%dir /opt/rtems/bin
/opt/rtems/bin/@target_alias@-gdb@exe_ext@

View File

@@ -0,0 +1,21 @@
# =====================================================================
# @target_alias@-gdb
# =====================================================================
%package -n @target_alias@-gdb
Provides: @target_alias@-gdb
Summary: rtems gdb for @target_alias@
Group: rtems
Requires: rtems-base-gdb
%description -n @target_alias@-gdb
RTEMS is an open source operating system for embedded systems.
This is the GNU gdb for RTEMS targetting @target_alias@.
%files -n @target_alias@-gdb
%doc /opt/rtems/man/man1/@target_alias@-gdb.1
%dir /opt/rtems/bin
/opt/rtems/bin/@target_alias@-gdb@exe_ext@