📄 gcc.mak
字号:
# Time-stamp: <06/02/10 08:57:46 ptr>#INCLUDES = -I$(SRCROOT)/includeINCLUDES :=CXX := c++CC := gcc -ansiifdef TARGET_OSCXX := ${TARGET_OS}-${CXX}CC := ${TARGET_OS}-${CC}endififeq ($(OSNAME), darwin)CXX_VERSION := $(shell ${CXX} -dumpversion)# TODO: ensure PANTHER's gcc compatibility...CXX_VERSION_MAJOR := $(shell ${CXX} -dumpversion | awk 'BEGIN { FS = "."; } { print $1; }')CXX_VERSION_MINOR := $(shell ${CXX} -dumpversion | awk 'BEGIN { FS = "."; } { print $2; }')CXX_VERSION_PATCH := $(shell ${CXX} -dumpversion | awk 'BEGIN { FS = "."; } { print $3; }')# This is to differentiate Apple-builded compiler from original# compiler (it's has different behaviour)ifneq ("$(shell ${CXX} -v 2>&1 | grep Apple)", "")GCC_APPLE_CC := 1endifelseifneq ($(OSNAME), windows)CXX_VERSION := $(shell ${CXX} --version | grep GCC | awk '{ print $$3; }')ifeq ($(CXX_VERSION),)# 2.95 report only versionCXX_VERSION := $(shell ${CXX} --version)endifCXX_VERSION_MAJOR := $(shell echo ${CXX_VERSION} | awk 'BEGIN { FS = "."; } { print $$1; }')CXX_VERSION_MINOR := $(shell echo ${CXX_VERSION} | awk 'BEGIN { FS = "."; } { print $$2; }')CXX_VERSION_PATCH := $(shell echo ${CXX_VERSION} | awk 'BEGIN { FS = "."; } { print $$3; }')endifendifDEFS ?=OPT ?=ifdef WITHOUT_STLPORTINCLUDES =elseINCLUDES = -I${STLPORT_INCLUDE_DIR}endifOUTPUT_OPTION = -o $@LINK_OUTPUT_OPTION = ${OUTPUT_OPTION}CPPFLAGS = $(DEFS) $(INCLUDES)ifeq ($(OSNAME), cygming)RCFLAGS = --include-dir=${STLPORT_INCLUDE_DIR} --output-format coff -DCOMP=gccrelease-shared : RCFLAGS += -DBUILD_INFOS=-O2dbg-shared : RCFLAGS += -DBUILD=g -DBUILD_INFOS=-gstldbg-shared : RCFLAGS += -DBUILD=stlg -DBUILD_INFOS="-g -D_STLP_DEBUG"RC_OUTPUT_OPTION = -o $@CXXFLAGS = -Wall -Wsign-promo -Wcast-qual -Wundef -fexceptions -fidentifndef STLP_BUILD_NO_THREADifeq ($(OSREALNAME), mingw)CCFLAGS += -mthreadsCFLAGS += -mthreadsCXXFLAGS += -mthreadselseDEFS += -D_REENTRANTendifendifCCFLAGS += $(OPT)CFLAGS += $(OPT)CXXFLAGS += $(OPT)COMPILE.rc = $(RC) $(RCFLAGS)release-static : DEFS += -D_STLP_USE_STATIC_LIBdbg-static : DEFS += -D_STLP_USE_STATIC_LIBstldbg-static : DEFS += -D_STLP_USE_STATIC_LIBendififeq ($(OSNAME), windows)RCFLAGS = --include-dir=${STLPORT_INCLUDE_DIR} --output-format coff -DCOMP=gccrelease-shared : RCFLAGS += -DBUILD_INFOS=-O2dbg-shared : RCFLAGS += -DBUILD=g -DBUILD_INFOS=-gstldbg-shared : RCFLAGS += -DBUILD=stlg -DBUILD_INFOS="-g -D_STLP_DEBUG"RC_OUTPUT_OPTION = -o $@CXXFLAGS = -Wall -Wsign-promo -Wcast-qual -fexceptions -fidentifndef STLP_BUILD_NO_THREADCCFLAGS += -mthreadsCFLAGS += -mthreadsCXXFLAGS += -mthreadsendifCCFLAGS += $(OPT)CFLAGS += $(OPT)CXXFLAGS += $(OPT)COMPILE.rc = $(RC) $(RCFLAGS)release-static : DEFS += -D_STLP_USE_STATIC_LIBdbg-static : DEFS += -D_STLP_USE_STATIC_LIBstldbg-static : DEFS += -D_STLP_USE_STATIC_LIBendififndef STLP_BUILD_NO_THREADifneq ($(OSNAME),sunos)PTHREAD = -pthreadelsePTHREAD = -pthreadsendifelsePTHREAD =endififeq ($(OSNAME),sunos)CCFLAGS = $(PTHREAD) $(OPT)CFLAGS = $(PTHREAD) $(OPT)# CXXFLAGS = $(PTHREAD) -nostdinc++ -fexceptions -fident $(OPT)CXXFLAGS = $(PTHREAD) -fexceptions -fident $(OPT)# This is here due to bug in GNU make 3.79.1 from Solaris build:stldbg-static: CPPFLAGS = -D_STLP_DEBUG ${CPPFLAGS}stldbg-shared: CPPFLAGS = -D_STLP_DEBUG ${CPPFLAGS}stldbg-static-dep: CPPFLAGS = -D_STLP_DEBUG ${CPPFLAGS}stldbg-shared-dep: CPPFLAGS = -D_STLP_DEBUG ${CPPFLAGS}endififeq ($(OSNAME),linux)CCFLAGS = $(PTHREAD) $(OPT)CFLAGS = $(PTHREAD) $(OPT)ifndef STLP_BUILD_NO_THREADDEFS += -D_REENTRANTendif# CXXFLAGS = $(PTHREAD) -nostdinc++ -fexceptions -fident $(OPT)CXXFLAGS = $(PTHREAD) -fexceptions -fident $(OPT)endififeq ($(OSNAME),openbsd)CCFLAGS = $(PTHREAD) $(OPT)CFLAGS = $(PTHREAD) $(OPT)# CXXFLAGS = $(PTHREAD) -nostdinc++ -fexceptions -fident $(OPT)CXXFLAGS = $(PTHREAD) -fexceptions -fident $(OPT)endififeq ($(OSNAME),freebsd)CCFLAGS = $(PTHREAD) $(OPT)CFLAGS = $(PTHREAD) $(OPT)ifndef STLP_BUILD_NO_THREADDEFS += -D_REENTRANTendif# CXXFLAGS = $(PTHREAD) -nostdinc++ -fexceptions -fident $(OPT)CXXFLAGS = $(PTHREAD) -fexceptions -fident $(OPT)endififeq ($(OSNAME),darwin)CCFLAGS = $(OPT)CFLAGS = $(OPT)ifndef STLP_BUILD_NO_THREADDEFS += -D_REENTRANTendifCXXFLAGS = -fexceptions $(OPT)# This is here due to bug in GNU make 3.79 from MacOS build:stldbg-static : CPPFLAGS = -D_STLP_DEBUG ${CPPFLAGS}stldbg-shared : CPPFLAGS = -D_STLP_DEBUG ${CPPFLAGS}stldbg-static-dep : CPPFLAGS = -D_STLP_DEBUG ${CPPFLAGS}stldbg-shared-dep : CPPFLAGS = -D_STLP_DEBUG ${CPPFLAGS}endififeq ($(OSNAME),hp-ux)CCFLAGS = $(PTHREAD) $(OPT)CFLAGS = $(PTHREAD) $(OPT)# CXXFLAGS = $(PTHREAD) -nostdinc++ -fexceptions -fident $(OPT)CXXFLAGS = $(PTHREAD) -fexceptions -fident $(OPT)endif#ifeq ($(CXX_VERSION_MAJOR),3)#ifeq ($(CXX_VERSION_MINOR),2)#CXXFLAGS += -ftemplate-depth-32#endif#ifeq ($(CXX_VERSION_MINOR),1)#CXXFLAGS += -ftemplate-depth-32#endif#ifeq ($(CXX_VERSION_MINOR),0)#CXXFLAGS += -ftemplate-depth-32#endif#endififeq ($(CXX_VERSION_MAJOR),2)CXXFLAGS += -ftemplate-depth-32endif# Required for correct order of static objects dtors calls:ifneq ($(OSNAME),cygming)ifneq ($(OSNAME),windows)ifneq ($(OSNAME),darwin)ifneq ($(CXX_VERSION_MAJOR),2)CXXFLAGS += -fuse-cxa-atexitendifendifendifendififdef EXTRA_CXXFLAGSCXXFLAGS += ${EXTRA_CXXFLAGS}endifCDEPFLAGS = -E -MCCDEPFLAGS = -E -M# STLport DEBUG mode specific definesstldbg-static : DEFS += -D_STLP_DEBUGstldbg-shared : DEFS += -D_STLP_DEBUGstldbg-static-dep : DEFS += -D_STLP_DEBUGstldbg-shared-dep : DEFS += -D_STLP_DEBUG# optimization and debug compiler flagsrelease-static : OPT += -O2release-shared : OPT += -O2dbg-static : OPT += -g -fno-inlinedbg-shared : OPT += -g -fno-inline#dbg-static-dep : OPT += -g#dbg-shared-dep : OPT += -gstldbg-static : OPT += -g -fno-inlinestldbg-shared : OPT += -g -fno-inline#stldbg-static-dep : OPT += -g#stldbg-shared-dep : OPT += -g# dependency output parser (dependencies collector)DP_OUTPUT_DIR = | sed 's|\($*\)\.o[ :]*|$(OUTPUT_DIR)/\1.o $@ : |g' > $@; \[ -s $@ ] || rm -f $@DP_OUTPUT_DIR_DBG = | sed 's|\($*\)\.o[ :]*|$(OUTPUT_DIR_DBG)/\1.o $@ : |g' > $@; \[ -s $@ ] || rm -f $@DP_OUTPUT_DIR_STLDBG = | sed 's|\($*\)\.o[ :]*|$(OUTPUT_DIR_STLDBG)/\1.o $@ : |g' > $@; \[ -s $@ ] || rm -f $@
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -