Init basesystem source codes.
[staging/basesystem.git] / nsframework / framework_unified / client / NS_MessageCenter / src / makefile_PosixBasedOS001
1 #
2 # @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
3 #
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 #      http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15 #
16
17 #
18 # Standard Module Makefile version 2.0
19 #
20
21 # Name of the componet (team/domain prefix '_' component name)
22 COMPONENT_NAME = NS_MessageCenter
23
24 ifndef PRJ_ROOT
25 export PRJ_ROOT = $(CURDIR)/../
26 endif
27 include $(PRJ_ROOT)cfg/depends.mk
28
29 # Name of the componet (team/domain prefix '_' component name)
30 #  This must be the same as the RTC Component name and Eclipse Project Name
31 COMPONENT_NAME = NS_MessageCenter
32
33
34 # Additive Compile Flags (Flags from initiating make process will still apply)
35 DEFS +=
36
37 # Set local includes and then the reference includes (priority order determines search path)
38 # Default pattern are any configuration includes (which would be things like PosixBasedOS001), local (Team) component directories,
39 # dependencies includes (other teams)
40 # Local (current component references should be in the form of
41 #  $(CC_IFLAG)$(TEAM_ROOT)$(COMPONENT_NAME)/directory
42 #  Example your public include directory would be
43 #  $(CC_IFLAG)$(TEAM_ROOT)$(COMPONENT_NAME)/inc
44 # Team references should only be to other's public includes such as
45 #  $(CC_IFLAG)$(TEAM_ROOT)NS_MessageCenter/inc
46 # Global (non-team) references should be only to other's public includes such
47 #  these are found in the depends include file and captured in the (DEPENDS_INCLUDES) variable
48 INCLUDES = \
49         $(CFG_INCS) \
50         $(CC_IFLAG)./ \
51         $(DEPENDS_INCLUDES) \
52         $(CC_IFLAG)$(TEAM_ROOT)NS_MessageQueue/inc \
53         $(CC_IFLAG)$(TEAM_ROOT)NS_SharedMemIf/inc \
54         $(CC_IFLAG)$(TEAM_ROOT)$(COMPONENT_NAME)/inc
55
56
57 # Do the same if you need to include library paths as well
58 #  Do an incremental in case additional library paths are defined
59 #  at the top-level make.  Use similar guidelines as for includes
60 #  for example to include a team component library it would be
61 #  $(TEAM_ROOT)NS_MessageCenter/lib/NS_MessageCenter/
62 LIB_PATHS += \
63   $(DEPENDS_LIB_PATHS) \
64
65
66
67 # Define binary outputs.  These can be libraries or executables.
68 #  Name a variable for each deliverable.  Suffixes should be
69 #  EXEC - For Executables -> output to the bin directory
70 #TIME_EXEC = $(BIN_PATH)time
71 #  LIB - For Static Libraries -> output to lib directory with specific naming
72 #MATH_LIB = $(LIB_PATH)$(LIB_PREFIX)math.$(LIB_EXT)
73 #  SLIB - For Shared Objects
74 #FRMWRK_SLIB = $(SLIB_PATH)frmwrk.$(SO_EXT)
75 #  LIB - Define the static library for Message Queue
76 #
77 #
78 ifdef DYNAMIC
79         COMPONENT_LIB = $(SLIB_PATH)$(LIB_PREFIX)$(COMPONENT_NAME)$(DEBUG_EXT).$(SO_EXT)
80 else
81         COMPONENT_LIB = $(LIB_PATH)$(LIB_PREFIX)$(COMPONENT_NAME)$(DEBUG_EXT).$(LIB_EXT)
82 endif
83
84 ## Sources Section
85
86 # Define Library & Executable Sources (on a per deliverable basis)
87 #  This includes sources located in subdirectories.
88
89 # Define generic line that pulls all c, cc, cpp files
90 # since your in the src folder is pull only files from there
91 COMPONENT_SRCS = \
92         $(wildcard *.c) \
93         $(wildcard *.cpp)
94
95 # Define sources that my not be local to your component
96 # here, you can define indivial files or wildcard from
97 # a different folder.
98 NON_LOCAL_SRCS = \
99
100
101 # List of all sources to be built.  Can be assembled from the other defintitions.
102 #  This only defines sources for the current directory, so if there are subdirectories
103 #  those are not included.  (Those are found in simple subdirectory makefiles that only
104 #  direct the building of sources, but no linking into a binary)
105 SOURCES = \
106         $(COMPONENT_SRCS) \
107         $(NON_LOCAL_SRCS) \
108
109
110
111 #
112 # Convert the source files to object files with correct folder location.
113 #
114 #
115 C_LANG_OBJECTS = $(addprefix $(BLD_PATH),$(addsuffix .$(OBJ_EXT),$(basename $(filter %.c ,$(SOURCES) ) ) ) )
116 CPP_LANG_OBJECTS = $(addprefix $(BLD_PATH),$(addsuffix .$(OBJ_EXT),$(basename $(filter %.cpp %.cc %.cxx,$(SOURCES) ) ) ) )
117
118
119 # List of all sources to be generated.  Can be assembled from the other defintitions.
120 OBJECTS = \
121         $(C_LANG_OBJECTS) \
122         $(CPP_LANG_OBJECTS)
123
124
125
126 # All headers that are dependencies.  Wildcard is easy to pickup local headers.
127 #  This is only to automate the rebuilding, all builds on the servers are cleans
128 #  So this is not a huge deal when building on a component level.
129 HEADERS = \
130         $(wildcard *.h) \
131         $(wildcard $(TEAM_ROOT)$(COMPONENT_NAME)/inc/*.h) \
132         $(wildcard $(TEAM_ROOT)NativeServices/inc/*.h) \
133         $(wildcard $(TEAM_ROOT)NativeServices/inc/native/*.h) \
134         $(wildcard $(TEAM_ROOT)NS_MessageQueue/inc/*.h) \
135         $(wildcard $(TEAM_ROOT)NS_SharedMemIf/inc/*.h) \
136
137
138 LIBRARIES = \
139         $(COMPONENT_LIB) \
140
141 ifdef DYNAMIC
142         DYNAMIC_LIBS += \
143         NS_SharedMemIf$(DEBUG_EXT) \
144         NS_MessageQueue$(DEBUG_EXT)
145 else
146         STATIC_LIBS +=
147 endif
148
149
150 # Make targets
151 #  Standard
152 all: banner module_dirs subdirs local library binary
153
154 debug:
155         $(MAKE) TARGET=arm DEBUG=TRUE all
156
157 base: banner module_dirs subdirs local
158
159 # Standard Building of Source Files (Default builds for all objects defined above)
160 $(C_LANG_OBJECTS): $(SOURCES) $(HEADERS)
161         $(CC_CMD)
162
163 $(CPP_LANG_OBJECTS): $(SOURCES) $(HEADERS)
164         $(CPP_CMD)
165
166 local: $(OBJECTS)
167
168 # Defines specific for each deliverable
169
170 $(COMPONENT_LIB): $(OBJECTS)
171 ifdef DYNAMIC
172 # For a dynamic library
173         $(SLIB_CMD)
174         $(HIDE_ECHO_FLAG)$(OBJCPY) --only-keep-debug $(@) $(@).debug
175         $(HIDE_ECHO_FLAG)$(OBJCPY) --strip-all $(@)
176         $(HIDE_ECHO_FLAG)$(OBJCPY) --add-gnu-debuglink=$(@).debug $(@)
177 else
178 # For a static library
179         $(AR_CMD)
180 endif
181
182 # Standard set of derived targets
183 library: base \
184         $(LIBRARIES)
185         @echo "***** `date` Done building library: $(COMPONENT_NAME) ******"
186
187 binary: base \
188         $(BINARIES)
189
190 # Subdirs should be to jump to subdirectories
191 #  standard form is of
192 #  $(MAKE) -C subdirectory_name $(MAKECMDGOALS)
193 subdirs:
194
195 clean:
196         -rm -f $(BINARIES)
197         -rm -f $(LIBRARIES)
198         -rm -f $(OBJECTS)
199         -rm -f $(COMPONENT_LIB).map
200         -rm -f $(COMPONENT_LIB).debug
201
202 -v:
203         @echo "objs: --> $(OBJECTS)"
204         @echo "sources: --> $(SOURCES)"
205         @echo "headers: --> $(HEADERS)"
206         @echo "includes: --> $(INCLUDES)"
207         @echo "lib paths: --> $(LIB_PATHS)"
208         @echo "static libs: --> $(LD_STATIC_LIBS)"
209         @echo "dynamic libs: --> $(LD_DYNAMIC_LIBS)"
210         @echo "lib: --> $(LIBRARIES)"
211         @echo "bin: --> $(BINARIES)"
212
213 module_dirs: build_dirs
214