summaryrefslogtreecommitdiff
path: root/mk/vars.mk
diff options
context:
space:
mode:
Diffstat (limited to 'mk/vars.mk')
-rw-r--r--mk/vars.mk22
1 files changed, 15 insertions, 7 deletions
diff --git a/mk/vars.mk b/mk/vars.mk
index b55b92276..39c35e52a 100644
--- a/mk/vars.mk
+++ b/mk/vars.mk
@@ -57,6 +57,12 @@ TARGET_LDFLAGS:= -Wl,-O2 -Wl,-rpath -Wl,/usr/lib \
-Wl,-rpath-link -Wl,${STAGING_TARGET_DIR}/usr/lib \
-L${STAGING_TARGET_DIR}/lib -L${STAGING_TARGET_DIR}/usr/lib
+ifneq ($(ADK_NATIVE),)
+TARGET_CPPFLAGS:=
+TARGET_CFLAGS:= $(TARGET_CFLAGS_ARCH) -fwrapv -fno-ident -fhonour-copts
+TARGET_LDFLAGS:=
+endif
+
ifneq ($(ADK_STATIC),)
TARGET_CFLAGS+= -static
TARGET_CXXFLAGS+= -static
@@ -81,18 +87,20 @@ else
TARGET_CFLAGS+= -fomit-frame-pointer $(TARGET_OPTIMIZATION)
endif
-ifneq ($(ADK_NATIVE),)
-TARGET_CPPFLAGS:=
-TARGET_CFLAGS:= $(TARGET_OPTIMIZATION) $(TARGET_CFLAGS_ARCH) -fwrapv -fno-ident -fhonour-copts
-TARGET_LDFLAGS:=
-endif
+
+# A nifty macro to make testing gcc features easier (from uClibc project)
+check_gcc=$(shell \
+ if $(CC_FOR_BUILD) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; \
+ then echo "$(1)"; else echo "$(2)"; fi)
+
+CF_FOR_BUILD=$(call check_gcc,-fhonour-copts,)
# host compiler flags
CPPFLAGS_FOR_BUILD?=
-CFLAGS_FOR_BUILD?= -O2 -Wall
+CFLAGS_FOR_BUILD= -O2 -Wall $(CF_FOR_BUILD)
CXXFLAGS_FOR_BUILD?= -O2 -Wall
LDFLAGS_FOR_BUILD?=
-FLAGS_FOR_BUILD:= ${CPPFLAGS_FOR_BUILD} ${CFLAGS_FOR_BUILD} ${LDFLAGS_FOR_BUILD}
+FLAGS_FOR_BUILD= ${CPPFLAGS_FOR_BUILD} ${CFLAGS_FOR_BUILD} ${LDFLAGS_FOR_BUILD}
PATCH= ${BASH} $(SCRIPT_DIR)/patch.sh
SED:= sed -i -e