|
@@ -5,6 +5,17 @@
|
|
|
# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
|
|
|
#
|
|
|
|
|
|
+# make nano-doc
|
|
|
+# FOO = bar -- recursively expanded variable. Value is remebered verbatim.
|
|
|
+# If it contains references to other variables, these references
|
|
|
+# are expanded whenever this variable is _substituted_.
|
|
|
+# FOO := bar -- simply expanded variable. Right hand is expanded when
|
|
|
+# the variable is _defined_. Therefore faster than =.
|
|
|
+# FOO ?= bar -- set a value only if it is not already set
|
|
|
+# (behaves as =, not :=).
|
|
|
+# FOO += bar -- append; if FOO is not defined, acts like = (not :=).
|
|
|
+
|
|
|
+
|
|
|
# check for proper make version
|
|
|
ifneq ($(findstring x3.7,x$(MAKE_VERSION)),)
|
|
|
$(error Your make is too old $(MAKE_VERSION). Go get at least 3.80)
|
|
@@ -66,6 +77,7 @@ export ARCH := $(shell uname -m | $(SED) -e s/i.86/i386/ \
|
|
|
# mortals. Unless you hang out with the gods, you should
|
|
|
# probably leave all this stuff alone.
|
|
|
|
|
|
+
|
|
|
# Pull in the user's uClibc configuration
|
|
|
ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),)
|
|
|
-include $(top_builddir).config
|
|
@@ -148,7 +160,9 @@ check_ld=$(shell \
|
|
|
|
|
|
ARFLAGS:=cr
|
|
|
|
|
|
+
|
|
|
# Flags in OPTIMIZATION are used only for non-debug builds
|
|
|
+
|
|
|
OPTIMIZATION:=
|
|
|
# Use '-Os' optimization if available, else use -O2, allow Config to override
|
|
|
OPTIMIZATION+=$(call check_gcc,-Os,-O2)
|
|
@@ -168,6 +182,37 @@ OPTIMIZATION+=$(call check_gcc,-fno-tree-dominator-opts,)
|
|
|
OPTIMIZATION+=$(call check_gcc,-fno-strength-reduce,)
|
|
|
endif
|
|
|
|
|
|
+
|
|
|
+# CPU_CFLAGS-y contain options which are not warnings,
|
|
|
+# not include or library paths, and not optimizations.
|
|
|
+
|
|
|
+# Why -funsigned-char: I hunted a bug related to incorrect
|
|
|
+# sign extension of 'char' type for 10 hours straight. Not fun.
|
|
|
+CPU_CFLAGS-y := -funsigned-char -fno-builtin
|
|
|
+
|
|
|
+CPU_CFLAGS-y += $(call check_gcc,-fno-asm,)
|
|
|
+
|
|
|
+LDADD_LIBFLOAT=
|
|
|
+ifeq ($(UCLIBC_HAS_SOFT_FLOAT),y)
|
|
|
+# If -msoft-float isn't supported, we want an error anyway.
|
|
|
+# Hmm... might need to revisit this for arm since it has 2 different
|
|
|
+# soft float encodings.
|
|
|
+ifneq ($(TARGET_ARCH),nios)
|
|
|
+ifneq ($(TARGET_ARCH),nios2)
|
|
|
+ifneq ($(TARGET_ARCH),sh)
|
|
|
+CPU_CFLAGS-y += -msoft-float
|
|
|
+endif
|
|
|
+endif
|
|
|
+endif
|
|
|
+ifeq ($(TARGET_ARCH),arm)
|
|
|
+# No longer needed with current toolchains, but leave it here for now.
|
|
|
+# If anyone is actually still using gcc 2.95 (say), they can uncomment it.
|
|
|
+# LDADD_LIBFLOAT=-lfloat
|
|
|
+endif
|
|
|
+endif
|
|
|
+
|
|
|
+CPU_CFLAGS-y += $(call check_gcc,-std=gnu99,)
|
|
|
+
|
|
|
CPU_CFLAGS-$(UCLIBC_FORMAT_SHARED_FLAT) += -mid-shared-library
|
|
|
CPU_CFLAGS-$(UCLIBC_FORMAT_FLAT_SEP_DATA) += -msep-data
|
|
|
|
|
@@ -468,9 +513,11 @@ ifeq ($(EXTRA_WARNINGS),y)
|
|
|
XWARNINGS+=-Wnested-externs -Wshadow -Wmissing-noreturn -Wmissing-format-attribute -Wformat=2
|
|
|
XWARNINGS+=-Wmissing-prototypes -Wmissing-declarations
|
|
|
XWARNINGS+=-Wnonnull -Wundef
|
|
|
-# works only w/ gcc-3.4 and up, can't be checked for gcc-3.x w/ check_gcc()
|
|
|
+# Works only w/ gcc-3.4 and up, can't be checked for gcc-3.x w/ check_gcc()
|
|
|
#XWARNINGS+=-Wdeclaration-after-statement
|
|
|
endif
|
|
|
+# Seems to be unused (no ARCH_CFLAGS anywhere), delete?
|
|
|
+# if yes, remove after 0.9.31
|
|
|
XARCH_CFLAGS=$(subst ",, $(strip $(ARCH_CFLAGS)))
|
|
|
CPU_CFLAGS=$(subst ",, $(strip $(CPU_CFLAGS-y)))
|
|
|
|
|
@@ -484,41 +531,18 @@ SSP_CFLAGS := $(SSP_DISABLE_FLAGS)
|
|
|
endif
|
|
|
|
|
|
NOSTDLIB_CFLAGS:=$(call check_gcc,-nostdlib,)
|
|
|
-# Some nice CFLAGS to work with
|
|
|
-# Why -funsigned-char: I hunted a bug related to incorrect
|
|
|
-# sign extension of 'char' type for 10 hours straight. Not fun.
|
|
|
+
|
|
|
+# Collect all CFLAGS components
|
|
|
CFLAGS := -include $(top_builddir)include/libc-symbols.h \
|
|
|
$(XWARNINGS) $(CPU_CFLAGS) $(SSP_CFLAGS) \
|
|
|
- -funsigned-char -fno-builtin -nostdinc -I$(top_builddir)include -I. \
|
|
|
+ -nostdinc -I$(top_builddir)include -I. \
|
|
|
-I$(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)
|
|
|
-
|
|
|
-# Make sure that we can be built with non-C99 compilers, too.
|
|
|
-# Use __\1__ instead.
|
|
|
-CFLAGS += $(call check_gcc,-fno-asm,)
|
|
|
ifneq ($(strip $(UCLIBC_EXTRA_CFLAGS)),"")
|
|
|
CFLAGS += $(subst ",, $(UCLIBC_EXTRA_CFLAGS))
|
|
|
endif
|
|
|
|
|
|
-LDADD_LIBFLOAT=
|
|
|
-ifeq ($(UCLIBC_HAS_SOFT_FLOAT),y)
|
|
|
-# If -msoft-float isn't supported, we want an error anyway.
|
|
|
-# Hmm... might need to revisit this for arm since it has 2 different
|
|
|
-# soft float encodings.
|
|
|
-ifneq ($(TARGET_ARCH),nios)
|
|
|
-ifneq ($(TARGET_ARCH),nios2)
|
|
|
-ifneq ($(TARGET_ARCH),sh)
|
|
|
-CFLAGS += -msoft-float
|
|
|
-endif
|
|
|
-endif
|
|
|
-endif
|
|
|
-ifeq ($(TARGET_ARCH),arm)
|
|
|
-# No longer needed with current toolchains, but leave it here for now.
|
|
|
-# If anyone is actually still using gcc 2.95 (say), they can uncomment it.
|
|
|
-# LDADD_LIBFLOAT=-lfloat
|
|
|
-endif
|
|
|
-endif
|
|
|
-
|
|
|
# Please let us see private headers' parts
|
|
|
+# Deprecated: _LIBC serves the same purpose
|
|
|
CFLAGS += -DUCLIBC_INTERNAL
|
|
|
|
|
|
# We need this to be checked within libc-symbols.h
|
|
@@ -526,8 +550,6 @@ ifneq ($(HAVE_SHARED),y)
|
|
|
CFLAGS += -DSTATIC
|
|
|
endif
|
|
|
|
|
|
-CFLAGS += $(call check_gcc,-std=gnu99,)
|
|
|
-
|
|
|
LDFLAGS_NOSTRIP:=$(CPU_LDFLAGS-y) -Wl,-shared \
|
|
|
-Wl,--warn-common -Wl,--warn-once -Wl,-z,combreloc
|
|
|
# binutils-2.16.1 warns about ignored sections, 2.16.91.0.3 and newer are ok
|
|
@@ -638,8 +660,9 @@ endif
|
|
|
CFLAGS += -I$(KERNEL_HEADERS)
|
|
|
|
|
|
#CFLAGS += -iwithprefix include-fixed -iwithprefix include
|
|
|
-CC_IPREFIX:=$(shell $(CC) --print-file-name=include)
|
|
|
-CFLAGS += -I$(dir $(CC_IPREFIX))/include-fixed -I$(CC_IPREFIX)
|
|
|
+CC_IPREFIX := $(shell $(CC) --print-file-name=include)
|
|
|
+CC_INC := -I$(dir $(CC_IPREFIX))include-fixed -I$(CC_IPREFIX)
|
|
|
+CFLAGS += $(CC_INC)
|
|
|
|
|
|
ifneq ($(DOASSERTS),y)
|
|
|
CFLAGS+=-DNDEBUG
|