summaryrefslogtreecommitdiffstats
path: root/nsframework/framework_unified/client/NativeServices/cfg/PosixBasedOS001_armv7.mk
blob: 68d15dad995e7833064d6fc1ec78aa7d70695891 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#
# @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

# QCC arm COMPILER SETTINGS
#  Standard form of tool.mk file configured for PosixBasedOS001 arm v7
#  Note: Make sure PosixBasedOS001_HOST is set to install version desired

# Tools and Options
LIB_EXT = a
SO_EXT = so
LIB_PREFIX = lib
OBJ_EXT = o
BIN_EXT =
CC = ${PosixBasedOS001_HOST}/usr/bin/qcc -c
CPP = ${PosixBasedOS001_HOST}/usr/bin/qcc -c
AS = ${PosixBasedOS001_HOST}/usr/bin/ntoarmv7-as
AR = ${PosixBasedOS001_HOST}/usr/bin/ntoarmv7-ar
OBJCPY := ${PosixBasedOS001_HOST}/usr/bin/ntoarmv7-objcopy
LD = qcc
# Add addtion Linker Flags....
# If your application contains c++ code you will need
# the -lang-c++
LD_CPP = -lang-c++ #-lm

# Compile options and commands
TARGET_FLG = -Vgcc_ntoarmv7le

# Define Map file Option
MAP_FILE_FLG=-M

# Set Debug Flag
ifdef DEBUG
CC_DEBUG_FLG = -g
DEBUG_EXT=_g
endif

# Set Profiling Flag
ifdef PROFILING
CC_PROFILING_FLG = -p
endif

# Set Optimization Flag (precident to force none, force full, force basic, or default remain as defined)
ifeq ($(OPTIMIZATION),OPTIMIZE)
CC_OPT_FLG = -O2
else
ifeq ($(OPTIMIZATION),FULL_OPTIMIZE)
CC_OPT_FLG = -O3
else
ifeq ($(OPTIMIZATION),NONE)
CC_OPT_FLG =
endif
endif
endif


# Compiler Options
CC_OFLAG = -o
CC_IFLAG = -I
CC_FLAGS = $(TARGET_FLG) -w9 -Wc,-Wall -shared $(CC_OPT_FLG) $(CC_PROFILING_FLG) $(CC_DEBUG_FLG)
CC_TARGET = $(@)
CC_CMD = $(CC) $(CC_FLAGS) $(DEFS) $(INCLUDES) $(@F:.$(OBJ_EXT)=.c) -o $(@)
CPP_CMD = $(CPP) $(CC_FLAGS) $(DEFS) $(INCLUDES) $(@F:.$(OBJ_EXT)=.cpp) -o $(@)
CPP_D_CMD = arm-unknown-nto-PosixBasedOS001.5.0eabi-gcc.exe -c $(DEFS) $(INCLUDES) -MM -MP $< > $(@:.o=.d)

# Archive Options  (Static Library)
AR_OFLAG =
AR_FLAGS = -r
AR_CMD = $(AR) $(AR_FLAGS) $(AR_OFLAG)$(@) $^

# Linker Options
# Executable
# Used in the form of $(LD_CMD) -L[Library Paths] -l[libraries] [objects] $(LD_OFLAG) executable_name.$(BIN_EXT)
LD_FLAGS = $(TARGET_FLG) $(CC_PROFILING_FLG) $(CC_DEBUG_FLG) $(LD_CPP)
LD_OFLAG = -o
LD_CMD = $(LD) -L$(LIB_PATH) $(LD_FLAGS) $(MAP_FILE_FLG)
EXEC_CMD = $(LD_CMD) $(LD_OFLAG) $(@) $(OBJECTS) $(addprefix -L , $(LIB_PATHS)) \
		-Bstatic $(addprefix -l , $(STATIC_LIBS)) -Bdynamic $(addprefix -l , $(DYNAMIC_LIBS))

# To create shared objects use the linker command but add -shared
SO_CMD = $(LD) $(LD_FLAGS) -shared $(MAP_FILE_FLG)
SLIB_CMD = $(SO_CMD) $^ $(LD_OFLAG) $(@) $(addprefix -L, $(LIB_PATHS)) \
		-Bstatic $(addprefix -l,$(STATIC_LIBS)) -Bdynamic $(addprefix -l,$(DYNAMIC_LIBS))