⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 makefile-engine.mk

📁 A*算法 A*算法 A*算法 A*算法A*算法A*算法
💻 MK
📖 第 1 页 / 共 2 页
字号:
## Palm OS Protein Generic Makefile Engine for Eclipse v1.0.0
#
# Last edit: 7/22/04
#
# This makefile engine is capable of compiling Protein 
# applications for Palm OS.
#
# This makefile engine assumes that the following variables are 
# set outside of this makefile by a referencing master makefile
# (see a master makefile generated by a Palm OS Developer 
# Suite wizard for detailed explanation of each variable):
#
#	SOURCES
#	RESOURCES
#	DATABASE_RESET 
#	DATABASE_BACKUP 
#	DATABASE_HIDDEN 
#	DATABASE_PROTECT
#	DATABASE_BUNDLE
#	DATABASE_VERSION 
#	DATABASE_NAME 
#	PROJECT_TYPE
#	DEBUG_OR_RELEASE 
#	OPTIMIZE_LEVEL 
#	WARNING_LEVEL 
#	ENABLE_EXCEPTIONS
#	ENABLE_ASSERTIONS
#	ADDITIONAL_LINK_LIBRARIES 
#	ADDITIONAL_SIM_LINK_LIBRARIES 
#	LOCAL_INCLUDE_PATHS 
#	LOCAL_SIM_INCLUDE_PATHS 
#	SYSTEM_INCLUDE_PATHS 
#	SYSTEM_SIM_INCLUDE_PATHS 
#	DEFINES 
#	SIM_DEFINES 
#	ADDITIONAL_COMPILER_FLAGS 
#	ADDITIONAL_SIM_COMPILER_FLAGS 
#	ADDITIONAL_LINKER_FLAGS 
#	ADDITIONAL_SIM_LINKER_FLAGS 
#	ADDITIONAL_AR_FLAGS
#	ADDITIONAL_SIM_AR_FLAGS
#	TEXTENCODING
#	LOCALE_CHECKING
#	STRICT_ENCODING
#	SDK_LOCATION
#	TARGET_PLATFORM
#
# Additionally, the user of this makefile engine may obtain the 
# dynamic values for:
#	SDK_LOCATION
#	SDK_VERSION
#	TOOLS_DIR 
# by doing an optional include of a makefile segment that is 
# generated during the Palm OS Developer Suite standard make build.
# The makefile line to accomplish this is:
#	-include auto-generated.mk
# All master makefiles generated by Palm OS Developer Suite
# wizards include this line already to pick up and use these
# dynamic definitions.
#
# All variable values may be overridden by editing the make command
# for the project (Project->Properties->C/C++ Make Project->Make Builder,
# Build Command field).
#

###############################################################################
# Defaults

comma:= ,

ifeq ($(TOOLS_DIR), )
	TOOLS_DIR =
endif

# Locale (defaults to English)
ifeq ($(LOCALE), )
	LOCALE := enUS
endif

ifeq ($(CREATOR_ID), )
	CREATOR_ID = STRT
endif

ifeq ($(DB_TYPE), )
	DB_TYPE = appl
endif

ifeq ($(SLD_FILE), )
	SLD_FILE = none
endif

ifeq ($(DEBUG_DEVICE_OUTPUT_DIR), )
	DEBUG_DEVICE_OUTPUT_DIR = DebugDevice
endif

ifeq ($(RELEASE_DEVICE_OUTPUT_DIR), )
	RELEASE_DEVICE_OUTPUT_DIR = ReleaseDevice
endif

ifeq ($(DEBUG_SIMULATOR_OUTPUT_DIR), )
	DEBUG_SIMULATOR_OUTPUT_DIR = DebugSim
endif

ifeq ($(RELEASE_SIMULATOR_OUTPUT_DIR), )
	RELEASE_SIMULATOR_OUTPUT_DIR = ReleaseSim
endif

ifeq ($(SDK_VERSION), )
	SDK_VERSION = sdk-6
endif

ifeq ($(ENABLE_EXCEPTIONS), )
	ENABLE_EXCEPTIONS=TRUE
endif

###############################################################################
# App/PRC/Database Names
#
# The difference between App Name and Database name is that App Name may 
# contain spaces while the database name is the App name with spaces removed.
# (Coded in such a way that if the user already explicitly defined these
# variables previously, we'll go with those).

ifeq ($(DATABASE_NAME), )
ifeq ($(ESCAPED_ARTIFACT_NAME), )
	# Database name defaults if ARTIFACT_NAME is empty
	DATABASE_NAME = StartApp
else
	DATABASE_NAME = $(ESCAPED_ARTIFACT_NAME)
endif
endif

ifeq ($(PRC_NAME), )
ifeq ($(ESCAPED_ARTIFACT_NAME), )
	# PRC name defaults if ESCAPED_ARTIFACT_NAME is empty
	PRC_NAME = Start.prc
else
	PRC_NAME = $(DATABASE_NAME).prc
endif
endif

ifeq ($(LIB_NAME), )
ifeq ($(ESCAPED_ARTIFACT_NAME), )
	# LIB name defaults if ESCAPED_ARTIFACT_NAME is empty
	LIB_NAME = Start.a
else
	LIB_NAME = $(DATABASE_NAME).a
endif
endif

ifeq ($(SIM_LIB_NAME), )
ifeq ($(ESCAPED_ARTIFACT_NAME), )
	# SIM LIB name defaults if ESCAPED_ARTIFACT_NAME is empty
	SIM_LIB_NAME = Start.lib
else
	SIM_LIB_NAME = $(DATABASE_NAME).lib
endif
endif

###############################################################################
# Compile and Link Settings

TARGET_FORMAT=PalmOS6

# Compiler settings... compiler + optimizations + debug
# This is a makefile for Palm OS 6 so the compilers used are as follows:
# Device target compiler is pacc
# Simulator target compiler is gcc

CC = "$(TOOLS_DIR)pacc"
SIM_CC = gcc

CFLAGS += -D__PALMOS_KERNEL__=1 -D__PALMOS__=0x06000000
SIM_CFLAGS += -fexceptions -mno-cygwin -mwindows -D__PALMOS_KERNEL__=1 -D__PALMOS__=0x06000000 -D_SUPPORTS_NAMESPACE=0 -D_SUPPORTS_RTTI=1 -DTARGET_PLATFORM=TARGET_PLATFORM_PALMSIM_WIN32 -DTARGET_HOST=TARGET_HOST_PALMOS

# Warning level for device target
ifeq ($(WARNING_LEVEL), ALL)
	CFLAGS += -W4
else
ifeq ($(WARNING_LEVEL), SOME)
	CFLAGS += -W2
else
ifeq ($(WARNING_LEVEL), NONE)
	CFLAGS += -W0
endif
endif
endif

# Warning level for simulator target
ifeq ($(SIM_WARNING_LEVEL), ALL)
	SIM_CFLAGS += -Wall
else
ifeq ($(SIM_WARNING_LEVEL), NONE)
	SIM_CFLAGS += -w
endif
endif

# Warnings as errors for device builds
ifeq ($(WARNING_AS_ERROR), TRUE)
	CFLAGS += -Werror
endif

# Warnings as errors for simulator builds
ifeq ($(SIM_WARNING_AS_ERROR), TRUE)
	SIM_CFLAGS += -Werror
endif

# Adding after other warnings flags so this is always in effect
SIM_CFLAGS += -Wno-multichar 

# Verbose output for device build
ifeq ($(VERBOSE), TRUE)
	CFLAGS += -v
endif

# Verbose output for simulator build
ifeq ($(SIM_VERBOSE), TRUE)
	SIM_CFLAGS += -v
endif

# Dislay logo
ifeq ($(ARM_LOGO), TRUE)
	CFLAGS += -logo
else
	CFLAGS += -nologo
endif

# Exception handling support
ifeq ($(ENABLE_EXCEPTIONS), TRUE)
	CFLAGS += -ex
	LDFLAGS += -ex
endif

# Assertion handling support
ifeq ($(ENABLE_ASSERTIONS), TRUE)
	CFLAGS += -UNDEBUG
else
	CFLAGS += -DNDEBUG=1
endif

# Additional linker flags
ifdef ADDITIONAL_PALINK_FLAGS
	LDFLAGS += $(ADDITIONAL_PALINK_FLAGS)
endif

# Optimization settings
ifeq ($(OPTIMIZE_LEVEL), INLINING)
	OPTIMIZER_FLAG	= -O5
	SIM_OPTIMIZER_FLAG = -O3
else
ifeq ($(OPTIMIZE_LEVEL), INTERPROCEDURAL)
	OPTIMIZER_FLAG	= -O4
	SIM_OPTIMIZER_FLAG = -O3
else
ifeq ($(OPTIMIZE_LEVEL), FULL)
	OPTIMIZER_FLAG	= -O3
	SIM_OPTIMIZER_FLAG = -O3
else
ifeq ($(OPTIMIZE_LEVEL), INTRAPROCEDURAL)
	OPTIMIZER_FLAG	= -O2
	SIM_OPTIMIZER_FLAG = -O3
else
ifeq ($(OPTIMIZE_LEVEL), SOME)
	OPTIMIZER_FLAG	= -O1
	SIM_OPTIMIZER_FLAG = -O1
else
ifeq ($(OPTIMIZE_LEVEL), NONE)
	OPTIMIZER_FLAG	= -O0
	SIM_OPTIMIZER_FLAG = -O0
else
# Default to 0 for debug, 3 for release
ifeq ($(DEBUG_OR_RELEASE), Debug)
	OPTIMIZER_FLAG = -O0
	SIM_OPTIMIZER_FLAG = -O0
else
	OPTIMIZER_FLAG	= -O3
	SIM_OPTIMIZER_FLAG = -O3
endif	
endif
endif
endif
endif
endif
endif
	
# Debug settings (can override optimize settings)
ifeq ($(DEBUG_OR_RELEASE), Debug)
	DEBUG_FLAG += -g
	BUILD_TYPE_FLAG = -DBUILD_TYPE=BUILD_TYPE_DEBUG
	TRACE_OUTPUT_FLAG = -DTRACE_OUTPUT=TRACE_OUTPUT_ON
else
	BUILD_TYPE_FLAG = -DBUILD_TYPE=BUILD_TYPE_RELEASE
	TRACE_OUTPUT_FLAG = -DTRACE_OUTPUT=TRACE_OUTPUT_OFF
endif	

ifeq ($(DEBUG_OR_RELEASE), Debug)
	OBJ_DIR = $(DEBUG_DEVICE_OUTPUT_DIR)
	SIM_OBJ_DIR = $(DEBUG_SIMULATOR_OUTPUT_DIR)
else
	OBJ_DIR = $(RELEASE_DEVICE_OUTPUT_DIR)
	SIM_OBJ_DIR = $(RELEASE_SIMULATOR_OUTPUT_DIR)
endif


CFLAGS += $(OPTIMIZER_FLAG) $(DEBUG_FLAG) $(BUILD_TYPE_FLAG) $(TRACE_OUTPUT_FLAG)
SIM_CFLAGS += $(SIM_OPTIMIZER_FLAG) $(DEBUG_FLAG) $(BUILD_TYPE_FLAG) $(TRACE_OUTPUT_FLAG)

# Linker settings (must come after setting DEBUG_FLAG)
LD = "$(TOOLS_DIR)pacc"
SIM_LD = gcc

LDFLAGS += $(DEBUG_FLAG) -nologo -Wl,-nolocals
SIM_LDFLAGS += $(DEBUG_FLAG) -mno-cygwin -mwindows $(SIM_OBJ_DIR)/gcc_link.def -shared -nostdlib -u___divdi3 -u___moddi3 -u___udivdi3 -u___umoddi3
SIM_LIBS = -L "$(TOOLS_DIR)misclibs" -lpxstlport -lpxsupc++ -lpxgcc -lgcc
ifeq ($(DEBUG_OR_RELEASE), Debug)
	LDFLAGS += -Wl,-debug -Wl,-libpath -Wl,"$(SDK_LOCATION)libraries/ARM_4T/Debug/Default"
	SIM_LIBS += "$(SDK_LOCATION)libraries/Simulator/Debug/PalmOS.lib"
else
	LDFLAGS += -Wl,-libpath -Wl,"$(SDK_LOCATION)libraries/ARM_4T/Release/Default"
	SIM_LIBS += "$(SDK_LOCATION)libraries/Simulator/Release/PalmOS.lib" 
endif

LDOBJS = PalmOS.a SystemGlue.a FloatMgr.sa

ifeq ($(TARGET_PLATFORM), Device)
	NATIVE_OBJ_DIR := $(OBJ_DIR)
	RSC_OBJ_DIR := $(OBJ_DIR)
else
	NATIVE_OBJ_DIR := $(SIM_OBJ_DIR)
	RSC_OBJ_DIR := $(SIM_OBJ_DIR)
endif

# Librarian settings
AR="$(TOOLS_DIR)palib"
SIM_AR=ar

ARFLAGS= -c -a
SIM_ARFLAGS=-rc

LINKER_OUTPUT := $(OBJ_DIR)/$(DATABASE_NAME).axf
SIM_LINKER_OUTPUT := $(SIM_OBJ_DIR)/$(DATABASE_NAME).dll

TARGET	:= $(OBJ_DIR)/$(PRC_NAME)
SIM_TARGET	:= $(SIM_OBJ_DIR)/$(PRC_NAME)

STATIC_LIB_TARGET := $(OBJ_DIR)/$(LIB_NAME)
SIM_STATIC_LIB_TARGET	:= $(SIM_OBJ_DIR)/$(SIM_LIB_NAME)

###############################################################################
# Resource flags (PalmRC)

RFLAGS +=

# Default text encoding is Latin
ifeq ($(PRC_TEXT_ENCODING), )
	PRC_TEXT_ENCODING = LATIN
endif

ifeq ($(PRC_TEXT_ENCODING), LATIN)
	RFLAGS += -target 4.0
else
ifeq ($(PRC_TEXT_ENCODING), JAPANESE)
	RFLAGS += -target 4.0J
else
ifeq ($(PRC_TEXT_ENCODING), SIMPLIFIED_CHINESE)
	RFLAGS += -target 4.0CS
endif
endif
endif

ifeq ($(PRC_NO_LOCALE_CHECK), TRUE)
	RFLAGS += -noLocaleCheck
endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -