📄 header.mak
字号:
## Makefiles header# OS : Linux, QNX, Solaris, HPUX# Tool : gcc or native complier## This header is included into the individual# makefiles for the runtime and samples## Copyright (c) 2001-2006 McObject LLC.# #### Build control switches ---------------------------------# Remove the comment from follows switches or type:# make x64=on - to build x64 version# make SHOW_BUILD_LOG=on - to see building progress# make DEBUG=on - to make a debug version of the runtime# make OPTIMIZE=size - to minimize the runtime size# make OPTIMIZE=speed - to maximize the runtime perfomance# make STATIC=on - to enable static linkage of executables# make COMPILER=gcc - to use gcc for building the runtime, tools and samples# make COMPILER=native - to use a native compiler to build the runtime, tools and samples# make HOST_PLATFORM= - to build tools and utilites for specified host platform# make HOST_FLAGS= - to specify additional flags for host platform# make TARGET_PLATFORM= - to build runtime and samples for specified target platform (mipsel,arm,etc)# make TARGET_FLAGS= - to specify additional flags for target platform (ex -mcpu=XXXX)# make TARGET_OS_HINT= - to tune up the runtime for specified target OS (ex. uCLinux or LynxOS)# make MCO_LIB_DYNAMIC= - to build dynamic version (.so) of the runtime# make MCO_LIB_STATIC= - to build static version (.a) of the runtime# make GENERIC=enabled - to build the runtime and binaries using generic (POSIX) syncronization # and shared memory interface# make TARGET_ARCH= - to override target's and/or# make HOST_ARCH= - host's cpu architecture# possible values: arm|mips|ix86|ppc|m68k|sparc64# make TARGET_CPUNO= - to override target's and/or # make HOST_CPUNO= - host's number of cpu(s)# Note: zero value of the parameter means one CPU in host/target system# make NN=on - "no network code" override.#COMPILER=gcc#SHOW_BUILD_LOG=on#DEBUG=on#TARGET_OS_HINT=eCos#ECO_INSTALL_DIR=/home/builder/ecos/ecostest_install#OPTIMIZE=speed#OPTIMIZE=size#STATIC=on#COMPILER=gnu (default)#COMPILER=native#HOST_PLATFORM=#HOST_FLAGS=-g#TARGET_PLATFORM=mipsel-linux|arm-linux#TARGET_OS_HINT=uCLinux#TARGET_FLAGS=-mips2|-m5307#TARGET_FLAGS=-g#MCO_LIB_DYNAMIC=enabled#MCO_LIB_DYNAMIC=disabled#MCO_LIB_STATIC=enabled#MCO_LIB_STATIC=disabled#GENERIC=enabled#TARGET_ARCH=arm|mips|ix86|ppc|m68k|sparc64#HOST_ARCH=arm|mips|ix86|ppc|m68k|sparc64#TARGET_CPUNO=0|1|2|3|4|5...#HOST_CPUNO=0|1|2|3|4|5...#NN=onTARGET_CPUNO=2## Platforms ----------------------------------------------# Analyse build evironmentifneq ($(shell echo $(ENV_PREFIX)|grep lynx),)# LynxOS. Try to guess target's architectureBUILD_PLATFORM := LynxBUILD_ARCH := $(shell echo $(ENV_PREFIX) | sed -e's%.*/lynx/.*/%%' )else# Default UNIX (Linux, QNX, SunOS, HP-UX)BUILD_PLATFORM := $(shell uname -s)BUILD_ARCH := $(shell uname -m)endifHOST_PLATFORM ?= $(BUILD_PLATFORM)TARGET_PLATFORM ?= $(BUILD_PLATFORM)## Common build variables ---------------------------------------------MCO_INCLUDE = -I$(MCO_ROOT)/includeSAMPLE_INCLUDE = -I$(MCO_ROOT)/platform -I$(MCO_ROOT)/samples/commonMCO_SQL_INCLUDE = -I$(MCO_ROOT)/include/sqlMCO_TARGET = $(MCO_ROOT)/targetMCO_HOST = $(MCO_ROOT)/hostMCO_BIN = $(MCO_$(MCO_SIDE))/binMCO_BIN_SO = $(MCO_$(MCO_SIDE))/bin.soMCO_LIB_SRC = $(MCO_TARGET)/mcolibMCOCOMP = $(MCO_HOST)/bin/mcocomp$($(MCO_SIDE)_BINARY_SUFFIX)ifdef MCO_OBJ_DIRMCO_OBJ_DIR := $(addprefix obj,$(MCO_OBJ_DIR))elseMCO_OBJ_DIR := objendifMCO_BUILD_LOG_DIR = $(MCO_ROOT)/_build-logsMCO_LOGFILE_SFX = .logMCO_CFG_SUFFIX_A := .aMCO_CFG_SUFFIX_SO:= .soMCO_VERSION = test -f $(MCO_ROOT)/include/version && cat $(MCO_ROOT)/include/versionMCO_SQLLIB_EXISTS = test -f $(MCO_BIN)/libmcolib_sql.a -o -f $(MCO_BIN_SO)/libmcolib_sql.so && echo presentifeq ($(findstring _sql,$(MCO_RT)),)MCO_RTLIB = -L$(MCO_BIN) -lmcolib$(MCO_RT)elseifeq ($(shell $(MCO_SQLLIB_EXISTS)),present)MCO_RTLIB = -L$(MCO_BIN) -lmcolib$(MCO_RT)elseMCO_RTLIB = -L$(MCO_BIN) -lmcolib$($(MCO_RT):_sql=)endifendifMCO_RTSQL = -L$(MCO_BIN) -lmcosql -lmcoapiMCO_RTRSQL = -L$(MCO_BIN) -lmcoapi -lmcosql -lmcorsql## Platform-dependent variables ----------------------------------------# Common settingsRMFILE = rm -fRMDIR = rm -rfCPFILE = cp -fAR = arARFLAGS = rcSTRIP = stripBISON_ := $(shell which bison > /dev/null 2>&1; if [ 1 -eq 0 ]; then echo bison -d; fi )YACC_ := $(shell which yacc > /dev/null 2>&1; if [ 1 -eq 0 ]; then echo yacc; fi )ifeq ($(strip $(BISON_)),)ifneq ($(strip $(YACC_)),)BISON := $(YACC_)elseBISON :=endifelseBISON := $(BISON_)endifCOMMONFLAGS = $(DEBUGFLAGS) $(OPTIMIZEFLAGS) $($(MCO_SIDE)_FLAGS)CFLAGS = $(COMMONFLAGS) $(PLATFORM_ID) $(ARCH_FLAGS) -WallCXXFLAGS = $(COMMONFLAGS) $(PLATFORM_ID) $(ARCH_FLAGS) -ftemplate-depth-99 -WallSOCFLAGS = $(PICF)SOCXXFLAGS = $(PICF) SOLDFLAGS = $(COMMONFLAGS) $(PICF) $(SHAREDF)ifdef STATICLDFLAGS = $(COMMONFLAGS) $(STATICF)LDCXXFLAGS = $(COMMONFLAGS) $(STATICF)elseLDFLAGS = $(COMMONFLAGS)LDCXXFLAGS = $(COMMONFLAGS)endifMCO_LIB_DYNAMIC ?= enabledMCO_LIB_STATIC ?= enabledifneq ($(COMPILER),native)CC = gccCXX = g++endifLD = $(CC)LDCXX = $(CXX)LDOUTPUTF = -oLDCXXOUTPUTF = -oLDSTRIPF = -sLDCXXSTRIPF = -sCCOUTPUTF = -oCXXOUTPUTF = -oCCCOMPF = -cCXXCOMPF = -cDEBUGF = -gOPTIMIZEF_SIZE = -OsOPTIMIZEF_SPEED = -O3STATICF = -staticSHAREDF = -sharedPICF = -fPICHOST_BINARY_SUFFIX :=TARGET_BINARY_SUFFIX :=# platform-dependent overridesSETTINGS_APPLIED=noifeq ($(BUILD_PLATFORM),Linux)# Try to guess host and target architecturesBUILD_CPUNO := $(shell cat /proc/cpuinfo | grep -E '^processor.*:' | tail -n 1 | sed -e's/[[:space:]]//g'| cut -d':' -f2)$(MCO_SIDE)_CPUNO?=$(BUILD_CPUNO)ifndef $(MCO_SIDE)_ARCHifeq ($(BUILD_PLATFORM),$($(MCO_SIDE)_PLATFORM))$(MCO_SIDE)_ARCH = $(shell echo $(BUILD_ARCH) | sed -e's/i.86/ix86/' -e's/^[xX]86.*/ix86/' -e's/sun4u/sparc64/' -e's/arm.*/arm/' -e's/sa110/arm/' -e's/mips.*/mips/')else$(MCO_SIDE)_ARCH = $(shell echo $($(MCO_SIDE)_PLATFORM) | cut -d'-' -f1 | sed -e's/ppc.*/ppc/' -e's/m68k.*/m68k/' -e's/i.86/ix86/' -e's/^[xX]86.*/ix86/' -e's/sun4u/sparc64/' -e's/arm.*/arm/' -e's/sa110/arm/' -e's/mips.*/mips/')endifendififneq ($($(MCO_SIDE)_CPUNO),0)ARCH_FLAGS += -D_SMPendififeq ($($(MCO_SIDE)_ARCH),ix86)ARCH_FLAGS += -D_Ix86endififeq ($($(MCO_SIDE)_ARCH),mips)ARCH_FLAGS += -D_MIPS32endififeq ($($(MCO_SIDE)_ARCH),ppc)ARCH_FLAGS += -D_PPC32endififeq ($($(MCO_SIDE)_ARCH),m68k)ARCH_FLAGS += -D_M68Kendififeq ($($(MCO_SIDE)_ARCH),arm)ARCH_FLAGS += -D_ARM32endififeq ($($(MCO_SIDE)_ARCH),sparc64)ARCH_FLAGS += -D_SPARC64endififeq ($($(MCO_SIDE)_ARCH),ia64)ARCH_FLAGS += -D_ITANIUMx64 = onendififeq ($(findstring -mthumb,$($(MCO_SIDE)_FLAGS)),-mthumb)ARCH_FLAGS += -D_ARM_THUMBendifPLATFORM_ID = -D_LINUXSEM_FILE = mcoslnx.cSHM_FILE = mcomipc.cLOG_FILE = mcologpsx.cPTHREADLIB = -lpthreadSOCKETLIB =PLATFORMLIB = # Pleas, use PLATFORMLIB=-lrt if you need sem_* syncronization primitives#PLATFORMLIB = -rtifeq ($(MCO_SIDE),HOST)LDFLAGS += $(STATICF)LDCXXFLAGS += $(STATICF)endififneq ($($(MCO_SIDE)_PLATFORM),$(BUILD_PLATFORM))AR = $($(MCO_SIDE)_PLATFORM)-arSTRIP = $($(MCO_SIDE)_PLATFORM)-stripCC = $($(MCO_SIDE)_PLATFORM)-gccCXX = $($(MCO_SIDE)_PLATFORM)-g++endififeq ($(TARGET_OS_HINT),uCLinux)PLATFORMLIB += -lcLDFLAGS += -elf2fltSHM_FILE = mcosucl.cCFLAGS += -D__UCLINUXendififeq ($(x64),on)ifndef DEBUGOPTIMIZEF_SPEED = -O2endif endif SETTINGS_APPLIED=yesendififeq ($(BUILD_PLATFORM),Lynx)# Can't see a method to guess number of CPUs on the target. # Default is SMP, use TARGET_CPUNO and HOST_CPUNO to overrideBUILD_CPUNO := 1$(MCO_SIDE)_CPUNO?=$(BUILD_CPUNO)ifndef $(MCO_SIDE)_ARCH# Try to guess target's architectureLYNX_ARCH = $(BUILD_ARCH)else # Take specified oneLYNX_ARCH = $($(MCO_SIDE)_ARCH)endif# normalize arch name$(MCO_SIDE)_ARCH = $(shell echo $(LYNX_ARCH) | sed -e's/sun4u/sparc64/' -e's/arm.*/arm/' -e's/sa110/arm/' -e's/mips.*/mips/')ifneq ($($(MCO_SIDE)_CPUNO),0)ARCH_FLAGS += -D_SMPendififeq ($($(MCO_SIDE)_ARCH),ix86)ARCH_FLAGS += -D_Ix86endififeq ($($(MCO_SIDE)_ARCH),mips)ARCH_FLAGS += -D_MIPS32endififeq ($($(MCO_SIDE)_ARCH),ppc)ARCH_FLAGS += -D_PPC32endififeq ($($(MCO_SIDE)_ARCH),m68k)ARCH_FLAGS += -D_M68Kendififeq ($($(MCO_SIDE)_ARCH),arm)ARCH_FLAGS += -D_ARM32endififeq ($($(MCO_SIDE)_ARCH),sparc64)ARCH_FLAGS += -D_SPARC64endififeq ($(findstring -mthumb,$($(MCO_SIDE)_FLAGS)),-mthumb)ARCH_FLAGS += -D_ARM_THUMBendifHOST_BINARY_SUFFIX :=.lynxPLATFORM_ID = -D_LYNX -D__LYNXSEM_FILE = mcoslynx.cSHM_FILE = mcomlynx.cLOG_FILE = mcologpsx.cPTHREADLIB =SOCKETLIB =PLATFORMLIB =LDFLAGS += -mthreads -L$(ENV_PREFIX)/lib/threadifeq ($(MCO_SIDE),HOST)LDFLAGS += $(STATICF)LDCXXFLAGS += $(STATICF)endifSETTINGS_APPLIED=yesendif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -