From fce4a521ca33d6f805d5e88ac0823041b281c84b Mon Sep 17 00:00:00 2001 From: Ralf Corsepius Date: Tue, 13 Apr 2004 10:59:41 +0000 Subject: New. --- contrib/freebsd/.cvsignore | 9 +++ contrib/freebsd/Makefile.am | 50 +++++++++++++ contrib/freebsd/configure.ac | 13 ++++ contrib/freebsd/i386-freebsd-binutils.spec.in | 83 +++++++++++++++++++++ contrib/freebsd/i386-freebsd-gcc.spec.in | 92 +++++++++++++++++++++++ contrib/freebsd/i386-freebsd-libs.spec.in | 103 ++++++++++++++++++++++++++ 6 files changed, 350 insertions(+) create mode 100644 contrib/freebsd/.cvsignore create mode 100644 contrib/freebsd/Makefile.am create mode 100644 contrib/freebsd/configure.ac create mode 100644 contrib/freebsd/i386-freebsd-binutils.spec.in create mode 100644 contrib/freebsd/i386-freebsd-gcc.spec.in create mode 100644 contrib/freebsd/i386-freebsd-libs.spec.in (limited to 'contrib') diff --git a/contrib/freebsd/.cvsignore b/contrib/freebsd/.cvsignore new file mode 100644 index 0000000000..e93fc61921 --- /dev/null +++ b/contrib/freebsd/.cvsignore @@ -0,0 +1,9 @@ +aclocal.m4 +autom4te*.cache +config.* +configure +install-sh +Makefile +Makefile.in +missing +*.spec diff --git a/contrib/freebsd/Makefile.am b/contrib/freebsd/Makefile.am new file mode 100644 index 0000000000..bc81c957b6 --- /dev/null +++ b/contrib/freebsd/Makefile.am @@ -0,0 +1,50 @@ +## +## $Id$ +## + +RPM_BUILD_ROOT = /var/tmp/%{name}-%{version} + +PREFIX = /opt/i386-freebsd5.2.1 +FREEBSD_VERS = 5.2.1 +FREEBSD_RPMREL = 0.rc.2 +BINUTILS_VERS = 2.15 +BINUTILS_RPMREL = 0 +GCC_VERS = 3.4.0 +GCC_RPMREL = 0 + +noinst_DATA = +EXTRA_DIST = +DISTCLEANFILES = + +noinst_DATA += i386-freebsd-libs.spec +i386-freebsd-libs.spec: i386-freebsd-libs.spec.in Makefile.am + sed \ + -e 's,[@]FREEBSD_VERS[@],$(FREEBSD_VERS),g' \ + -e 's,[@]FREEBSD_RPMREL[@],$(FREEBSD_RPMREL),g' \ + -e 's,[@]RPM_BUILD_ROOT[@],$(RPM_BUILD_ROOT),g' \ + -e 's,[@]PREFIX[@],$(PREFIX),g' \ + < $< > $@ +EXTRA_DIST += i386-freebsd-libs.spec.in +DISTCLEANFILES += i386-freebsd-libs.spec + +noinst_DATA += i386-freebsd-binutils.spec +i386-freebsd-binutils.spec: i386-freebsd-binutils.spec.in Makefile.am + sed \ + -e 's,[@]BINUTILS_VERS[@],$(BINUTILS_VERS),g' \ + -e 's,[@]BINUTILS_RPMREL[@],$(BINUTILS_RPMREL),g' \ + -e 's,[@]RPM_BUILD_ROOT[@],$(RPM_BUILD_ROOT),g' \ + -e 's,[@]PREFIX[@],$(PREFIX),g' \ + < $< > $@ +EXTRA_DIST += i386-freebsd-binutils.spec.in +DISTCLEANFILES += i386-freebsd-binutils.spec + +noinst_DATA += i386-freebsd-gcc.spec +i386-freebsd-gcc.spec: i386-freebsd-gcc.spec.in Makefile.am + sed \ + -e 's,[@]GCC_VERS[@],$(GCC_VERS),g' \ + -e 's,[@]GCC_RPMREL[@],$(GCC_RPMREL),g' \ + -e 's,[@]RPM_BUILD_ROOT[@],$(RPM_BUILD_ROOT),g' \ + -e 's,[@]PREFIX[@],$(PREFIX),g' \ + < $< > $@ +EXTRA_DIST += i386-freebsd-gcc.spec.in +DISTCLEANFILES += i386-freebsd-gcc.spec diff --git a/contrib/freebsd/configure.ac b/contrib/freebsd/configure.ac new file mode 100644 index 0000000000..5876d5819d --- /dev/null +++ b/contrib/freebsd/configure.ac @@ -0,0 +1,13 @@ +## $Id$ + +AC_PREREQ(2.59) +AC_INIT([rtems-contrib-freebsd],[0.0],[rtems-bugs@rtems.com]) +AC_CONFIG_AUX_DIR(.) +AC_CONFIG_SRCDIR([i386-freebsd-libs.spec.in]) + +AM_INIT_AUTOMAKE([no-define foreign 1.8]) + +AC_PATH_PROG(RPM,rpm) + +AC_CONFIG_FILES([Makefile]) +AC_OUTPUT diff --git a/contrib/freebsd/i386-freebsd-binutils.spec.in b/contrib/freebsd/i386-freebsd-binutils.spec.in new file mode 100644 index 0000000000..66c1e998fd --- /dev/null +++ b/contrib/freebsd/i386-freebsd-binutils.spec.in @@ -0,0 +1,83 @@ +# +# spec file for binutils package targetting freebsd +# + +%define _prefix @PREFIX@ + +%define binutils_version @BINUTILS_VERS@ +%define binutils_rpmvers %{expand: %(echo @BINUTILS_VERS@ | tr - _)} + +%define __os_install_post %{nil} + +Vendor: RTEMS.org +Distribution: Linux +Name: i386-freebsd5-binutils +Summary: binutils for target i386-freebsd5 +Group: freebsd +Release: @BINUTILS_RPMREL@ +Summary: binutils for i386-freebsd5 +License: GPL/LGPL +Packager: Ralf Corsepius +Prefix: %{_prefix} +BuildRoot: @RPM_BUILD_ROOT@ + +Version: %binutils_rpmvers +Source0: ftp://ftp.gnu.org.com/pub/gnu/binutils/binutils-%{binutils_version}-20040411.tar.bz2 +NoSource: 0 + +# Urgh, but RH's find-* is too stupid to cope with foreign objects +# Autoreqprov: off + +%description + +Cross binutils for target freebsd + +%prep +# untar the sources inside i386-freebsd5-binutils +%setup -c -n i386-freebsd5-binutils -a 0 + +%build + test -d build || mkdir build + cd build + ../binutils-%{binutils_version}/configure --target=i386-freebsd5 \ + --disable-nls --disable-win32-registry \ + --verbose --prefix=%{prefix} + + make all + +%install + rm -rf $RPM_BUILD_ROOT + cd build + make prefix=$RPM_BUILD_ROOT%{prefix} install + +# A bug in binutils: binutils does not install share/locale +# however it uses it + ../binutils-%{binutils_version}/mkinstalldirs \ + $RPM_BUILD_ROOT%{prefix}/share/locale + +# We don't want info files + rm -rf $RPM_BUILD_ROOT%{prefix}/info + +%files + +%dir %{prefix}/man +%dir %{prefix}/man/man1 +%doc %{prefix}/man/man1/i386-freebsd5* + +# %dir %{prefix}/include +# %{prefix}/include/*.h + +%exclude %{prefix}/lib + +%dir %{prefix}/share +%dir %{prefix}/share/locale + +%dir %{prefix}/bin +%{prefix}/bin/* + +%dir %{prefix}/i386-freebsd5 +%dir %{prefix}/i386-freebsd5/bin +%{prefix}/i386-freebsd5/bin/* + +%dir %{prefix}/i386-freebsd5/lib +%{prefix}/i386-freebsd5/lib/ldscripts diff --git a/contrib/freebsd/i386-freebsd-gcc.spec.in b/contrib/freebsd/i386-freebsd-gcc.spec.in new file mode 100644 index 0000000000..50ecd26fd4 --- /dev/null +++ b/contrib/freebsd/i386-freebsd-gcc.spec.in @@ -0,0 +1,92 @@ +# +# spec file for building gcc for freebsd +# + +%define _prefix @PREFIX@ + +%define gcc_version @GCC_VERS@ +%define gcc_rpmvers %{expand: %(echo @GCC_VERS@ | tr - _)} + +%define __os_install_post %{nil} + +Vendor: RTEMS.org +Distribution: Linux +Name: i386-freebsd5-gcc +Summary: i386-freebsd5 gcc. +Group: FreeBSD +Release: @GCC_RPMREL@ +License: gcc is GPL/LGPL +Packager: Ralf Corsepius +Version: %gcc_rpmvers + +Source0: ftp://ftp.gnu.org/pub/gnu/gcc/gcc-%{gcc_version}/gcc-%{gcc_version}-20040412.tar.bz2 +NoSource: 0 + +BuildRoot: @RPM_BUILD_ROOT@ + +# Urgh, but RH's find-* is too stupid to cope with foreign objects +Autoreqprov: off + +BuildRequires: i386-freebsd5-binutils +BuildRequires: i386-freebsd5-libs +Requires: i386-freebsd5-binutils +Requires: i386-freebsd5-libs +Provides: i386-freebsd5-gcc + +%description +Cross gcc for target solaris + +%prep +# untar the sources inside i386-freebsd5-gcc +%setup -c -n %{name}-%{version} -a 0 + +# touch gcc-%{gcc_version}/gcc/ada/treeprs.ads +# touch gcc-%{gcc_version}/gcc/ada/[es]info.h +# touch gcc-%{gcc_version}/gcc/ada/nmake.ad[bs] + + pushd gcc-%{gcc_version} + contrib/gcc_update --touch + popd + + test -d build || mkdir build + +%build + export PATH="%{_bindir}:${PATH}" + cd build + + ../gcc-%{gcc_version}/configure --target=i386-freebsd5 \ + --with-gnu-as --with-gnu-ld --without-newlib --verbose \ + --disable-nls --enable-languages=c,c++ \ + --enable-version-specific-runtime-libs \ + --with-sysroot=%{_prefix}/i386-freebsd5/sys-root \ + --prefix=%{_prefix} + + make all + +# make -C gcc gnatlib +# make -C gcc cross-gnattools +# make -C gcc ada.all.cross + +# We don't want info files +# make info +%install + rm -rf $RPM_BUILD_ROOT + export PATH="%{_bindir}:${PATH}" + cd build + + make prefix=$RPM_BUILD_ROOT%{_prefix} install + # cd back to build/ + cd .. + + # libiberty comes from freebsd5-libs or binutils + rm -f $RPM_BUILD_ROOT%{_prefix}/i386-freebsd5/lib/libiberty.a + rm -f $RPM_BUILD_ROOT%{_prefix}/lib/libiberty.a + + # GCC ships broken *.la's + find $RPM_BUILD_ROOT%{_prefix} -name '*.la' -exec rm -f {} \; + +%files +%defattr(-,root,root) +%{_prefix} +# We don't want infos +%exclude %{_prefix}/info diff --git a/contrib/freebsd/i386-freebsd-libs.spec.in b/contrib/freebsd/i386-freebsd-libs.spec.in new file mode 100644 index 0000000000..8beaa55d79 --- /dev/null +++ b/contrib/freebsd/i386-freebsd-libs.spec.in @@ -0,0 +1,103 @@ +# +# spec file for package i386-freebsd5-libs +# + +%define _prefix @PREFIX@ + +%define freebsd_version @FREEBSD_VERS@ +%define freebsd_rpmvers %{expand: %(echo @FREEBSD_VERS@ | tr - _)} + +%define __os_install_post %{nil} + +Vendor: RTEMS.org +Distribution: Linux +Name: i386-freebsd5-libs +Release: @FREEBSD_RPMREL@ +Copyright: FreeBSD +Group: freebsd + +Packager: Ralf Corsepius +Prefix: %{_prefix} +BuildRoot: @RPM_BUILD_ROOT@ +BuildArch: noarch + +Version: %freebsd_rpmvers +Summary: freebsd +Prefix: %{_prefix} + +# Urgh, but RH's find-* is too stupid to cope with foreign objects +Autoreqprov: off +Provides: i386-freebsd5-libs + +Source0: ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/5.2.1-RELEASE/base/base.aa +Source1: ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/5.2.1-RELEASE/base/base.ab +Source2: ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/5.2.1-RELEASE/base/base.ac +Source3: ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/5.2.1-RELEASE/base/base.ad +Source4: ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/5.2.1-RELEASE/base/base.ae +Source5: ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/5.2.1-RELEASE/base/base.af +Source6: ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/5.2.1-RELEASE/base/base.ag +Source7: ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/5.2.1-RELEASE/base/base.ah +Source8: ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/5.2.1-RELEASE/base/base.ai +Source9: ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/5.2.1-RELEASE/base/base.aj +Source10: ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/5.2.1-RELEASE/base/base.ak +Source11: ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/5.2.1-RELEASE/base/base.al +Source12: ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/5.2.1-RELEASE/base/base.am +Source13: ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/5.2.1-RELEASE/base/base.an +Source14: ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/5.2.1-RELEASE/base/base.ao +Source15: ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/5.2.1-RELEASE/base/base.ap +Source16: ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/5.2.1-RELEASE/base/base.aq +Source17: ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/5.2.1-RELEASE/base/base.ar +Source18: ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/5.2.1-RELEASE/base/base.as +Source19: ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/5.2.1-RELEASE/base/base.at +Source20: ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/5.2.1-RELEASE/base/base.au +Source21: ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/5.2.1-RELEASE/base/base.av +Source22: ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/5.2.1-RELEASE/base/base.aw +Source23: ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/5.2.1-RELEASE/base/base.ax +Source24: ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/5.2.1-RELEASE/base/base.ay +Source25: ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/5.2.1-RELEASE/base/base.az + +%description +FreeBSD libs + +%prep +%setup -c -T -n %{name}-%{version} + + cat \ + %SOURCE0 %SOURCE1 %SOURCE2 %SOURCE3 %SOURCE4 \ + %SOURCE5 %SOURCE6 %SOURCE7 %SOURCE8 %SOURCE9 \ + %SOURCE10 %SOURCE11 %SOURCE12 %SOURCE13 %SOURCE14 \ + %SOURCE15 %SOURCE16 %SOURCE17 %SOURCE18 %SOURCE19 \ + %SOURCE20 %SOURCE21 %SOURCE22 %SOURCE23 %SOURCE24 \ + %SOURCE25 | tar xzvf - + +%build + mkdir -p i386-freebsd5/sys-root + tar cvf - usr/lib usr/include lib | ( cd i386-freebsd5/sys-root ; tar xvf -) + + pushd i386-freebsd5/sys-root/usr/lib + # missing files + rm -f lib*_p.* + # not needed + rm -rf aout compat + + # Fix up symlinks + find -type l -exec ls -l {} \; | \ + while read a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 aA ; do \ + case $aA in + /lib* ) # link + rm $a8; + b=`basename $aA` + ln -s ../../lib/$b $a8 + ;; + esac + done + popd + +%install + rm -rf $RPM_BUILD_ROOT + mkdir -p $RPM_BUILD_ROOT%{prefix} + cp -a i386-freebsd5 $RPM_BUILD_ROOT%{prefix} + +%files +%defattr(-,root,root) +%{prefix}/i386-freebsd5 -- cgit v1.2.3