blob: 80c9f68c86853219ad049fb4a7b4b1726b40510b [file] [log] [blame]
yuezonghe824eb0c2024-06-27 02:32:26 -07001# /*****************************************************************************
2#* °æÈ¨ËùÓÐ (C)2010, ÖÐÐËͨѶ¹É·ÝÓÐÏÞ¹«Ë¾¡£
3#*
4#* ÎļþÃû³Æ: gcc_arm_tos.mk
5#* Îļþ±êʶ: gcc_arm_tos.mk
6#* ÄÚÈÝÕªÒª: tos gcc±àÒëÆ÷ÅäÖÃÎļþ
7#* ʹÓ÷½·¨: include gcc_arm.mk
8#*
9#* ÐÞ¸ÄÈÕÆÚ °æ±¾ºÅ Ð޸ıê¼Ç ÐÞ¸ÄÈË ÐÞ¸ÄÄÚÈÝ
10#* -----------------------------------------------------------------------------
11#* 2011/01/05 V1.0 Create ÁõÑÇÄÏ ´´½¨
12#*
13# ******************************************************************************/
14
15#===============================================================================
16# compiler tools path, TOS_GCC_ROOT is set in build_eCos.bat
17#===============================================================================
18GCC_ROOT = $(TOS_GCC_ROOT)
19GCC_BIN = $(GCC_ROOT)/$(TOS_GCC_PATH)/bin
20GCC_LIB = $(TOS_LIB)
21
22#===============================================================================
23# compiler tools setup
24#===============================================================================
25CC = $(GCC_BIN)/$(TOS_COMMAND_PREFIX)gcc
26CXX = $(GCC_BIN)/$(TOS_COMMAND_PREFIX)gcc
27ASM = $(GCC_BIN)/$(TOS_COMMAND_PREFIX)as
28AR = $(GCC_BIN)/$(TOS_COMMAND_PREFIX)ar
29LD = $(GCC_BIN)/$(TOS_COMMAND_PREFIX)ld
30ELF2BIN = $(GCC_BIN)/$(TOS_COMMAND_PREFIX)objcopy
31ELF2SYM = $(GCC_BIN)/$(TOS_COMMAND_PREFIX)nm
32
33#===============================================================================
34# C include path setup
35#===============================================================================
36INCLUDE = -I$(ZP_ROOT)/ \
37 -I$(TOS_INC) \
38 -I$(TOS_INC)/$(CPU_ARCH)
39
40#===============================================================================
41# C++ STL(standard template library) include path setup
42#===============================================================================
43STDINCLUDE +=
44
45#===============================================================================
46# gcc flags setup
47#===============================================================================
48export CCFLAGS = -I$(TOS_INC) \
49 -I$(TOS_INC)/$(CPU_ARCH)
50export CCFLAGS += -Wall -Wpointer-arith -Wstrict-prototypes -Wundef -Wno-write-strings -Wno-missing-braces -Wno-redundant-decls -Wfatal-errors
51export CCFLAGS += -fdata-sections -fno-exceptions -fshort-enums -fsigned-char -fno-schedule-insns -fno-schedule-insns2 -fstrict-volatile-bitfields
52export CCFLAGS += -march=$(CPU_ARCH) -mno-unaligned-access
53#export CCFLAGS += -finstrument-functions
54ifeq ($(THUMB), yes)
55export CCFLAGS += -mthumb
56endif
57export CCFLAGS += -Wl,--gc-sections
58export CCFLAGS += -g -O2 -MD -c
59export CXXFLAGS = $(CCFLAGS)
60
61#===============================================================================
62# assembler flags setup
63#===============================================================================
64ASFLAGS = -march=$(CPU_ARCH)
65
66#===============================================================================
67# archieve flags setup
68#===============================================================================
69ARFLAGS = -rcs
70
71#===============================================================================
72# library include path setup
73#===============================================================================
74LDFLAG = -Wl,--no-check-sections -nostartfiles -L$(GCC_LIB) -T$(OBJ_PATH)/os/tos/tos.ld
75
76#===============================================================================
77# ld setup
78#===============================================================================
79LDOUT =
80LDMAP =
81
82#===============================================================================
83# elf to binary flags setup
84#===============================================================================
85ELF2BINOUT = -O binary
86
87#===============================================================================
88# elf to symbol flags setup
89#===============================================================================
90ELF2SYMOUT = -nCS --size-sort
91
92#===============================================================================
93# user defintion
94#===============================================================================
95export PLAT_GCC_OPTIMIZE = -O2
96export COM_GCC_OPTIMIZE = -O2
97export DRV_GCC_OPTIMIZE = -O2
98export PS_GCC_OPTIMIZE = -O2
99export TOOLS_GCC_OPTIMIZE = -O2
100