summaryrefslogtreecommitdiffstats
path: root/source-builder/defaults.mc
diff options
context:
space:
mode:
Diffstat (limited to 'source-builder/defaults.mc')
-rw-r--r--source-builder/defaults.mc44
1 files changed, 27 insertions, 17 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