First cut at adding RPM scripts for building GNAT/RTEMS RPMs.

This commit is contained in:
Joel Sherrill
2000-01-26 19:56:54 +00:00
parent a1f89b42a8
commit 64ab2e9eeb
22 changed files with 2026 additions and 0 deletions

28
scripts-ada/Makefile.am Normal file
View File

@@ -0,0 +1,28 @@
AUTOMAKE_OPTIONS = foreign
SUBDIRS = . binutils gnatnewlib gdb rtems
noinst_SCRIPTS = \
setup \
buildall \
mkbinutilspec \
mkbspspec \
mkgnatnewlibspec \
mkgdbspec \
mkrpms \
mkspec
TEMPLATES =
noinst_DATA = \
setup.def $(TEMPLATES)
EXTRA_DIST = \
$(noinst_DATA) \
$(noinst_SCRIPTS)
CONFIGURE_DEPENDENCIES = setup.cache
setup.cache: setup.def
cp setup.def $@
DISTCLEANFILES = setup.cache

5
scripts-ada/README Normal file
View File

@@ -0,0 +1,5 @@
#
# $Id$
#
This directory contains the scripts used to build RPMS for GNAT/RTEMS.

6
scripts-ada/TODO Normal file
View File

@@ -0,0 +1,6 @@
#
# $Id$
#
There is plenty left to do on this :)

View File

@@ -0,0 +1,61 @@
## $Id$
AUTOMAKE_OPTIONS = foreign
MKBINUTILSSPEC = $(SHELL) $(top_builddir)/mkbinutilspec
MKBINUTILSSPEC_DEPS = \
$(top_builddir)/mkbinutilspec binutils.spec.in $(top_builddir)/setup.cache
hppa1.1-rtems-$(BINUTILSVERS).spec: $(MKBINUTILSSPEC_DEPS)
$(MKBINUTILSSPEC) -cfg $(top_builddir)/setup.cache -o . hppa1.1-rtems
i386-rtems-$(BINUTILSVERS).spec: $(MKBINUTILSSPEC_DEPS)
$(MKBINUTILSSPEC) -cfg $(top_builddir)/setup.cache -o . i386-rtems
i960-rtems-$(BINUTILSVERS).spec: $(MKBINUTILSSPEC_DEPS)
$(MKBINUTILSSPEC) -cfg $(top_builddir)/setup.cache -o . i960-rtems
m68k-rtems-$(BINUTILSVERS).spec: $(MKBINUTILSSPEC_DEPS)
$(MKBINUTILSSPEC) -cfg $(top_builddir)/setup.cache -o . m68k-rtems
m68k-rtemself-$(BINUTILSVERS).spec: $(MKBINUTILSSPEC_DEPS)
$(MKBINUTILSSPEC) -cfg $(top_builddir)/setup.cache -o . m68k-rtemself
mips64orion-rtems-$(BINUTILSVERS).spec: $(MKBINUTILSSPEC_DEPS)
$(MKBINUTILSSPEC) -cfg $(top_builddir)/setup.cache -o . mips64orion-rtems
powerpc-rtems-$(BINUTILSVERS).spec: $(MKBINUTILSSPEC_DEPS)
$(MKBINUTILSSPEC) -cfg $(top_builddir)/setup.cache -o . powerpc-rtems
sh-rtems-$(BINUTILSVERS).spec: $(MKBINUTILSSPEC_DEPS)
$(MKBINUTILSSPEC) -cfg $(top_builddir)/setup.cache -o . sh-rtems
sh-rtemself-$(BINUTILSVERS).spec: $(MKBINUTILSSPEC_DEPS)
$(MKBINUTILSSPEC) -cfg $(top_builddir)/setup.cache -o . sh-rtemself
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
noinst_DATA = \
$(TEMPLATES)
EXTRA_DIST = \
$(TEMPLATES)
CLEANFILES = $(RPM_SPECS_DATA)

View File

@@ -0,0 +1,187 @@
#
# 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@
Copyright: 1999 OARCorp
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
%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

192
scripts-ada/buildall.in Normal file
View File

@@ -0,0 +1,192 @@
#! /bin/sh
#
# Generate all the specs and then cycle through building them.
#
RTEMS_DIR=`dirname $0`
CFG=./setup.cache
dst=@RPM_SPECSdir@
usage()
{
echo "$0 [options] <target_alias>"
echo " options:"
echo " -cfg <setup.cache>"
echo " -o <rpm-spec-dir>"
exit 1 ;
}
while test $# -ge 1; do
case $1 in
-cfg)
test $# -ge 2 || usage
shift
CFG=$1
shift
;;
-o)
test $# -ge 2 || usage
shift
dst=$1
shift
;;
-*)
echo "invalid option $1";
usage
;;
*)
TARGETS="${TARGETS} $1"
shift
;;
esac
done
# This is the full list .. hppa1.1 does not build now.
#ALL_TARGETS="hppa1.1-rtems i386-rtems i960-rtems m68k-rtems \
# m68k-rtemself mips64orion-rtems \
# powerpc-rtems sh-rtems sh-rtemself sparc-rtems"
# This is the full buildable set.
if [ "X${TARGETS}" = "X" ] ; then
TARGETS="i386-rtems i960-rtems m68k-rtems \
mips64orion-rtems powerpc-rtems sh-rtems sparc-rtems"
fi
. $CFG
binutils=${binutils_version}
gcc=${gcc_version}
gdb=${gdb_version}
newlib=${newlib_version}
# also use binutils_rpm_release
buildroot=/tmp
testing=no
do_binutils=yes
do_gnatnewlib=yes
do_gdb=yes
#
# Now get started
#
start=`date`
echo PATH=$PATH
if [ ${testing} = yes ] ; then
ECHO=echo
fi
installed_count=`rpm -qa | grep rtems | wc -l`
if [ ${installed_count} -ne 0 ] ; then
echo This script should be run with NO rtems RPMs installed.
echo It appears that the following rtems RPMs are installed:
echo
rpm -qa | grep rtems
echo
echo Please remove these and restart this script.
exit 1
fi
echo Copying specs files.
if [ ${testing} = no ] ; then
cd ${RTEMS_DIR}
# ./configure || exit 1
make || exit 1
# Now generate all the specs
for target in ${TARGETS}
do
tspecs=`find . -name "${target}*"`
if [ "X${tspecs}" = "X" ] ; then
echo RPM specifications were not generated for ${tspec}.
exit 1
fi
${ECHO} cp -r ${tspecs} ${dst}
done
fi
# clean up a bit before we start
cd ${dst}
test -d log || mkdir log
# do all the tools
for target in ${TARGETS}
do
if [ ${do_binutils} = yes ] ; then
logfile=log/${target}-binutils
specfile=${dst}/${target}-binutils-${binutils}.spec
echo "rpm -ba ${specfile} >${logfile} 2>&1"
if [ ${testing} = no ] ; then
rpm -ba ${specfile} >${logfile} 2>&1
fi
${ECHO} rm -rf ${dst}/../BUILD/${target}-binutils*
${ECHO} rm -rf ${buildroot}/opt/rtems
else
echo Skipping binutils for ${target}
fi
#
# build gcc/newlib
#
if [ ${do_gnatnewlib} = yes ] ; then
# now build gcc/newlib
# NOTE: This requires having binutils installed and we immediately
# remove it once finished.
base_binutils_rpm=${dst}/../RPMS/i386/rtems-base-binutils-${binutils}-${binutils_rpm_release}.i386.rpm
binutils_rpm=${dst}/../RPMS/i386/${target}-binutils-${binutils}-${binutils_rpm_release}.i386.rpm
if [ ! -f ${binutils_rpm} ] ; then
echo There is no RPM for binutils for ${target}.
echo Looked for ${binutils_rpm}.
fi
${ECHO} rpm -i ${base_binutils_rpm}
${ECHO} rpm -i ${binutils_rpm}
logfile=log/${target}-gnatnewlib
specfile=${dst}/${target}-gcc-${gcc}-newlib-${newlib}.spec
echo "rpm -ba ${specfile} >${logfile} 2>&1"
if [ ${testing} = no ] ; then
rpm -ba ${specfile} >${logfile} 2>&1
fi
${ECHO} rm -rf ${dst}/../BUILD/${target}-gcc*
${ECHO} rm -rf ${buildroot}/opt/rtems
echo uninstalling binutils for ${target}
if [ ${testing} = no ] ; then
rpm -e `rpm -qa | grep rtems`
rm -rf /opt/rtems/*
fi
else
echo Skipping gcc/newlib for ${target}
fi
#
# build gdb
#
if [ ${do_gdb} = yes ] ; then
# now build gdb
logfile=log/${target}-gdb
specfile=${dst}/${target}-gdb-${gdb}.spec
echo "rpm -ba ${specfile} >${logfile} 2>&1"
if [ ${testing} = no ] ; then
rpm -ba ${specfile} >${logfile} 2>&1
fi
${ECHO} rm -rf ${dst}/../BUILD/${target}-gdb*
${ECHO} rm -rf ${buildroot}/opt/rtems
else
echo Skipping gdb for ${target}
fi
done
# Now we are done
stop=`date`
echo
echo "Started: " $start
echo "Finished: " $stop
exit 0

51
scripts-ada/configure.in Normal file
View File

@@ -0,0 +1,51 @@
## $Id$
AC_INIT(binutils)
AM_INIT_AUTOMAKE(scripts,20000125-0,no)
AC_EXEEXT
test -f ./setup.cache || cp ${srcdir}/setup.def ./setup.cache
. ./setup.cache
# Some linux distributions use /usr/src/packages
# redhat uses /usr/src/redhat
# others might use /usr/src
AC_MSG_CHECKING(for rpm SPECS directory)
if test -d /usr/src/packages/SPECS;
then
RPM_SPECSdir=/usr/src/packages/SPECS;
elif test -d /usr/src/redhat/SPECS;
then
RPM_SPECSdir=/usr/src/redhat/SPECS;
elif test -d /usr/src/SPECS/;
then
RPM_SPECSdir=/usr/src/SPECS;
fi
if test x"$RPM_SPECSdir" = x"" ; then
AC_MSG_ERROR(not found)
fi
AC_MSG_RESULT($RPM_SPECSdir)
AC_SUBST(RPM_SPECSdir)
GCCNEWLIBVERS="gcc-${gcc_version}-newlib-${newlib_version}"
AC_SUBST(GCCNEWLIBVERS)
BINUTILSVERS="binutils-${binutils_version}"
AC_SUBST(BINUTILSVERS)
GDBVERS="gdb-${gdb_version}"
AC_SUBST(GDBVERS)
BSPVERS="${rtems_version}"
AC_SUBST(RTEMS_VERSION)
AC_SUBST(BSPVERS)
AC_OUTPUT(
Makefile
buildall
mkbinutilspec
mkgnatnewlibspec
mkgdbspec
mkbspspec
binutils/Makefile
gnatnewlib/Makefile
gdb/Makefile
)

View File

@@ -0,0 +1,59 @@
AUTOMAKE_OPTIONS = foreign
MKGDBSPEC = $(SHELL) $(top_builddir)/mkgdbspec
MKGDBSPEC_DEPS = \
$(top_builddir)/mkgdbspec gdb.spec.in $(top_builddir)/setup.cache
hppa1.1-rtems-$(GDBVERS).spec: $(MKGDBSPEC_DEPS)
$(MKGDBSPEC) -cfg $(top_builddir)/setup.cache -o . hppa1.1-rtems
i386-rtems-$(GDBVERS).spec: $(MKGDBSPEC_DEPS)
$(MKGDBSPEC) -cfg $(top_builddir)/setup.cache -o . i386-rtems
i960-rtems-$(GDBVERS).spec: $(MKGDBSPEC_DEPS)
$(MKGDBSPEC) -cfg $(top_builddir)/setup.cache -o . i960-rtems
m68k-rtems-$(GDBVERS).spec: $(MKGDBSPEC_DEPS)
$(MKGDBSPEC) -cfg $(top_builddir)/setup.cache -o . m68k-rtems
m68k-rtemself-$(GDBVERS).spec: $(MKGDBSPEC_DEPS)
$(MKGDBSPEC) -cfg $(top_builddir)/setup.cache -o . m68k-rtemself
mips64orion-rtems-$(GDBVERS).spec: $(MKGDBSPEC_DEPS)
$(MKGDBSPEC) -cfg $(top_builddir)/setup.cache -o . mips64orion-rtems
powerpc-rtems-$(GDBVERS).spec: $(MKGDBSPEC_DEPS)
$(MKGDBSPEC) -cfg $(top_builddir)/setup.cache -o . powerpc-rtems
sh-rtems-$(GDBVERS).spec: $(MKGDBSPEC_DEPS)
$(MKGDBSPEC) -cfg $(top_builddir)/setup.cache -o . sh-rtems
sh-rtemself-$(GDBVERS).spec: $(MKGDBSPEC_DEPS)
$(MKGDBSPEC) -cfg $(top_builddir)/setup.cache -o . sh-rtemself
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
noinst_DATA = \
$(TEMPLATES)
EXTRA_DIST = \
$(TEMPLATES)
CLEANFILES = $(RPM_SPECS_DATA)

144
scripts-ada/gdb/gdb.spec.in Normal file
View File

@@ -0,0 +1,144 @@
#
# 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@
Copyright: 1999 OARCorp
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,61 @@
## $Id$
AUTOMAKE_OPTIONS = foreign
MKGNATNEWLIBSPEC = $(SHELL) $(top_builddir)/mkgnatnewlibspec
MKGNATNEWLIBSPEC_DEPS = \
$(top_builddir)/mkgnatnewlibspec gnatnewlib.spec.in $(top_builddir)/setup.cache
hppa1.1-rtems-$(GNATNEWLIBVERS).spec: $(MKGNATNEWLIBSPEC_DEPS)
$(MKGNATNEWLIBSPEC) -cfg $(top_builddir)/setup.cache -o . hppa1.1-rtems
i386-rtems-$(GNATNEWLIBVERS).spec: $(MKGNATNEWLIBSPEC_DEPS)
$(MKGNATNEWLIBSPEC) -cfg $(top_builddir)/setup.cache -o . i386-rtems
i960-rtems-$(GNATNEWLIBVERS).spec: $(MKGNATNEWLIBSPEC_DEPS)
$(MKGNATNEWLIBSPEC) -cfg $(top_builddir)/setup.cache -o . i960-rtems
m68k-rtems-$(GNATNEWLIBVERS).spec: $(MKGNATNEWLIBSPEC_DEPS)
$(MKGNATNEWLIBSPEC) -cfg $(top_builddir)/setup.cache -o . m68k-rtems
m68k-rtemself-$(GNATNEWLIBVERS).spec: $(MKGNATNEWLIBSPEC_DEPS)
$(MKGNATNEWLIBSPEC) -cfg $(top_builddir)/setup.cache -o . m68k-rtemself
mips64orion-rtems-$(GNATNEWLIBVERS).spec: $(MKGNATNEWLIBSPEC_DEPS)
$(MKGNATNEWLIBSPEC) -cfg $(top_builddir)/setup.cache -o . mips64orion-rtems
powerpc-rtems-$(GNATNEWLIBVERS).spec: $(MKGNATNEWLIBSPEC_DEPS)
$(MKGNATNEWLIBSPEC) -cfg $(top_builddir)/setup.cache -o . powerpc-rtems
sh-rtems-$(GNATNEWLIBVERS).spec: $(MKGNATNEWLIBSPEC_DEPS)
$(MKGNATNEWLIBSPEC) -cfg $(top_builddir)/setup.cache -o . sh-rtems
sh-rtemself-$(GNATNEWLIBVERS).spec: $(MKGNATNEWLIBSPEC_DEPS)
$(MKGNATNEWLIBSPEC) -cfg $(top_builddir)/setup.cache -o . sh-rtemself
sparc-rtems-$(GNATNEWLIBVERS).spec: $(MKGNATNEWLIBSPEC_DEPS)
$(MKGNATNEWLIBSPEC) -cfg $(top_builddir)/setup.cache -o . sparc-rtems
TEMPLATES = \
gnatnewlib.spec.in
RPM_SPECS_DATA = \
hppa1.1-rtems-$(GNATNEWLIBVERS).spec \
i386-rtems-$(GNATNEWLIBVERS).spec \
i960-rtems-$(GNATNEWLIBVERS).spec \
m68k-rtems-$(GNATNEWLIBVERS).spec \
m68k-rtemself-$(GNATNEWLIBVERS).spec \
mips64orion-rtems-$(GNATNEWLIBVERS).spec \
powerpc-rtems-$(GNATNEWLIBVERS).spec \
sh-rtems-$(GNATNEWLIBVERS).spec \
sh-rtemself-$(GNATNEWLIBVERS).spec \
sparc-rtems-$(GNATNEWLIBVERS).spec
noinst_DATA = \
$(TEMPLATES)
EXTRA_DIST = \
$(TEMPLATES)
CLEANFILES = $(RPM_SPECS_DATA)

View File

@@ -0,0 +1,296 @@
#
# spec file for building gcc for rtems
#
# Copyright (c) 1999 OARCorp, Huntsville, AL
#
# please send bugfixes or comments to joel@OARcorp.com
#
Vendor: OAR Corporation
Distribution: Linux
Name: @target_alias@-gnat-gcc-newlib
Summary: gnat, gcc, and newlib C Library for @target_alias@.
Group: rtems
Release: @Release@
Copyright: 1999 OARCorp
Provides: rtems-base-gnat @target_alias@-gnat
Requires: @target_alias@-binutils
Autoreqprov: on
Packager: corsepiu@faw.uni-ulm.de and joel@OARcorp.com
Version: gnat@gnat_version@newlib@newlib_version@
Source0: ftp://ftp.gnu.org/pub/gnu/gcc/gcc-@gcc_version@.tar.gz
Source1: ftp://sourceware.cygnus/com/pub/newlib/newlib-@newlib_version@.tar.gz
Source2: ftp://cs.nyu.edu/pub/gnat/gnat-@gnat_version@.tar.gz
Patch0: gcc-@gcc_version@-gnatrtems-@gcc_patch_version@.diff
Patch1: newlib-@newlib_version@-rtems-@newlib_patch_version@.diff
Buildroot: /tmp
#
# 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, 1, 2
%description
RTEMS is an open source operating system for embedded systems.
This is gcc's and newlib C Library's sources with patches for RTEMS.
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 :-)
%package -n rtems-base-gnat
Summary: base package for rtems gnat, gcc, and newlib C Library
Group: rtems
%description -n rtems-base-gnat
RTEMS is an open source operating system for embedded systems.
This is the files for gnat, gcc, and newlib that are shared by all targets.
%package -n @target_alias@-gnat
Summary: rtems gnat, gcc, and newlib C Library for @target_alias@
Group: rtems
Requires: @target_alias@-binutils rtems-base-gcc
%description -n @target_alias@-gnat
RTEMS is an open source operating system for embedded systems.
This is gnat, gcc, and newlib C Library for @target_alias@.
%prep
# untar the sources inside @target_alias@-gcc-newlib
%setup -c -n @target_alias@-gcc-newlib -a 0 -a 1 -a 2
%patch0 -p0
%patch1 -p0
# Copy the C library into gcc's source tree
ln -s ../newlib-@newlib_version@/newlib gcc-@gcc_version@
test -d build || mkdir build
cp -r ../gnat-@gnat_version@-src/src/ada gcc-@gcc_version@
%patch2 -p0
touch gcc-@gcc_version@/ada/treeprs.ads
touch gcc-@gcc_version@/ada/a-[es]info.h
touch gcc-@gcc_version@/ada/nmake.ad[bs]
%build
cd build
../gcc-@gcc_version@/configure --target=@target_alias@ \
--with-gnu-as --with-gnu-ld --with-newlib --verbose \
--prefix=/opt/rtems
# for now we are building all the languages
# '--enable-languages=c,c++'
make all
make info
# Since gcc now finds the RTEMS limits.h, this should not be needed
# cd gcc
# rm -f stmp-multilib
# find . -name "*.a" -print | xargs -e rm -f
#
# make all
# cd ..
%install
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 @target_alias@/bin/gcc
../gcc-@gcc_version@/mkinstalldirs \
$RPM_BUILD_ROOT/opt/rtems/@target_alias@/bin
make prefix=$RPM_BUILD_ROOT/opt/rtems install
cd @target_alias@/newlib
make prefix=$RPM_BUILD_ROOT/opt/rtems install-info
# cd back to build/
cd ../..
# 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
rm -f dirs ;
echo "%dir /opt/rtems/lib" >> dirs ;
echo "%dir /opt/rtems/lib/gcc-lib" >> dirs ;
echo "%dir /opt/rtems/lib/gcc-lib/@target_alias@" >> dirs ;
# Collect multilib subdirectories
TGTDIR="$RPM_BUILD_ROOT/opt/rtems/lib/gcc-lib/@target_alias@/@gcc_version@"
find $TGTDIR \
\( -type d -a ! -path "$TGTDIR/include*" \) -print | \
sed -e "s,^$RPM_BUILD_ROOT,%dir ,g" >> dirs
# Collect files to go into different packages
cp dirs files.chill
cp dirs files.gcc
cp dirs files.g77
cp dirs files.objc
cp dirs files.gcj
f=`find $TGTDIR ! -type d -print | sed -e "s,^$RPM_BUILD_ROOT,,g"`;
for i in $f; do
case $i in
*chill*) echo "$i" >> files.chill ;;
*f771) ;;
*cc1obj) ;;
*libobjc*) echo "$i" >> files.objc ;;
*include/objc*) ;;
*jc1) ;;
*jvgenmain) ;;
*) echo "$i" >> files.gcc ;;
esac
done
%files -n @target_alias@-gcc -f build/files.gcc
%dir /opt/rtems/info
%doc /opt/rtems/info/dir
%doc /opt/rtems/info/cpp.info*
%doc /opt/rtems/info/gcc.info*
%doc /opt/rtems/info/libc.info*
%doc /opt/rtems/info/libm.info*
%dir /opt/rtems/man
%dir /opt/rtems/man/man1
%doc /opt/rtems/man/man1/cccp.1
%doc /opt/rtems/man/man1/@target_alias@-gcc.1
%doc /opt/rtems/man/man1/@target_alias@-g++.1
%dir /opt/rtems/bin
/opt/rtems/bin/cpp@exe_ext@
/opt/rtems/bin/gcov@exe_ext@
/opt/rtems/bin/@target_alias@-c++@exe_ext@
/opt/rtems/bin/@target_alias@-g++@exe_ext@
/opt/rtems/bin/@target_alias@-gcc@exe_ext@
/opt/rtems/bin/@target_alias@-protoize@exe_ext@
/opt/rtems/bin/@target_alias@-unprotoize@exe_ext@
%dir /opt/rtems/lib/gcc-lib/@target_alias@/@gcc_version@/include
%dir /opt/rtems/include
/opt/rtems/include/g++-3
/opt/rtems/@target_alias@
%post -n @target_alias@-gcc
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 @target_alias@-gcc
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 @target_alias@-chill -f build/files.chill
%dir /opt/rtems/bin
/opt/rtems/bin/@target_alias@-chill@exe_ext@
%dir /opt/rtems/info
%doc /opt/rtems/info/dir
%doc /opt/rtems/info/chill.info*
%post -n @target_alias@-chill
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 @target_alias@-chill
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 @target_alias@-gcj -f build/files.gcj
%dir /opt/rtems/bin
/opt/rtems/bin/jcf-dump@exe_ext@
/opt/rtems/bin/jv-scan@exe_ext@
/opt/rtems/bin/gcjh@exe_ext@
/opt/rtems/bin/@target_alias@-gcj@exe_ext@
/opt/rtems/lib/gcc-lib/@target_alias@/@gcc_version@/jc1@exe_ext@
/opt/rtems/lib/gcc-lib/@target_alias@/@gcc_version@/jvgenmain@exe_ext@
%files -n @target_alias@-g77 -f build/files.g77
%dir /opt/rtems/bin
/opt/rtems/bin/@target_alias@-g77@exe_ext@
%dir /opt/rtems/info
%doc /opt/rtems/info/g77.info*
%dir /opt/rtems/man
%dir /opt/rtems/man/man1
%doc /opt/rtems/man/man1/@target_alias@-g77.1
/opt/rtems/lib/gcc-lib/@target_alias@/@gcc_version@/f771@exe_ext@
%post -n @target_alias@-g77
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 @target_alias@-g77
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 @target_alias@-objc -f build/files.objc
/opt/rtems/lib/gcc-lib/@target_alias@/@gcc_version@/cc1obj@exe_ext@
/opt/rtems/lib/gcc-lib/@target_alias@/@gcc_version@/include/objc

251
scripts-ada/install-sh Executable file
View File

@@ -0,0 +1,251 @@
#!/bin/sh
#
# install - install a program, script, or datafile
# This comes from X11R5 (mit/util/scripts/install.sh).
#
# Copyright 1991 by the Massachusetts Institute of Technology
#
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
# the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation, and that the name of M.I.T. not be used in advertising or
# publicity pertaining to distribution of the software without specific,
# written prior permission. M.I.T. makes no representations about the
# suitability of this software for any purpose. It is provided "as is"
# without express or implied warranty.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch. It can only install one file at a time, a restriction
# shared with many OS's install programs.
# set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit="${DOITPROG-}"
# put in absolute paths if you don't have them in your path; or use env. vars.
mvprog="${MVPROG-mv}"
cpprog="${CPPROG-cp}"
chmodprog="${CHMODPROG-chmod}"
chownprog="${CHOWNPROG-chown}"
chgrpprog="${CHGRPPROG-chgrp}"
stripprog="${STRIPPROG-strip}"
rmprog="${RMPROG-rm}"
mkdirprog="${MKDIRPROG-mkdir}"
transformbasename=""
transform_arg=""
instcmd="$mvprog"
chmodcmd="$chmodprog 0755"
chowncmd=""
chgrpcmd=""
stripcmd=""
rmcmd="$rmprog -f"
mvcmd="$mvprog"
src=""
dst=""
dir_arg=""
while [ x"$1" != x ]; do
case $1 in
-c) instcmd="$cpprog"
shift
continue;;
-d) dir_arg=true
shift
continue;;
-m) chmodcmd="$chmodprog $2"
shift
shift
continue;;
-o) chowncmd="$chownprog $2"
shift
shift
continue;;
-g) chgrpcmd="$chgrpprog $2"
shift
shift
continue;;
-s) stripcmd="$stripprog"
shift
continue;;
-t=*) transformarg=`echo $1 | sed 's/-t=//'`
shift
continue;;
-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
shift
continue;;
*) if [ x"$src" = x ]
then
src=$1
else
# this colon is to work around a 386BSD /bin/sh bug
:
dst=$1
fi
shift
continue;;
esac
done
if [ x"$src" = x ]
then
echo "install: no input file specified"
exit 1
else
true
fi
if [ x"$dir_arg" != x ]; then
dst=$src
src=""
if [ -d $dst ]; then
instcmd=:
chmodcmd=""
else
instcmd=mkdir
fi
else
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if [ -f $src -o -d $src ]
then
true
else
echo "install: $src does not exist"
exit 1
fi
if [ x"$dst" = x ]
then
echo "install: no destination specified"
exit 1
else
true
fi
# If destination is a directory, append the input filename; if your system
# does not like double slashes in filenames, you may need to add some logic
if [ -d $dst ]
then
dst="$dst"/`basename $src`
else
true
fi
fi
## this sed command emulates the dirname command
dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
# Make sure that the destination directory exists.
# this part is taken from Noah Friedman's mkinstalldirs script
# Skip lots of stat calls in the usual case.
if [ ! -d "$dstdir" ]; then
defaultIFS='
'
IFS="${IFS-${defaultIFS}}"
oIFS="${IFS}"
# Some sh's can't handle IFS=/ for some reason.
IFS='%'
set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
IFS="${oIFS}"
pathcomp=''
while [ $# -ne 0 ] ; do
pathcomp="${pathcomp}${1}"
shift
if [ ! -d "${pathcomp}" ] ;
then
$mkdirprog "${pathcomp}"
else
true
fi
pathcomp="${pathcomp}/"
done
fi
if [ x"$dir_arg" != x ]
then
$doit $instcmd $dst &&
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
else
# If we're going to rename the final executable, determine the name now.
if [ x"$transformarg" = x ]
then
dstfile=`basename $dst`
else
dstfile=`basename $dst $transformbasename |
sed $transformarg`$transformbasename
fi
# don't allow the sed command to completely eliminate the filename
if [ x"$dstfile" = x ]
then
dstfile=`basename $dst`
else
true
fi
# Make a temp file name in the proper directory.
dsttmp=$dstdir/#inst.$$#
# Move or copy the file name to the temp name
$doit $instcmd $src $dsttmp &&
trap "rm -f ${dsttmp}" 0 &&
# and set any options; do chmod last to preserve setuid bits
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $instcmd $src $dsttmp" command.
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
# Now rename the file to the real destination.
$doit $rmcmd -f $dstdir/$dstfile &&
$doit $mvcmd $dsttmp $dstdir/$dstfile
fi &&
exit 0

190
scripts-ada/missing Executable file
View File

@@ -0,0 +1,190 @@
#! /bin/sh
# Common stub for a few missing GNU programs while installing.
# Copyright (C) 1996, 1997 Free Software Foundation, Inc.
# Franc,ois Pinard <pinard@iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
if test $# -eq 0; then
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
fi
case "$1" in
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
error status if there is no known handling for PROGRAM.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
Supported PROGRAM values:
aclocal touch file \`aclocal.m4'
autoconf touch file \`configure'
autoheader touch file \`config.h.in'
automake touch all \`Makefile.in' files
bison create \`y.tab.[ch]', if possible, from existing .[ch]
flex create \`lex.yy.c', if possible, from existing .c
lex create \`lex.yy.c', if possible, from existing .c
makeinfo touch the output file
yacc create \`y.tab.[ch]', if possible, from existing .[ch]"
;;
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
echo "missing - GNU libit 0.0"
;;
-*)
echo 1>&2 "$0: Unknown \`$1' option"
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
;;
aclocal)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`acinclude.m4' or \`configure.in'. You might want
to install the \`Automake' and \`Perl' packages. Grab them from
any GNU archive site."
touch aclocal.m4
;;
autoconf)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`configure.in'. You might want to install the
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
archive site."
touch configure
;;
autoheader)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`acconfig.h' or \`configure.in'. You might want
to install the \`Autoconf' and \`GNU m4' packages. Grab them
from any GNU archive site."
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' configure.in`
test -z "$files" && files="config.h"
touch_files=
for f in $files; do
case "$f" in
*:*) touch_files="$touch_files "`echo "$f" |
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
*) touch_files="$touch_files $f.in";;
esac
done
touch $touch_files
;;
automake)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'.
You might want to install the \`Automake' and \`Perl' packages.
Grab them from any GNU archive site."
find . -type f -name Makefile.am -print |
sed 's/\.am$/.in/' |
while read f; do touch "$f"; done
;;
bison|yacc)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a \`.y' file. You may need the \`Bison' package
in order for those modifications to take effect. You can get
\`Bison' from any GNU archive site."
rm -f y.tab.c y.tab.h
if [ $# -ne 1 ]; then
eval LASTARG="\${$#}"
case "$LASTARG" in
*.y)
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.c
fi
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.h
fi
;;
esac
fi
if [ ! -f y.tab.h ]; then
echo >y.tab.h
fi
if [ ! -f y.tab.c ]; then
echo 'main() { return 0; }' >y.tab.c
fi
;;
lex|flex)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a \`.l' file. You may need the \`Flex' package
in order for those modifications to take effect. You can get
\`Flex' from any GNU archive site."
rm -f lex.yy.c
if [ $# -ne 1 ]; then
eval LASTARG="\${$#}"
case "$LASTARG" in
*.l)
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" lex.yy.c
fi
;;
esac
fi
if [ ! -f lex.yy.c ]; then
echo 'main() { return 0; }' >lex.yy.c
fi
;;
makeinfo)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a \`.texi' or \`.texinfo' file, or any other file
indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy \`make' (AIX,
DU, IRIX). You might want to install the \`Texinfo' package or
the \`GNU make' package. Grab either from any GNU archive site."
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then
file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
fi
touch $file
;;
*)
echo 1>&2 "\
WARNING: \`$1' is needed, and you do not seem to have it handy on your
system. You might have modified some files without having the
proper tools for further handling them. Check the \`README' file,
it often tells you about the needed prerequirements for installing
this package. You may also peek at any GNU archive site, in case
some other package would contain this missing \`$1' program."
exit 1
;;
esac
exit 0

View File

@@ -0,0 +1,62 @@
#!/bin/sh
#
# Usage: mkbinutilspec CPU
#
RTEMS_DIR=`dirname $0`/@top_srcdir@
CFG=setup.cache
dst=@RPM_SPECSdir@
exe_ext=@EXEEXT@
usage()
{
echo "$0 [options] <target_alias>"
echo " options:"
echo " -cfg <setup.cache>"
echo " -o <rpm-spec-dir>"
exit 1 ;
}
while test $# -ge 2; do
case $1 in
-cfg)
shift
CFG=$1
shift
;;
-o)
shift
dst=$1
shift
;;
-*)
echo "invalid option $1";
usage
;;
esac
done
if test ! $# -eq 1;
then
echo "Invalid number of arguments"
usage
fi
# target to build for
target_alias=$1
. ./$CFG
specfile=${dst}/$target_alias-binutils-${binutils_version}.spec
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%@binutils_version@%${binutils_version}%g" \
-e "s%@binutils_patch_version@%${binutils_patch_version}%g" \
-e "s%@exe_ext@%${exe_ext}%g" \
< ${RTEMS_DIR}/binutils/binutils.spec.in \
> ${specfile}
echo Generated ${specfile}

62
scripts-ada/mkbspspec.in Normal file
View File

@@ -0,0 +1,62 @@
#!/bin/sh
#
RTEMS_DIR=`dirname $0`/@top_srcdir@
RTEMS_VERSION=@RTEMS_VERSION@
CFG=setup.cache
dst=@RPM_SPECSdir@
exe_ext=@EXEEXT@
usage()
{
echo "$0 [options] <target_alias> <bsp>"
echo " options:"
echo " -cfg <setup.cache>"
echo " -o <rpm-spec-dir>"
exit 1 ;
}
while test $# -ge 3; do
case $1 in
-cfg)
shift
CFG=$1
shift
;;
-o)
shift
dst=$1
shift
;;
-*)
echo "invalid option $1";
usage
;;
esac
done
if test ! $# -eq 2;
then
echo "Invalid number of arguments"
usage
fi
# target to build for
target_alias=$1
bsp=$2
. ./$CFG
specfile=${dst}/$target_alias-$bsp-${rtems_version}.spec
sed -e "s%@Release@%${rtems_rpm_release}%g" \
-e "s%@bsp@%${bsp}%g" \
-e "s%@rtems_version@%${rtems_version}%g" \
-e "s%@rpm_build_root@%${rpm_build_root}%g" \
-e "s%@target_alias@%${target_alias}%g" \
-e "s%@exe_ext@%${exe_ext}%g" \
< ${RTEMS_DIR}/rtems/rtems.spec.in \
> ${specfile}
echo Generated ${specfile}

88
scripts-ada/mkgdbspec.in Normal file
View File

@@ -0,0 +1,88 @@
#!/bin/sh
#
# Usage: mkgdbspec CPU
#
RTEMS_DIR=`dirname $0`/@top_srcdir@
CFG=setup.cache
dst=@RPM_SPECSdir@
exe_ext=@EXEEXT@
usage()
{
echo "$0 [options] <target_alias>"
echo " options:"
echo " -cfg <setup.cache>"
echo " -o <rpm-spec-dir>"
exit 1 ;
}
while test $# -ge 2; do
case $1 in
-cfg)
shift
CFG=$1
shift
;;
-o)
shift
dst=$1
shift
;;
-*)
echo "invalid option $1";
usage
;;
esac
done
if test ! $# -eq 1;
then
echo "Invalid number of arguments"
usage
fi
# target to build for
target_alias=$1
. ./$CFG
specfile=${dst}/$target_alias-gdb-${gdb_version}.spec
case ${target_alias} in
powerpc*)
extra_configure_arguments="--enable-sim --enable-sim-powerpc --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.
# --enable-sim-inline
;;
sparc*)
extra_configure_arguments="--enable-sim"
;;
*)
;;
esac
sed -e "s%@Release@%${gdb_rpm_release}%g" \
-e "s%@rpm_build_root@%${rpm_build_root}%g" \
-e "s%@target_alias@%${target_alias}%g" \
-e "s%@gdb_version@%${gdb_version}%g" \
-e "s%@gdb_patch_version@%${gdb_patch_version}%g" \
-e "s%@extra_configure_arguments@%${extra_configure_arguments}%g" \
-e "s%@exe_ext@%${exe_ext}%g" \
< ${RTEMS_DIR}/gdb/gdb.spec.in \
> ${specfile}
case ${target_alias} in
powerpc*)
echo "/opt/rtems/bin/${target_alias}-run${exe_ext}"
;;
sparc*)
echo "/opt/rtems/bin/${target_alias}-run${exe_ext}"
echo "/opt/rtems/bin/${target_alias}-sis${exe_ext}"
;;
*) ;;
esac >> ${specfile}
echo Generated ${specfile}

View File

@@ -0,0 +1,71 @@
#!/bin/sh
#
# Usage: mktoolspec CPU
#
RTEMS_DIR=`dirname $0`/@top_srcdir@
CFG=setup.cache
dst=@RPM_SPECSdir@
exe_ext=@EXEEXT@
usage()
{
echo "$0 [options] <target_alias>"
echo " options:"
echo " -cfg <setup.cache>"
echo " -o <rpm-spec-dir>"
exit 1 ;
}
specsrc=${RTEMS_DIR}/gnatnewlib/gnatnewlib.spec.in
while test $# -ge 2; do
case $1 in
-cfg)
shift
CFG=$1
shift
;;
-o)
shift
dst=$1
shift
;;
-a) # alternate specs file
shift
specsrc=$1
shift
;;
-*)
echo "invalid option $1";
usage
;;
esac
done
if test ! $# -eq 1;
then
echo "Invalid number of arguments"
usage
fi
# target to build for
target_alias=$1
. ./$CFG
specfile=${dst}/$target_alias-gcc-${gcc_version}-newlib-${newlib_version}.spec
sed -e "s%@Release@%${gnatnewlib_rpm_release}%g" \
-e "s%@target_alias@%${target_alias}%g" \
-e "s%@rpm_build_root@%${rpm_build_root}%g" \
-e "s%@gcc_version@%${gcc_version}%g" \
-e "s%@gcc_patch_version@%${gcc_patch_version}%g" \
-e "s%@newlib_version@%${newlib_version}%g" \
-e "s%@newlib_patch_version@%${newlib_patch_version}%g" \
-e "s%@exe_ext@%${exe_ext}%g" \
< ${specsrc} \
> ${specfile}
echo Generated ${specfile}.

40
scripts-ada/mkinstalldirs Executable file
View File

@@ -0,0 +1,40 @@
#! /bin/sh
# mkinstalldirs --- make directory hierarchy
# Author: Noah Friedman <friedman@prep.ai.mit.edu>
# Created: 1993-05-16
# Public domain
# $Id$
errstatus=0
for file
do
set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
shift
pathcomp=
for d
do
pathcomp="$pathcomp$d"
case "$pathcomp" in
-* ) pathcomp=./$pathcomp ;;
esac
if test ! -d "$pathcomp"; then
echo "mkdir $pathcomp"
mkdir "$pathcomp" || lasterr=$?
if test ! -d "$pathcomp"; then
errstatus=$lasterr
fi
fi
pathcomp="$pathcomp/"
done
done
exit $errstatus
# mkinstalldirs ends here

32
scripts-ada/mkrpms Normal file
View File

@@ -0,0 +1,32 @@
#!/bin/sh
#
# A simple shell script to build several rpms in a row.
#
# Used for testing rtems.spec.in
#
# Some linux distributions use /usr/src/packages
# redhat uses /usr/src/redhat
# others might use /usr/src
if test -d /usr/src/packages/SPECS;
then
dst=/usr/src/packages/SPECS;
elif test -d /usr/src/redhat/SPECS;
then
dst=/usr/src/redhat/SPECS;
elif test -d /usr/src/SPECS/;
then
dst=/usr/src/SPECS;
fi
./mkspec pc386 i386-rtems
rpm -ba $dst/rtems-i386-rtems-pc386.spec
./mkspec gensh1 sh-rtemself
rpm -ba $dst/rtems-sh-rtemself-gensh1.spec
./mkspec mcp750 powerpc-rtems
rpm -ba $dst/rtems-powerpc-rtems-mcp750.spec

19
scripts-ada/mkspec Normal file
View File

@@ -0,0 +1,19 @@
#!/bin/sh
#
RTEMS_DIR=`dirname $0`
RTEMS_VERSION=`grep Version ${RTEMS_DIR}/../VERSION | \
sed -e 's%RTEMS[ ]*Version[ ]*\(.*\)[ ]*%\1%g'`
target_alias=$1
bsp=$2
release=0
#${RTEMS_DIR}/scripts/mkbspspec $bsp $target_alias
#${RTEMS_DIR}/scripts/mkbinutilspec $target_alias
#${RTEMS_DIR}/scripts/mkgnatnewlibspec $target_alias
#${RTEMS_DIR}/scripts/mkgdbspec $target_alias
./mkbinutilspec $target_alias
./mkgnatnewlibspec $target_alias
./mkgdbspec $target_alias

104
scripts-ada/setup Executable file
View File

@@ -0,0 +1,104 @@
#!/bin/bash
CFG=setup.cache
# RTEMS tools setup
if test ! -f ./$CFG;
then
echo -n "restoring default setup.cache .."
cp ./setup.def ./$CFG
echo " done"
fi
echo -n "loading setup from ./$CFG .."
. ./$CFG
echo " done"
echo
menu_setup()
{
while true;
do
echo
echo " GNAT/RTEMS Source packages setup"
echo
echo "0 binutils version : $binutils_version"
echo "1 binutils patch version : $binutils_patch_version"
echo "2 binutils rpm release : $binutils_rpm_release"
echo "3 gcc version : $gcc_version"
echo "4 gcc patch version : $gcc_patch_version"
echo "5 gnat version : $gnat_version"
echo "6 gnat patch version : $gnat_patch_version"
echo "7 newlib version : $newlib_version"
echo "8 newlib patch version : $newlib_patch_version"
echo "9 gnat/newlib rpm release : $gccnewlib_rpm_release"
echo "a gdb version : $gdb_version"
echo "b gdb patch version : $gdb_patch_version"
echo "c gdb rpm release : $gdb_rpm_release"
echo "d rtems version : $rtems_version"
echo "e rtems rpm release : $rtems_rpm_release"
echo "f rpm build root : $rpm_build_root"
echo
echo -n "[0-9a-f] or any other key to quit >"
read sel
case $sel in
0) echo -n "BINUTILS source >" ; read binutils_version ;;
1) echo -n "BINUTILS patch version >" ; read binutils_patch_version ;;
2) echo -n "BINUTILS RPM release >" ; read binutils_rpm_release ;;
3) echo -n "GCC source >" ; read gcc_version ;;
4) echo -n "GCC patch version>" ; read gcc_patch_version ;;
5) echo -n "GNAT source >" ; read gnat_version ;;
6) echo -n "GNAT patch version>" ; read gnat_patch_version ;;
7) echo -n "NEWLIB source >" ; read newlib_version ;;
8) echo -n "NEWLIB patch version>" ; read newlib_patch_version ;;
9) echo -n "GNAT/NEWLIB RPM release >" ; read gnatnewlib_rpm_release ;;
a) echo -n "GDB source >" ; read gdb_version ;;
b) echo -n "GDB patch version>" ; read gdb_patch_version ;;
c) echo -n "GDB RPM release >" ; read gdb_rpm_release ;;
d) echo -n "RTEMS source >" ; read rtems_version ;;
e) echo -n "RTEMS RPM release >" ; read rtems_rpm_release ;;
f) echo -n "RPM build root >" ; read rpm_build_root ;;
*)
return 0 ;;
esac
done
}
save_setup()
{
echo -n "saving setup to $CFG .."
echo "# RTEMS tools setup" > $CFG
echo "binutils_version=$binutils_version" >> $CFG
echo "binutils_patch_version=$binutils_patch_version" >> $CFG
echo "binutils_rpm_release=$binutils_rpm_release" >> $CFG
echo "newlib_version=$newlib_version" >> $CFG
echo "newlib_patch_version=$newlib_patch_version" >> $CFG
echo "gcc_version=$gcc_version" >> $CFG
echo "gcc_patch_version=$gcc_patch_version" >> $CFG
echo "gnat_version=$gcc_version" >> $CFG
echo "gnat_patch_version=$gcc_patch_version" >> $CFG
echo "gnatnewlib_rpm_release=$gccnewlib_rpm_release" >> $CFG
echo "gdb_version=$gdb_version" >> $CFG
echo "gdb_patch_version=$gdb_patch_version" >> $CFG
echo "gdb_rpm_release=$gdb_rpm_release" >> $CFG
echo "rtems_version=$rtems_version" >> $CFG
echo "rtems_rpm_release=$rtems_rpm_release" >> $CFG
echo "rpm_build_root=$rpm_build_root" >> $CFG
echo " done"
test -f Makefile || ./configure
}
menu_setup
echo
echo -n "Save setup [y|n] >"
read sel
case $sel in
''|y*|Y*) save_setup ;;
*) ;;
esac

17
scripts-ada/setup.def Normal file
View File

@@ -0,0 +1,17 @@
# RTEMS tools setup
binutils_version=2.9.5.0.22
binutils_patch_version=20000114
binutils_rpm_release=1
newlib_version=1.8.2
newlib_patch_version=20000104
gcc_version=2.8.1
gcc_patch_version=20000106
gnat_version=3.12p
gnat_patch_version=20000126
gnatnewlib_rpm_release=2
gdb_version=4.17
gdb_patch_version=20000126
gdb_rpm_release=1
rtems_version=19991117
rtems_rpm_release=1
rpm_build_root=/tmp