summaryrefslogtreecommitdiffstats
path: root/source-builder
diff options
context:
space:
mode:
Diffstat (limited to 'source-builder')
-rw-r--r--source-builder/defaults.mc44
-rw-r--r--source-builder/sb/freebsd.py1
-rw-r--r--source-builder/sb/netbsd.py38
3 files changed, 47 insertions, 36 deletions
diff --git a/source-builder/defaults.mc b/source-builder/defaults.mc
index 7b8d3b6..bea51a6 100644
--- a/source-builder/defaults.mc
+++ b/source-builder/defaults.mc
@@ -53,9 +53,13 @@ _target: none, optional, ''
# The user
_uid: none, convert, '%(%{__id_u} -n)'
-# Default flags
-optflags: none, convert, '-O2 -pipe'
-optincludes: none, convert, ''
+# Default flags that can be overridded to supply specific host or build
+# flags and include paths to the tools. The host is the final platform
+# the tools will run on and build is the host building the tools.
+optflags_host: none, convert, '-O2 -pipe'
+optincludes_host: none, convert, ''
+optflags_build: none, convert, '-O2 -pipe'
+optincludes_build: none, convert, ''
# Extra path a platform can override.
_extra_path: none, none, '%{_sbdir}'
@@ -179,13 +183,16 @@ export SB_ORIG_PATH=${PATH}
%{?_prefix:SB_PREFIX_CLEAN=$(echo "%{_prefix}" | %{__sed} -e 's/^\///')}
SB_SOURCE_DIR="%{_sourcedir}"
SB_BUILD_DIR="%{_builddir}"
-SB_OPT_HOST_CFLAGS="%{optflags} %{?_tmproot:-I%{_tmproot}/${SB_PREFIX_CLEAN}/include}"
+# host == build, use build; host != build , host uses host and build uses build
+SB_OPT_HOST_CFLAGS="%{optflags_host} %{optincludes_host}"
SB_OPT_HOST_LDFLAGS="%{?_tmproot:-L%{_tmproot}/${SB_PREFIX_CLEAN}/lib}"
-SB_OPT_BUILD_CFLAGS="%{optflags} %{optincludes}"
-SB_OPT_CFLAGS="${SB_OPT_HOST_CFLAGS} %{optincludes}"
+SB_OPT_BUILD_CFLAGS="%{optflags_build} %{?_tmproot:-I%{_tmproot}/${SB_PREFIX_CLEAN}/include}"
+SB_OPT_BUILD_LDFLAGS="%{?_tmproot:-L%{_tmproot}/${SB_PREFIX_CLEAN}/lib}"
+SB_OPT_CFLAGS="${SB_OPT_BUILD_CFLAGS} %{optincludes_build}"
SB_ARCH="%{_arch}"
SB_OS="%{_os}"
-export SB_SOURCE_DIR SB_BUILD_DIR SB_OPT_HOST_CFLAGS SB_OPT_BUILD_CFLAGS SB_OPT_CFLAGS SB_ARCH SB_OS
+export SB_SOURCE_DIR SB_BUILD_DIR SB_ARCH SB_OS
+export SB_OPT_HOST_CFLAGS SB_OPT_HOST_LDFLAGS SB_OPT_BUILD_CFLAGS SB_OPT_BUILD_LDFLAGS SB_OPT_CFLAGS
# Documentation
SB_DOC_DIR="%{_docdir}"
export SB_DOC_DIR
@@ -276,20 +283,23 @@ fi'''
# Host/build flags.
host_build_flags: none, none, '''
-# Host and build flags
+# Host and build flags, Cxc build if host and build are different.
+# Note, gcc is not ready to be compiled with -std=gnu99 (this needs to be checked).
if test "%{_build}" != "%{_host}" ; then
- CFLAGS_FOR_BUILD="${SB_OPT_HOST_CFLAGS}"
- LDFLAGS_FOR_BUILD="${SB_OPT_HOST_LDFLAGS}"
+ # Canadian cross build
CC=$(echo "%{_host}-gcc ${SB_OPT_HOST_CFLAGS} ${SB_OPT_HOST_LDFLAGS}" | sed -e 's,-std=gnu99 ,,')
- CXXFLAGS_FOR_BUILD="${SB_OPT_HOST_CFLAGS}"
CXX=$(echo "%{_host}-g++ ${SB_OPT_HOST_CFLAGS} ${SB_OPT_HOST_LDFLAGS}" | sed -e 's,-std=gnu99 ,,')
- CC_FOR_BUILD=$(echo "%{__cc} ${SB_OPT_CFLAGS}" | sed -e 's,-std=gnu99 ,,')
- CXX_FOR_BUILD=$(echo "%{__cxx} ${SB_OPT_CFLAGS}" | sed -e 's,-std=gnu99 ,,')
-else
- # gcc is not ready to be compiled with -std=gnu99
+ CFLAGS="${SB_OPT_HOST_CFLAGS}"
LDFLAGS="${SB_OPT_HOST_LDFLAGS}"
- CC=$(echo "%{__cc} ${SB_OPT_CFLAGS}" | sed -e 's,-std=gnu99 ,,')
- CXX=$(echo "%{__cxx} ${SB_OPT_CFLAGS}" | sed -e 's,-std=gnu99 ,,')
+ CFLAGS_FOR_BUILD="${SB_OPT_BUILD_CFLAGS}"
+ LDFLAGS_FOR_BUILD="${SB_OPT_BUILD_LDFLAGS}"
+ CXXFLAGS_FOR_BUILD="${SB_OPT_BUILD_CFLAGS}"
+ CC_FOR_BUILD=$(echo "%{__cc} ${SB_OPT_BUILD_CFLAGS}" | sed -e 's,-std=gnu99 ,,')
+ CXX_FOR_BUILD=$(echo "%{__cxx} ${SB_OPT_BUILD_CFLAGS}" | sed -e 's,-std=gnu99 ,,')
+else
+ LDFLAGS="${SB_OPT_BUILD_LDFLAGS}"
+ CC=$(echo "%{__cc} ${SB_OPT_BUILD_CFLAGS}" | sed -e 's,-std=gnu99 ,,')
+ CXX=$(echo "%{__cxx} ${SB_OPT_BUILD_CFLAGS}" | sed -e 's,-std=gnu99 ,,')
CC_FOR_BUILD=${CC}
CXX_FOR_BUILD=${CXX}
fi
diff --git a/source-builder/sb/freebsd.py b/source-builder/sb/freebsd.py
index d65dc9f..bc01be8 100644
--- a/source-builder/sb/freebsd.py
+++ b/source-builder/sb/freebsd.py
@@ -83,6 +83,7 @@ def load():
cxx = '/usr/bin/c++'
if check.check_exe(cxx, cxx):
defines['__cxx'] = cxx
+ defines['optflags_build'] = '-O2 -pipe -fbracket-depth=1024'
cvs = 'cvs'
if check.check_exe(cvs, cvs):
defines['__cvs'] = cvs
diff --git a/source-builder/sb/netbsd.py b/source-builder/sb/netbsd.py
index ab635c3..c7420c3 100644
--- a/source-builder/sb/netbsd.py
+++ b/source-builder/sb/netbsd.py
@@ -47,25 +47,25 @@ def load():
if version.find('-') > 0:
version = version.split('-')[0]
defines = {
- '_ncpus': ('none', 'none', '1'),
- '_os': ('none', 'none', 'netbsd'),
- '_host': ('triplet', 'required', cpu + '-netbsd' + version),
- '_host_vendor': ('none', 'none', 'pc'),
- '_host_os': ('none', 'none', 'netbsd'),
- '_host_os_version': ('none', 'none', version),
- '_host_cpu': ('none', 'none', cpu),
- '_host_alias': ('none', 'none', '%{nil}'),
- '_host_arch': ('none', 'none', cpu),
- '_usr': ('dir', 'required', '/usr'),
- '_var': ('dir', 'optional', '/var'),
- 'optincludes': ('none', 'none', '-I/usr/pkg/include -L/usr/pkg/lib'),
- '__bash': ('exe', 'optional', '/usr/pkg/bin/bash'),
- '__bison': ('exe', 'required', '/usr/pkg/bin/bison'),
- '__git': ('exe', 'required', '/usr/pkg/bin/git'),
- '__svn': ('exe', 'required', '/usr/pkg/bin/svn'),
- '__xz': ('exe', 'optional', '/usr/pkg/bin/xz'),
- '__make': ('exe', 'required', 'gmake'),
- '__patch_opts': ('none', 'none', '-E')
+ '_ncpus': ('none', 'none', '1'),
+ '_os': ('none', 'none', 'netbsd'),
+ '_host': ('triplet', 'required', cpu + '-netbsd' + version),
+ '_host_vendor': ('none', 'none', 'pc'),
+ '_host_os': ('none', 'none', 'netbsd'),
+ '_host_os_version': ('none', 'none', version),
+ '_host_cpu': ('none', 'none', cpu),
+ '_host_alias': ('none', 'none', '%{nil}'),
+ '_host_arch': ('none', 'none', cpu),
+ '_usr': ('dir', 'required', '/usr'),
+ '_var': ('dir', 'optional', '/var'),
+ 'optincludes_build': ('none', 'none', '-I/usr/pkg/include -L/usr/pkg/lib'),
+ '__bash': ('exe', 'optional', '/usr/pkg/bin/bash'),
+ '__bison': ('exe', 'required', '/usr/pkg/bin/bison'),
+ '__git': ('exe', 'required', '/usr/pkg/bin/git'),
+ '__svn': ('exe', 'required', '/usr/pkg/bin/svn'),
+ '__xz': ('exe', 'optional', '/usr/pkg/bin/xz'),
+ '__make': ('exe', 'required', 'gmake'),
+ '__patch_opts': ('none', 'none', '-E')
}
defines['_build'] = defines['_host']