.EXPORT_ALL_VARIABLES: ############################################################################ # # A generic ARM config.arch that can be included by other platforms # to reduce the number of places that need to be edited when something # common changes. If you include this file you should provide: # # CPUFLAGS - cpu specific flags to pass to the compiler # CPULDFLAGS - cpu specific flags to pass to the linker # VENDOR_CFLAGS - vendor specific flags to pass to the compiler # # Greg Ungerer # ############################################################################ # # Default console setting # ifndef CONSOLE_BAUD_RATE CONSOLE_BAUD_RATE = 115200 endif ifndef HW_PRODUCT HW_PRODUCT = $(CONFIG_PRODUCT) endif ifndef HW_VENDOR HW_VENDOR = $(CONFIG_VENDOR) endif ifndef EXTRA_MODULE_DIRS ifeq ($(ROOTDIR)/modules,$(wildcard $(ROOTDIR)/modules)) ifdef CONFIG_DEFAULTS_KERNEL_2_6 EXTRA_MODULE_DIRS = $(ROOTDIR)/modules/ else EXTRA_MODULE_DIRS = $(ROOTDIR)/modules endif endif endif ifndef RELFILES RELFILES = boot/boot.bin,.sgb boot/boot.elf \ images/image.bin,.sgu $(LINUXDIR)/linux endif ifndef NFIMAGE NFIMAGE=image.bin endif ############################################################################ # # The makefiles need to know how to do things in different contexts # To save some pain we put it all here. # # First settings we always want for all builds. # MACHINE = arm ARCH = arm CROSS_COMPILE = arm-linux- CROSS = $(CROSS_COMPILE) CC = $(ucfront_cc) $(CROSS_COMPILE)gcc $(CPUFLAGS) AS = $(CROSS_COMPILE)as $(CPUFLAGS) CXX = $(ucfront_cxx) $(CROSS_COMPILE)g++ $(CPUFLAGS) AR = $(CROSS_COMPILE)ar LD = $(CROSS_COMPILE)ld $(CPULDFLAGS) OBJCOPY = $(CROSS_COMPILE)objcopy RANLIB = $(CROSS_COMPILE)ranlib STRIPTOOL = $(CROSS_COMPILE)strip STRIP = $(STRIPTOOL) UCLINUX_BUILD_SET = 0 # have we set a special config below # REVISIT: # glibc - crn += -lc_nonshared -lgcc # Pull in common definitions include $(ROOTDIR)/vendors/config/common/config.arch ############################################################################ # # General purpose lib building rules, uClibc.config uses these when # possible. # ifdef UCLINUX_BUILD_LIB ifeq ($(findstring glibc,$(LIBCDIR)),glibc) GLIBC_TARGET_OPTS = arm-linux --enable-shared endif ifdef CONFIG_LIB_DEBUG CFLAGS := -g LDFLAGS := else CFLAGS := -O1 LDFLAGS := -Wl,-S endif CFLAGS += -fno-common -fno-builtin -Wall #-Werror CFLAGS += -Dlinux -D__linux__ -Dunix CFLAGS += $(VENDOR_CFLAGS) -DEMBED LDFLAGS += -fno-common -fno-builtin # don't want all the CFLAGS for uClibc/Config ARCH_CFLAGS := $(CFLAGS) UCLINUX_BUILD_SET=1 endif ############################################################################ # # Settings for building user apps # ifdef UCLINUX_BUILD_USER ifdef CONFIG_USER_DEBUG CFLAGS := -g LDFLAGS := else CFLAGS := -O1 LDFLAGS := -g endif CFLAGS += -fno-common -fno-builtin -Wall #-Werror CFLAGS += -Dlinux -D__linux__ -Dunix CFLAGS += $(VENDOR_CFLAGS) -DEMBED LDFLAGS += -fno-common -fno-builtin CXXFLAGS = $(CFLAGS) -nostdinc++ CXXSUP = $(shell $(CXX) -print-file-name=libsupc++.a) FLTFLAGS := export FLTFLAGS # for anyone still using it CONVERT = /bin/true UCLINUX_BUILD_SET=1 endif ############################################################################ # # fall through, do other config options perhaps # ifeq ($(UCLINUX_BUILD_SET),1) EXTRA_CFLAGS := $(CPUFLAGS) CXXLIBS = $(LIBSTDCPP) $(CXXSUP) LDLIBS = $(LIBBIND) SH_LDFLAGS = $(LDFLAGS) SH_LDLIBS = $(LDLIBS) ucfront_cc := ucfront-gcc ucfront_cxx := ucfront-g++ endif ############################################################################