rtems/bsp: Build packages for the beagle BSP.

Closes #3769
This commit is contained in:
Chris Johns 2019-07-14 15:11:46 +10:00
parent b1c2cb4f72
commit 831ae05364
14 changed files with 95 additions and 57 deletions

View File

@ -9,11 +9,11 @@
# - Packages # - Packages
# #
%define rtems_target arm-rtems5
%define rtems_host arm-rtems5
%define with_rtems_bsp beagleboneblack %define with_rtems_bsp beagleboneblack
%define rtems_target arm-rtems5
%define rtems_host %{rtems_target}
5/rtems-arm 5/rtems-arm
5/rtems-kernel 5/rtems-kernel
5/rtems-libbsd 5/rtems-libbsd
5/rtems-packages

View File

@ -13,4 +13,3 @@ tools/rtems-gdb-8.2.1-1
tools/rtems-binutils-2.32 tools/rtems-binutils-2.32
tools/rtems-gcc-9.1.0-newlib-5c2a3661c tools/rtems-gcc-9.1.0-newlib-5c2a3661c
tools/rtems-tools-5-1 tools/rtems-tools-5-1
tools/rtems-kernel-5

View File

@ -14,5 +14,4 @@ tools/rtems-gdb-8.2.1-1
tools/rtems-binutils-2.32 tools/rtems-binutils-2.32
tools/rtems-gcc-9.1.0-newlib-5c2a3661c tools/rtems-gcc-9.1.0-newlib-5c2a3661c
tools/rtems-tools-5-1 tools/rtems-tools-5-1
tools/rtems-kernel-5
devel/sis-2-1.cfg devel/sis-2-1.cfg

View File

@ -11,4 +11,3 @@ tools/rtems-gdb-8.2.1-1
tools/rtems-binutils-2.32 tools/rtems-binutils-2.32
tools/rtems-gcc-9.1.0-newlib-5c2a3661c tools/rtems-gcc-9.1.0-newlib-5c2a3661c
tools/rtems-tools-5-1 tools/rtems-tools-5-1
tools/rtems-kernel-5

View File

@ -53,6 +53,7 @@
%endif %endif
%define with_rtems_bsp sparc/erc32 %define with_rtems_bsp sparc/erc32
%endif %endif
%define rtems_bsp %{with_rtems_bsp}
# #
# If no tools or RTEMS provided use the prefix. If staging use the staging # If no tools or RTEMS provided use the prefix. If staging use the staging
@ -87,6 +88,29 @@
# #
%{path prepend %{with_tools}/bin} %{path prepend %{with_tools}/bin}
#
# Update the configure paths to be BSP specific.
#
%define rtems_bsp_prefix %{_prefix}/%{_host}/%{rtems_bsp}
%define _exec_prefix %{rtems_bsp_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_exec_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_exec_prefix}/etc
%define _sharedstatedir %{_exec_prefix}/com
%define _localstatedir %{_exec_prefix}/var
%define _includedir %{_libdir}/include
%define _lib lib
%define _libdir %{_exec_prefix}/%{_lib}
%define _libexecdir %{_exec_prefix}/libexec
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%define _localedir %{_datadir}/locale
%define _localstatedir %{_exec_prefix}/var
# #
# Set up how we manage pkgconfig. Set the prefix path to the RTEMS prefix, # Set up how we manage pkgconfig. Set the prefix path to the RTEMS prefix,
# enable support when crosscompiling, and filter specific optimisation and # enable support when crosscompiling, and filter specific optimisation and
@ -99,16 +123,50 @@
# #
# The RTEMS BSP Flags # The RTEMS BSP Flags
# #
%define rtems_bsp %{with_rtems_bsp} %define rtems_bsp_includes -I%{_includedir}
%define rtems_bsp_ccflags %{pkgconfig ccflags %{_host}-%{rtems_bsp}} %define rtems_bsp_ccflags %{pkgconfig ccflags %{_host}-%{rtems_bsp}}
%define rtems_bsp_cflags %{pkgconfig cflags %{_host}-%{rtems_bsp}} %define rtems_bsp_cflags %{pkgconfig cflags %{_host}-%{rtems_bsp}}
%define rtems_bsp_ldflags %{pkgconfig ldflags %{_host}-%{rtems_bsp}} %define rtems_bsp_ldflags %{pkgconfig ldflags %{_host}-%{rtems_bsp}}
%define rtems_bsp_libs %{pkgconfig libs %{_host}-%{rtems_bsp}} %define rtems_bsp_libs %{pkgconfig libs %{_host}-%{rtems_bsp}}
%if %{rtems_bsp_cflags} == %{nil} && %{rtems_bsp_error} %if %{rtems_bsp_cflags} == %{nil} && %{rtems_bsp_error}
%error No RTEMS BSP CFLAGS found; Please check the --with-rtems-bsp option. %error No RTEMS BSP CFLAGS found; Please check the --with-rtems-bsp option.
%endif %endif
#
# C++ flags are the C flags.
#
%if %{rtems_bsp_ccflags} == %{nil}
%define rtems_bsp_ccflags %{rtems_bsp_cflags}
%endif
#
# If there are no LDFLAGS create a path to RTEMS.
#
%if %{rtems_bsp_ldflags} == %{nil}
%define rtems_bsp_ldflags -L%{rtems_bsp_prefix}/lib
%endif
#
# Support for RTEMS's Makefile.inc support.
#
%define rtems_bsp_makefile_inc %{rtems_bsp_prefix}
%define rtems_bsp_rtems_root %{_prefix}
#
# Filter the flags converting any prefix to the staging path if this is a
# staging build.
#
%if %{install_mode} == staging
%define staging_filter sed -e 's|%{_prefix}|%{stagingroot}|g'
%define rtems_bsp_prefix $(echo %{rtems_bsp_prefix} | %{staging_filter})
%define rtems_bsp_includes $(echo %{rtems_bsp_includes} | %{staging_filter})
%define rtems_bsp_ccflags $(echo %{rtems_bsp_ccflags} | %{staging_filter})
%define rtems_bsp_cflags $(echo %{rtems_bsp_cflags} | %{staging_filter})
%define rtems_bsp_ldflags $(echo %{rtems_bsp_ldflags} | %{staging_filter})
%define rtems_bsp_rtems_root %{stagingroot}
%endif
%if %{rtems_bsp_ccflags} == %{nil} %if %{rtems_bsp_ccflags} == %{nil}
%define rtems_bsp_ccflags %{rtems_bsp_cflags} %define rtems_bsp_ccflags %{rtems_bsp_cflags}
%endif %endif
@ -146,35 +204,12 @@
%define rtems_bsp_libs %{rtems_bsp_libs} -lrtemsdefaultconfig %define rtems_bsp_libs %{rtems_bsp_libs} -lrtemsdefaultconfig
%endif %endif
#
# Update the configure paths to be BSP specific.
#
%define rtems_bsp_prefix %{_prefix}/%{_host}/%{rtems_bsp}
%define _exec_prefix %{rtems_bsp_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_exec_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_exec_prefix}/etc
%define _sharedstatedir %{_exec_prefix}/com
%define _localstatedir %{_exec_prefix}/var
%define _includedir %{_libdir}/include
%define _lib lib
%define _libdir %{_exec_prefix}/%{_lib}
%define _libexecdir %{_exec_prefix}/libexec
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%define _localedir %{_datadir}/locale
%define _localstatedir %{_exec_prefix}/var
# #
# Map to names used for cross compiling. # Map to names used for cross compiling.
# #
%define host_cc %{rtems_bsp_cc} %define host_cc %{rtems_bsp_cc}
%define host_cxx %{rtems_bsp_cxx} %define host_cxx %{rtems_bsp_cxx}
%define host_includes -I%{_includedir} %define host_includes %{rtems_bsp_includes}
%define host_cflags %{rtems_bsp_cflags} %define host_cflags %{rtems_bsp_cflags}
%define host_cxxflags %{rtems_bsp_ccflags} %define host_cxxflags %{rtems_bsp_ccflags}
%define host_ldflags %{rtems_bsp_ldflags} %define host_ldflags %{rtems_bsp_ldflags}

View File

@ -2,8 +2,8 @@
# RTEMS 5 # RTEMS 5
# #
%define rtems_kernel_version c4d89deaa66f9878ea5499cae7210d5815afc4fe %define rtems_kernel_version 270c5df5dbaf93c19e2f66a27f4bb73c7e625629
%hash sha512 rtems-kernel-%{rtems_kernel_version}.tar.bz2 fa4cbcfd9d10be737b91805f1fbaccb7289f3d300a2a7aafef1713d265dd97242d00aba5f1c63ead5a889cfb2148fd9d62c79dcb6f16e61f9fa1290067159b43 %hash sha512 rtems-kernel-%{rtems_kernel_version}.tar.bz2 aed5a4ef1fd33a5097cffcde458f3b6848ccbc8cb181918dbbb7e27df6a75b3caa9e859d4106ce380ebcd26aab5f5afb85036b2c1f4f47eb482f55e0a2238674
# #
# The RTEMS build instructions. # The RTEMS build instructions.

View File

@ -182,15 +182,15 @@ URL: https://www.rtems.org/
source_dir_rtems="rtems-%{rtems_kernel_version}" source_dir_rtems="rtems-%{rtems_kernel_version}"
%source setup rtems_kernel -q -c -n %{name}-%{version} %source setup rtems_kernel -q -c -n %{name}-%{version}
cd ${source_dir_rtems} cd ${source_dir_rtems}
%patch setup rtems -p1 %patch setup rtems_kernel -p1
%if %{rtems_bootstrap} %if %{rtems_bootstrap}
%if %{defined _internal_autotools_path} %if %{defined _internal_autotools_path}
export PATH="%{_internal_autotools_path}/bin:${PATH}" export PATH="%{_internal_autotools_path}/bin:${PATH}"
%endif
./bootstrap -c
%{_sbdir}/sb-bootstrap --preinstall
%{_sbdir}/sb-bootstrap
%endif %endif
./bootstrap -c
%{_sbdir}/sb-bootstrap --preinstall
%{_sbdir}/sb-bootstrap
%endif
cd .. cd ..
%build %build

View File

@ -17,8 +17,6 @@ URL: http://www.libpng.org/
# #
# libpng Source # libpng Source
# #
#%source set libpng ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng%{libpng_src_dir_revision}/libpng-%{libpng_version}.tar.gz
%source set libpng --rsb-file=libpng-%{libpng_version}.tar.xz http://prdownloads.sourceforge.net/libpng/libpng-%{libpng_version}.tar.xz?download %source set libpng --rsb-file=libpng-%{libpng_version}.tar.xz http://prdownloads.sourceforge.net/libpng/libpng-%{libpng_version}.tar.xz?download
# #

View File

@ -12,7 +12,7 @@ Name: libtiff-v%{tiff_version}-%{_host}-%{release}
Summary: libtiff provides support for the Tag Image File Format (TIFF), a widely used format for storing image data. Summary: libtiff provides support for the Tag Image File Format (TIFF), a widely used format for storing image data.
Version: %{tiff_version} Version: %{tiff_version}
Release: %{release} Release: %{release}
URL: http://www.libtiff.org/ URL: http://www.libtiff.org/
# #
# libtiff Source # libtiff Source
@ -55,7 +55,6 @@ URL: http://www.libtiff.org/
--with-docdir=%{_datarootdir}/doc \ --with-docdir=%{_datarootdir}/doc \
--disable-shared --disable-shared
%{__make} %{?_smp_mflags} all %{__make} %{?_smp_mflags} all
cd ${build_top} cd ${build_top}

View File

@ -40,9 +40,9 @@ URL: http://git.savannah.gnu.org/cgit/lwip.git
cd ${build_dir} cd ${build_dir}
%{host_build_flags} %{host_build_flags}
%{rtems_makefile_inc}
cd ${build_top}/lwip-%{lwip_version} cd ${build_top}/lwip-%{lwip_version}
export RTEMS_MAKEFILE_PATH=%{_exec_prefix}
%{__make} all %{__make} all
# cd ${build_top} # cd ${build_top}

View File

@ -43,9 +43,8 @@ URL: http://www.microwindows.org/
cd ${build_dir}/src cd ${build_dir}/src
cp -r ${build_top}/${source_dir_microwindows}/src/* . cp -r ${build_top}/${source_dir_microwindows}/src/* .
#%{host_build_flags} %{host_build_flags}
%{rtems_makefile_inc}
export RTEMS_MAKEFILE_PATH=%{rtems_bsp_prefix}
%{__make} -f Makefile.rtems CONFIG=`pwd`/Configs/config.rtems -k all %{__make} -f Makefile.rtems CONFIG=`pwd`/Configs/config.rtems -k all

View File

@ -43,7 +43,8 @@ URL: http://www.microwindows.org/
cd ${build_dir} cd ${build_dir}
cp -r ${build_top}/${source_dir_nxlib}/* . cp -r ${build_top}/${source_dir_nxlib}/* .
export RTEMS_MAKEFILE_PATH=%{_exec_prefix} %{host_build_flags}
%{rtems_makefile_inc}
make -f Makefile.rtems make -f Makefile.rtems

View File

@ -410,3 +410,10 @@ win_1253,win_1254,win_1255,win_1256,win_1257,win_1258'''
# prefix as part of the path as just a path. # prefix as part of the path as just a path.
# #
waf_build_root_suffix: none, none, ' %(echo %{_prefix} | cut -c 1-2)' waf_build_root_suffix: none, none, ' %(echo %{_prefix} | cut -c 1-2)'
# Makefile.inc support for staging
rtems_makefile_inc: none, none, '''
export RTEMS_ROOT=%{rtems_bsp_rtems_root}
export PROJECT_RELEASE=%{rtems_bsp_prefix}
export RTEMS_MAKEFILE_PATH=%{rtems_bsp_prefix}
'''

View File

@ -575,9 +575,11 @@ class buildset:
staging_size = path.get_size(stagingroot) staging_size = path.get_size(stagingroot)
if not self.opts.no_clean() or self.opts.always_clean(): if not self.opts.no_clean() or self.opts.always_clean():
log.notice('clean staging: %s' % (self.bset)) log.notice('clean staging: %s' % (self.bset))
log.trace('cleanup: %s' % (stagingroot)) log.trace('removing: %s' % (stagingroot))
self.rmdir(stagingroot) if not self.opts.dry_run():
log.notice('Staging Size: %s' % (build.humanize_number(staging_size))) if path.exists(stagingroot):
path.removeall(stagingroot)
log.notice('Staging Size: %s' % (build.humanize_number(staging_size, 'B')))
except error.general as gerr: except error.general as gerr:
if not build_error: if not build_error:
log.stderr(str(gerr)) log.stderr(str(gerr))