This commit is contained in:
Ralf Corsepius
2004-04-13 10:59:41 +00:00
parent 329a2c1419
commit fce4a521ca
6 changed files with 350 additions and 0 deletions

View File

@@ -0,0 +1,9 @@
aclocal.m4
autom4te*.cache
config.*
configure
install-sh
Makefile
Makefile.in
missing
*.spec

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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