📄 header.mak
字号:
ifeq ($(BUILD_PLATFORM),CYGWIN_NT-5.0)PLATFORM_ID = -D_WIN32SEM_FILE = mcosw32.cSHM_FILE = mcomwin.cLOG_FILE = mcologw32.cPTHREADLIB = -lpthreadPLATFORMLIB =SOCKETLIB = -lws2_32COMMONFLAGS = -mno-cygwinMCO_LIB_DYNAMIC= disabledSHAREDF = --dll SOFLAGS += --export-all-symbols -lkernel32SETTINGS_APPLIED=yesendififeq ($(BUILD_PLATFORM),QNX)PLATFORM_ID = -D_QNXSEM_FILE = mcosqnx.cSHM_FILE = mcompsx.cLOG_FILE = mcologpsx.cPTHREADLIB =PLATFORMLIB = -lmSOCKETLIB = -lsocketifeq ($($(MCO_SIDE)_PLATFORM),$(BUILD_PLATFORM))elseAR = nto$($(MCO_SIDE)_PLATFORM)-arSTRIP = nto$($(MCO_SIDE)_PLATFORM)-stripCC = nto$($(MCO_SIDE)_PLATFORM)-gccCXX = nto$($(MCO_SIDE)_PLATFORM)-g++endifSETTINGS_APPLIED=yesendififeq ($(BUILD_PLATFORM),SunOS)AR = arPLATFORM_ID = -D_SOLARISSEM_FILE = mcossol.cSHM_FILE = mcomipc.cLOG_FILE = mcologpsx.cPTHREADLIB = -lpthreadPLATFORMLIB = -lrt -lnslSOCKETLIB = -lsocketSHAREDF = -GBUILD_ARCH=$(shell uname -p)$(MCO_SIDE)_ARCH = $(shell echo $(BUILD_ARCH) | sed -e's/i.86/ix86/' -e's/^[xX]86.*/ix86/' -e's/sun4u/sparc64/' )ifeq ($($(MCO_SIDE)_ARCH),ix86)ARCH_FLAGS += -D_Ix86endififeq ($($(MCO_SIDE)_ARCH),sparc)ARCH_FLAGS += -D_SPARCendififeq ($(x64),on)CXXFLAGS += -m64CFLAGS += -m64SOLDFLAGS += -m64 LDFLAGS += -m64 LDCXXFLAGS += -m64 endif ifeq ($($(MCO_SIDE)_PLATFORM),$(BUILD_PLATFORM))SETTINGS_APPLIED=yesendifendififeq ($(BUILD_PLATFORM),HP-UX)COMPILER ?= nativePLATFORM_ID = -D_HPUXSHM_FILE = mcomipc.cSEM_FILE = mcoshpux.cLOG_FILE = mcologpsx.cPTHREADLIB = -lpthreadPLATFORMLIB = -lrt SOCKETLIB = SHAREDF = -lrt -sharedCXXFLAGS = $(COMMONFLAGS) $(PLATFORM_ID) $(ARCH_FLAGS) -D_XOPEN_SOURCE_EXTENDED -D_INCLUDE__STDC_A1_SOURCECFLAGS = $(COMMONFLAGS) $(PLATFORM_ID) $(ARCH_FLAGS) -D_XOPEN_SOURCE_EXTENDED PICF =HOST_FLAGS += -DHAVE_ALLOCA_HBUILD_ARCH=$(shell uname -m)ifeq ($(BUILD_ARCH),ia64)ARCH_FLAGS += -D_ITANIUMendififeq ($(COMPILER),native)STATICF = -NSHAREDF = -b -lrtCC = ccCXX = aCCCFLAGS += +z -Aeifeq ($(x64),on)CFLAGS += +DD64 CXXFLAGS += +DD64 SOLDFLAGS += +DD64 LDFLAGS += +DD64 LDCXXFLAGS += +DD64 elseCFLAGS += +DD32 CXXFLAGS += +DD32 SOLDFLAGS += +DD32 LDFLAGS += +DD32 LDCXXFLAGS += +DD32endif# +DAportable is applicable for PA-RISK hardware only ifneq ($(BUILD_ARCH),ia64)CFLAGS += +DAportable endifelseifeq ($(x64),on)CXXFLAGS += -mlp64CFLAGS += -mlp64SOLDFLAGS += -mlp64 LDFLAGS += -mlp64 LDCXXFLAGS += -mlp64 endif endififeq ($($(MCO_SIDE)_PLATFORM),$(BUILD_PLATFORM))SETTINGS_APPLIED=yesendifendif#-------------------------------------ifeq ($(TARGET_OS_HINT),eCos)ifneq ($(MCO_SIDE),HOST)ifeq ($(ECO_INSTALL_DIR),)ECO_INSTALL_DIR = $(MCO_ROOT)/target/ecos.kern/installifeq ($(shell test -f $(MCO_ROOT)/target/ecos.kern/kern.ok && echo present ),)ifeq ($(shell cd $(MCO_ROOT)/target/ecos.kern >/dev/null 2>&1 && chmod 0777 $(MCO_ROOT)/target/ecos.kern/buildecos.sh >/dev/null 2>&1 && $(MCO_ROOT)/target/ecos.kern/buildecos.sh >/dev/null 2>&1 || echo fail),fail)#just building kernel$(error Unable to build eCos kernel)endifendif endif PLATFORMLIB += -Ttarget.ldPTHREADLIB =SOCKETLIB =LDFLAGS += -nostdlib -L$(ECO_INSTALL_DIR)/libSEM_FILE = mcosecos.cSHM_FILE =LOG_FILE =MCO_INCLUDE += -I$(ECO_INSTALL_DIR)/include NET_TEST = $(MCO_ROOT)/target/ecos.net/nettest.cNET_TEST_COMP = $(CC) $(CFLAGS) $(MCO_INCLUDE) $(CCCOMPF) -o $(MCO_ROOT)/target/ecos.net/a.out $(NET_TEST) >/dev/null 2>&1 && echo presentendifMCO_CFG_OVERRIDE += -DMCO_CONFIG_OVERRIDE_WCHAR -DMCO_CONFIG_OVERRIDE_SHMCFLAGS += -D_ECOS CXXFLAGS += -D_ECOSifneq ($(shell $(NET_TEST_COMP)),present)NN=onendif endif#-------------------------------------ifeq ($(x64),on)ARCH_FLAGS += -DMCO_PLATFORM_X64 -DMCO_LONG_OBJECTSendififneq ($(SETTINGS_APPLIED),yes)$(error Unable to apply build settings)endif## Override for GENERIC (POSIX) mode ----------------------------------ifeq ($(GENERIC),enabled)SEM_FILE = mcospsx.cSHM_FILE = mcompsx.cLOG_FILE = mcologpsx.cendif## Dealing with debug and optimizatation ------------------------------ifeq ($(OPTIMIZE),size)OPTIMIZEFLAGS = $(OPTIMIZEF_SIZE)elseOPTIMIZEFLAGS = $(OPTIMIZEF_SPEED)endififdef DEBUGDEBUGFLAGS = $(DEBUGF)OPTIMIZEFLAGS = elseLDCXXFLAGS += $(LDCXXSTRIPF)LDFLAGS += $(LDSTRIPF)SOFLAGS += $(LDSTRIPF)endif## Pretty build log ---------------------------------------------------ifndef SHOW_BUILD_LOGQUIET_COMPILE =@echo Building $< ...QUIET_FINALIZE=@echo Finalizing $(MCO_TITLE) ... ;\cat $(MCO_BUILD_LOG_DIR)/$(MCO_TITLE)$(MCO_LOGFILE_SFX) | grep 'MCO-MESSAGE' | sed -e 's/.*MCO-MESSAGE *//'QUIET_PREFIX =@QUIET_SUFFIX =1>>$(MCO_BUILD_LOG_DIR)/$(MCO_TITLE)$(MCO_LOGFILE_SFX) 2>>$(MCO_BUILD_LOG_DIR)/$(MCO_TITLE)$(MCO_LOGFILE_SFX)MAKEFLAGS += --no-print-directoryelseQUIET_COMPILE =QUIET_FINALIZE=QUIET_PREFIX =QUIET_SUFFIX =endif## Compilation rules -------------------------------------------------objdir = $(addprefix $(MCO_OBJ_DIR)/,$(filter %.o,$(notdir $(1:%.c=%.o)))) $(addprefix $(MCO_OBJ_DIR)/,$(filter %.o,$(notdir $(1:%.cpp=%.o))))OBJ = $(call objdir,$(SRC))ifeq ($(MCO_LIB_DYNAMIC),enabled)OBJ_L = $(OBJ:.o=.lo)elseOBJ_L =endif.make_obj_dir:ifndef SHOW_BUILD_LOG @sh -c "if [ ! -d $(MCO_BUILD_LOG_DIR) ] ; then mkdir $(MCO_BUILD_LOG_DIR); exit 0; fi" @echo " RUNTIME_VERSION: $(shell $(MCO_VERSION))">$(MCO_BUILD_LOG_DIR)/$(MCO_TITLE)$(MCO_LOGFILE_SFX) @echo " MCO_SIDE: $(MCO_SIDE)">>$(MCO_BUILD_LOG_DIR)/$(MCO_TITLE)$(MCO_LOGFILE_SFX) @echo " SRC: $(SRC)">>$(MCO_BUILD_LOG_DIR)/$(MCO_TITLE)$(MCO_LOGFILE_SFX) @echo " MCO_RT: $(MCO_RT)">>$(MCO_BUILD_LOG_DIR)/$(MCO_TITLE)$(MCO_LOGFILE_SFX) @echo " CC: $(CC)">>$(MCO_BUILD_LOG_DIR)/$(MCO_TITLE)$(MCO_LOGFILE_SFX) @echo " CXX: $(CXX)">>$(MCO_BUILD_LOG_DIR)/$(MCO_TITLE)$(MCO_LOGFILE_SFX) @echo " CFLAGS: $(CFLAGS)">>$(MCO_BUILD_LOG_DIR)/$(MCO_TITLE)$(MCO_LOGFILE_SFX) @echo " CXXFLAGS: $(CXXFLAGS)">>$(MCO_BUILD_LOG_DIR)/$(MCO_TITLE)$(MCO_LOGFILE_SFX) @echo " LD: $(LD)">>$(MCO_BUILD_LOG_DIR)/$(MCO_TITLE)$(MCO_LOGFILE_SFX) @echo " LDCXX: $(LDCXX)">>$(MCO_BUILD_LOG_DIR)/$(MCO_TITLE)$(MCO_LOGFILE_SFX) @echo " LDFLAGS: $(LDFLAGS)">>$(MCO_BUILD_LOG_DIR)/$(MCO_TITLE)$(MCO_LOGFILE_SFX) @echo " LDCXXFLAGS: $(LDCXXFLAGS)">>$(MCO_BUILD_LOG_DIR)/$(MCO_TITLE)$(MCO_LOGFILE_SFX) @echo "MCO_CFG_OVERRIDE: $(MCO_CFG_OVERRIDE)">>$(MCO_BUILD_LOG_DIR)/$(MCO_TITLE)$(MCO_LOGFILE_SFX) @echo " MCO_INCLUDE: $(MCO_INCLUDE)">>$(MCO_BUILD_LOG_DIR)/$(MCO_TITLE)$(MCO_LOGFILE_SFX) @echo " PTHREADLIB: $(PTHREADLIB)">>$(MCO_BUILD_LOG_DIR)/$(MCO_TITLE)$(MCO_LOGFILE_SFX) @echo " PLATFORMLIB: $(PLATFORMLIB)">>$(MCO_BUILD_LOG_DIR)/$(MCO_TITLE)$(MCO_LOGFILE_SFX) @echo " SOCKETLIB: $(SOCKETLIB)">>$(MCO_BUILD_LOG_DIR)/$(MCO_TITLE)$(MCO_LOGFILE_SFX) @echo " PATH: $(PATH)">>$(MCO_BUILD_LOG_DIR)/$(MCO_TITLE)$(MCO_LOGFILE_SFX) @echo >>$(MCO_BUILD_LOG_DIR)/$(MCO_TITLE)$(MCO_LOGFILE_SFX) @echo @echo Compiling $(MCO_TITLE) ...endif @sh -c "if [ ! -d $(MCO_OBJ_DIR) ] ; then mkdir $(MCO_OBJ_DIR); exit 0; fi" .clear_obj_dir: @sh -c "if [ -d $(MCO_OBJ_DIR) ] ; then rm -f $(MCO_OBJ_DIR)/*; exit 0; fi"$(MCO_OBJ_DIR)/%.o: %.cpp $(QUIET_COMPILE) $(QUIET_PREFIX)$(CXX) $(CXXFLAGS) $(MCO_CFG_OVERRIDE) $(MCO_INCLUDE) $(CXXCOMPF) $< $(CXXOUTPUTF) $@ $(QUIET_SUFFIX)$(MCO_OBJ_DIR)/%.lo: %.cpp $(QUIET_COMPILE) $(QUIET_PREFIX)$(CXX) $(CXXFLAGS) $(SOCXXFLAGS) $(MCO_CFG_OVERRIDE) $(MCO_INCLUDE) $(CXXCOMPF) $< $(CXXOUTPUTF) $@ $(QUIET_SUFFIX)$(MCO_OBJ_DIR)/%.o: %.c $(QUIET_COMPILE) $(QUIET_PREFIX)$(CC) $(CFLAGS) $(MCO_CFG_OVERRIDE) $(MCO_INCLUDE) $(CCCOMPF) $< $(CCOUTPUTF) $@ $(QUIET_SUFFIX)$(MCO_OBJ_DIR)/%.lo: %.c $(QUIET_COMPILE) $(QUIET_PREFIX)$(CC) $(CFLAGS) $(SOCFLAGS) $(MCO_CFG_OVERRIDE) $(MCO_INCLUDE) $(CCCOMPF) $< $(CCOUTPUTF) $@ $(QUIET_SUFFIX)$(MCO_OBJ_DIR)/%.o: $(MCO_ROOT)/platform/%.c $(QUIET_COMPILE) $(QUIET_PREFIX)$(CC) $(CFLAGS) $(MCO_CFG_OVERRIDE) $(MCO_INCLUDE) $(CCCOMPF) $< $(CCOUTPUTF) $@ $(QUIET_SUFFIX)$(MCO_OBJ_DIR)/%.o: ../common/%.c $(QUIET_COMPILE) $(QUIET_PREFIX)$(CC) $(CFLAGS) $(MCO_CFG_OVERRIDE) $(MCO_INCLUDE) $(CCCOMPF) $< $(CCOUTPUTF) $@ $(QUIET_SUFFIX)ifndef SHOW_BUILD_LOG.remove_obj_dir: @echo Removing temporary files $(MCO_TITLE) @sh -c "if [ -d $(MCO_OBJ_DIR) ] ; then rm -rf $(MCO_OBJ_DIR); else exit 0; fi"else.remove_obj_dir: sh -c "if [ -d $(MCO_OBJ_DIR) ] ; then rm -rf $(MCO_OBJ_DIR); else exit 0; fi"endif.show_compile_settings: @echo CC=$(CC) @echo CFLAGS=$(CFLAGS) @echo LDFLAGS=$(LDFLAGS) @echo CXX=$(CXX) @echo CXXFLAGS=$(CXXFLAGS) @echo LCXXDFLAGS=$(LCXXDFLAGS) @echo GENERIC=$(GENERIC) @echo BUILD_PLATFORM=$(BUILD_PLATFORM) @echo HOST_PLATFORM=$(HOST_PLATFORM) @echo TARGET_PLATFORM=$(TARGET_PLATFORM) @echo TARGET_OS_HINT=$( TARGET_OS_HINT) @echo BUILD_ARCH=$(BUILD_ARCH) @echo HOST_ARCH=$(HOST_ARCH) @echo TARGET_ARCH=$(TARGET_ARCH)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -