summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRalf Corsepius <ralf.corsepius@rtems.org>2004-04-13 10:59:41 +0000
committerRalf Corsepius <ralf.corsepius@rtems.org>2004-04-13 10:59:41 +0000
commitfce4a521ca33d6f805d5e88ac0823041b281c84b (patch)
tree4b4e63510d5c7a0a67114bb19cd0d5c41503ed65
parent2004-04-13 Ralf Corsepius <ralf_corsepius@rtems.org> (diff)
downloadrtems-fce4a521ca33d6f805d5e88ac0823041b281c84b.tar.bz2
New.
-rw-r--r--contrib/freebsd/.cvsignore9
-rw-r--r--contrib/freebsd/Makefile.am50
-rw-r--r--contrib/freebsd/configure.ac13
-rw-r--r--contrib/freebsd/i386-freebsd-binutils.spec.in83
-rw-r--r--contrib/freebsd/i386-freebsd-gcc.spec.in92
-rw-r--r--contrib/freebsd/i386-freebsd-libs.spec.in103
6 files changed, 350 insertions, 0 deletions
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 <ralf_corsepius@rtems.org>
+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 <ralf_corsepius@rtems.org>
+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 <ralf_corsepius@rtems.org>
+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