mirror of
https://github.com/cesanta/mongoose.git
synced 2024-12-21 05:21:03 +08:00
bafc30bec6
"#if FOO" still works with simple -DFOO, but gives more flexibility. Specifically, if user expressed no preference (FOO is not defined), we can apply reasonable defaults (this is the legitimate use of ifdef). In short, from now on, please use #if MG_ENABLE_FOO instead of #ifdef MG_ENABLE_FOO Since we are all used to #ifdef, this change also adds a precommit check to police this. Specifically, in *.h and *.c files that are Copyright Cesanta, "ifdef" and "if defined()" are not allowed to be used with macros that contain ENABLE or DISABLE, unless the like also contains "ifdef-ok". Hence, if you are sure you want to use ifdef, use this: #ifdef MG_ENABLE_FOO /* ifdef-ok */ PUBLISHED_FROM=9be829448f53cff575d6cae8b9945fb12531c15a
119 lines
2.8 KiB
Makefile
119 lines
2.8 KiB
Makefile
#############################################################
|
|
# Required variables for each makefile
|
|
# Discard this section from all parent makefiles
|
|
# Expected variables (with automatic defaults):
|
|
# CSRCS (all "C" files in the dir)
|
|
# SUBDIRS (all subdirs with a Makefile)
|
|
# GEN_LIBS - list of libs to be generated ()
|
|
# GEN_IMAGES - list of object file images to be generated ()
|
|
# GEN_BINS - list of binaries to be generated ()
|
|
# COMPONENTS_xxx - a list of libs/objs in the form
|
|
# subdir/lib to be extracted and rolled up into
|
|
# a generated lib/image xxx.a ()
|
|
#
|
|
TARGET = eagle
|
|
#FLAVOR = release
|
|
FLAVOR = debug
|
|
|
|
EXTRA_CCFLAGS += -Wall -Werror
|
|
|
|
ifndef PDIR # {
|
|
GEN_IMAGES= eagle.app.v6.out
|
|
GEN_BINS= eagle.app.v6.bin
|
|
SPECIAL_MKTARGETS=$(APP_MKTARGETS)
|
|
SUBDIRS=user
|
|
|
|
endif # } PDIR
|
|
|
|
LDDIR = $(SDK_PATH)/ld
|
|
|
|
CCFLAGS += -Os -Wno-undef
|
|
|
|
TARGET_LDFLAGS = \
|
|
-nostdlib \
|
|
-Wl,-EL \
|
|
--longcalls \
|
|
--text-section-literals
|
|
|
|
ifeq ($(FLAVOR),debug)
|
|
TARGET_LDFLAGS += -g -O2
|
|
endif
|
|
|
|
ifeq ($(FLAVOR),release)
|
|
TARGET_LDFLAGS += -g -O0
|
|
endif
|
|
|
|
COMPONENTS_eagle.app.v6 = \
|
|
user/libuser.a
|
|
|
|
LINKFLAGS_eagle.app.v6 = \
|
|
-L$(SDK_PATH)/lib \
|
|
-Wl,--gc-sections \
|
|
-nostdlib \
|
|
-T$(LD_FILE) \
|
|
-Wl,--no-check-sections \
|
|
-u call_user_start \
|
|
-Wl,-static \
|
|
-Wl,--start-group \
|
|
-lcirom \
|
|
-lgcc \
|
|
-lhal \
|
|
-lphy \
|
|
-lpp \
|
|
-lnet80211 \
|
|
-lwpa \
|
|
-lcrypto \
|
|
-lmain \
|
|
-lfreertos \
|
|
-llwip \
|
|
$(DEP_LIBS_eagle.app.v6) \
|
|
-Wl,--end-group
|
|
|
|
DEPENDS_eagle.app.v6 = \
|
|
$(LD_FILE) \
|
|
$(LDDIR)/eagle.rom.addr.v6.ld
|
|
|
|
#############################################################
|
|
# Configuration i.e. compile options etc.
|
|
# Target specific stuff (defines etc.) goes in here!
|
|
# Generally values applying to a tree are captured in the
|
|
# makefile at its root level - these are then overridden
|
|
# for a subtree within the makefile rooted therein
|
|
#
|
|
|
|
#UNIVERSAL_TARGET_DEFINES = \
|
|
|
|
# Other potential configuration flags include:
|
|
# -DTXRX_TXBUF_DEBUG
|
|
# -DTXRX_RXBUF_DEBUG
|
|
# -DWLAN_CONFIG_CCX
|
|
CONFIGURATION_DEFINES = -DICACHE_FLASH
|
|
|
|
DEFINES += \
|
|
$(UNIVERSAL_TARGET_DEFINES) \
|
|
$(CONFIGURATION_DEFINES)
|
|
|
|
DDEFINES += \
|
|
$(UNIVERSAL_TARGET_DEFINES) \
|
|
$(CONFIGURATION_DEFINES)
|
|
|
|
|
|
#############################################################
|
|
# Recursion Magic - Don't touch this!!
|
|
#
|
|
# Each subtree potentially has an include directory
|
|
# corresponding to the common APIs applicable to modules
|
|
# rooted at that subtree. Accordingly, the INCLUDE PATH
|
|
# of a module can only contain the include directories up
|
|
# its parent path, and not its siblings
|
|
#
|
|
# Required for each makefile to inherit from the parent
|
|
#
|
|
|
|
INCLUDES := $(INCLUDES) -I $(PDIR)include
|
|
sinclude $(SDK_PATH)/Makefile
|
|
|
|
.PHONY: FORCE
|
|
FORCE:
|
|
|