<linker> -o <executable target> <linker flags> <object files> <linker load library arguments>
The <linker flags> used to build an executable are assembled from the following macros in the indicated order as is appropriate for the current NC_CONTROLS_* settings:
FLAGS_<TOOLCHAIN>_LD_EXESimmilarly, the <linker load library arguments> passed to the linker to build an executable are assembled from the following macros in the indicated order as is appropriate for the current NC_CONTROLS_* settings:
FLAGS_LD_EXE
[ FLAGS_<TOOLCHAIN>_LD_EXE_OPT ]
[ FLAGS_LD_EXE_OPT ]
[ FLAGS_<TOOLCHAIN>_LD_EXE_DBG ]
[ FLAGS_LD_EXE_DBG ]
[ FLAGS_<TOOLCHAIN>_LD_EXE_PROFILE ]
[ FLAGS_LD_EXE_PROFILE ]
[ FLAGS_<TOOLCHAIN>_LD_EXE_COV ]
[ FLAGS_LD_EXE_COV ]
FLAGS_<TOOLCHAIN>_LD_EXE_LOADLIBS
FLAGS_LD_EXE_LOADLIBS
[ FLAGS_<TOOLCHAIN>_LD_EXE_LOADLIBS_OPT ]
[ FLAGS_LD_EXE_LOADLIBS_OPT ]
[ FLAGS_<TOOLCHAIN>_LD_EXE_LOADLIBS_DBG ]
[ FLAGS_LD_EXE_LOADLIBS_DBG ]
[ FLAGS_<TOOLCHAIN>_LD_EXE_LOADLIBS_PROFILE ]
[ FLAGS_LD_EXE_LOADLIBS_PROFILE ]
[ FLAGS_<TOOLCHAIN>_LD_EXE_LOADLIBS_COV ]
[ FLAGS_LD_EXE_LOADLIBS_COV ]
<linker> -o <shared library target> <linker flags> <object files> <linker load library arguments>
The <linker flags> used to build a shared library are assembled from the following macros in the indicated order as is appropriate for the current NC_CONTROLS_* settings:
FLAGS_<TOOLCHAIN>_LD_SHLIBSimmilarly, the <linker load library arguments> passed to the linker to build a shared library are assembled from the following macros in the indicated order as is appropriate for the current NC_CONTROLS_* settings:
FLAGS_LD_SHLIB
[ FLAGS_<TOOLCHAIN>_LD_SHLIB_OPT ]
[ FLAGS_LD_SHLIB_OPT ]
[ FLAGS_<TOOLCHAIN>_LD_SHLIB_DBG ]
[ FLAGS_LD_SHLIB_DBG ]
[ FLAGS_<TOOLCHAIN>_LD_SHLIB_PROFILE ]
[ FLAGS_LD_SHLIB_PROFILE ]
[ FLAGS_<TOOLCHAIN>_LD_SHLIB_COV ]
[ FLAGS_LD_SHLIB_COV ]
FLAGS_<TOOLCHAIN>_LD_SHLIB_LOADLIBS
FLAGS_LD_SHLIB_LOADLIBS
[ FLAGS_<TOOLCHAIN>_LD_SHLIB_LOADLIBS_OPT ]
[ FLAGS_LD_SHLIB_LOADLIBS_OPT ]
[ FLAGS_<TOOLCHAIN>_LD_SHLIB_LOADLIBS_DBG ]
[ FLAGS_LD_SHLIB_LOADLIBS_DBG ]
[ FLAGS_<TOOLCHAIN>_LD_SHLIB_LOADLIBS_PROFILE ]
[ FLAGS_LD_SHLIB_LOADLIBS_PROFILE ]
[ FLAGS_<TOOLCHAIN>_LD_SHLIB_LOADLIBS_COV ]
[ FLAGS_LD_SHLIB_LOADLIBS_COV ]
<archiver> <archiver flags> <static library target> <object files> <archiver load library arguments>
The <archiver flags> used to build a static library are assembled from the following macros in the indicated order as is appropriate for the current NC_CONTROLS_* settings:
FLAGS_<TOOLCHAIN>_AR_LIBSimmilarly, the <archiver load library arguments> passed to the archiver to build a static library are assembled from the following macros in the indicated order as is appropriate for the current NC_CONTROLS_* settings:
FLAGS_AR_LIB
[ FLAGS_<TOOLCHAIN>_AR_LIB_OPT ]
[ FLAGS_AR_LIB_OPT ]
[ FLAGS_<TOOLCHAIN>_AR_LIB_DBG ]
[ FLAGS_AR_LIB_DBG ]
[ FLAGS_<TOOLCHAIN>_AR_LIB_PROFILE ]
[ FLAGS_AR_LIB_PROFILE ]
[ FLAGS_<TOOLCHAIN>_AR_LIB_COV ]
[ FLAGS_AR_LIB_COV ]
FLAGS_<TOOLCHAIN>_AR_LIB_LOADLIBS
FLAGS_AR_LIB_LOADLIBS
[ FLAGS_<TOOLCHAIN>_AR_LIB_LOADLIBS_OPT ]
[ FLAGS_AR_LIB_LOADLIBS_OPT ]
[ FLAGS_<TOOLCHAIN>_AR_LIB_LOADLIBS_DBG ]
[ FLAGS_AR_LIB_LOADLIBS_DBG ]
[ FLAGS_<TOOLCHAIN>_AR_LIB_LOADLIBS_PROFILE ]
[ FLAGS_AR_LIB_LOADLIBS_PROFILE ]
[ FLAGS_<TOOLCHAIN>_AR_LIB_LOADLIBS_COV ]
[ FLAGS_AR_LIB_LOADLIBS_COV ]
<linker> -o <incremental object target> <linker flags> <object files> <linker load library arguments>
The <linker flags> used to build an incrementally linked object are assembled from the following macros in the indicated order as is appropriate for the current NC_CONTROLS_* settings:
FLAGS_<TOOLCHAIN>_LD_INCOBJSimmilarly, the <linker load library arguments> passed to the linker to build a incrementally linked object are assembled from the following macros in the indicated order as is appropriate for the current NC_CONTROLS_* settings:
FLAGS_LD_INCOBJ
[ FLAGS_<TOOLCHAIN>_LD_INCOBJ_OPT ]
[ FLAGS_LD_INCOBJ_OPT ]
[ FLAGS_<TOOLCHAIN>_LD_INCOBJ_DBG ]
[ FLAGS_LD_INCOBJ_DBG ]
[ FLAGS_<TOOLCHAIN>_LD_INCOBJ_PROFILE ]
[ FLAGS_LD_INCOBJ_PROFILE ]
[ FLAGS_<TOOLCHAIN>_LD_INCOBJ_COV ]
[ FLAGS_LD_INCOBJ_COV ]
FLAGS_<TOOLCHAIN>_LD_INCOBJ_LOADLIBS
FLAGS_LD_INCOBJ_LOADLIBS
[ FLAGS_<TOOLCHAIN>_LD_INCOBJ_LOADLIBS_OPT ]
[ FLAGS_LD_INCOBJ_LOADLIBS_OPT ]
[ FLAGS_<TOOLCHAIN>_LD_INCOBJ_LOADLIBS_DBG ]
[ FLAGS_LD_INCOBJ_LOADLIBS_DBG ]
[ FLAGS_<TOOLCHAIN>_LD_INCOBJ_LOADLIBS_PROFILE ]
[ FLAGS_LD_INCOBJ_LOADLIBS_PROFILE ]
[ FLAGS_<TOOLCHAIN>_LD_INCOBJ_LOADLIBS_COV ]
[ FLAGS_LD_INCOBJ_LOADLIBS_COV ]
<compiler> <compiler flags> -c -o <object target> <source file>
The <compiler flags> used to build an object file from C code are assembled from the following macros in the indicated order as is appropriate for the current NC_CONTROLS_* settings:
FLAGS_<TOOLCHAIN>_CC
FLAGS_CC
[ FLAGS_<TOOLCHAIN>_CC_OPT ]
[ FLAGS_CC_OPT ]
[ FLAGS_<TOOLCHAIN>_CC_DBG ]
[ FLAGS_CC_DBG ]
[ FLAGS_<TOOLCHAIN>_CC_PROFILE ]
[ FLAGS_CC_PROFILE ]
[ FLAGS_<TOOLCHAIN>_CC_COV ]
[ FLAGS_CC_COV ]
[ FLAGS_<TOOLCHAIN>_CC_NOASSERT ]
[ FLAGS_CC_NOASSERT ]
[ FLAGS_<TOOLCHAIN>_CC_REENT ]
[ FLAGS_CC_REENT ]
<compiler> <compiler flags> -c -o <object target> <source file>
The <compiler flags> used to build an object file from C++ code are assembled from the following macros in the indicated order as is appropriate for the current NC_CONTROLS_* settings:
FLAGS_<TOOLCHAIN>_CXX
FLAGS_CXX
[ FLAGS_<TOOLCHAIN>_CXX_OPT ]
[ FLAGS_CXX_OPT ]
[ FLAGS_<TOOLCHAIN>_CXX_DBG ]
[ FLAGS_CXX_DBG ]
[ FLAGS_<TOOLCHAIN>_CXX_PROFILE ]
[ FLAGS_CXX_PROFILE ]
[ FLAGS_<TOOLCHAIN>_CXX_COV ]
[ FLAGS_CXX_COV ]
[ FLAGS_<TOOLCHAIN>_CXX_NOASSERT ]
[ FLAGS_CXX_NOASSERT ]
[ FLAGS_<TOOLCHAIN>_CXX_REENT ]
[ FLAGS_CXX_REENT ]
<assembler> <assembler flags> -c -o <object target> <source file>
The <assembler flags> used to build an object file from assembly code are assembled from the following macros in the indicated order as is appropriate for the current NC_CONTROLS_* settings:
FLAGS_<TOOLCHAIN>_AS
FLAGS_AS
[ FLAGS_<TOOLCHAIN>_AS_OPT ]
[ FLAGS_AS_OPT ]
[ FLAGS_<TOOLCHAIN>_AS_DBG ]
[ FLAGS_AS_DBG ]
[ FLAGS_<TOOLCHAIN>_AS_PROFILE ]
[ FLAGS_AS_PROFILE ]
[ FLAGS_<TOOLCHAIN>_AS_COV ]
[ FLAGS_AS_COV ]
# The source root of this component COMPONENT_ROOT=../.. # The root of the build system BS_ROOT=$(COMPONENT_ROOT)/../build3 # Boostrap Build system definitions. include $(BS_ROOT)/defines.mk # Specify executable pattern targets EXE_TARGETS=hello hello-pp hi # Specify shared lib pattern targets SHLIB_TARGETS=libhello.so # Specify static lib pattern targets LIB_TARGETS=libhello.a # Specify bare C object pattern targets OBJ_CC_TARGETS=say-hello.o empty.o foo.o # Specify bare C++ object pattern targets OBJ_CXX_TARGETS=hello-plusplus.o # Specify bare assembly object pattern targets # OBJ_AS_TARGETS=say-hi-IA32.o # Specify incrementally linked object targets OBJ_INC_TARGETS=incobj.o # ... and control the details of how the targets # specified above get produced. Some go full defaults, # others we tweak. say-hello.o_TOOLCHAIN=VENDOR #say-hello.o_CFLAGS=-DTEST_PER_OBJECT_CFLAGS say-hello.o_CFLAGS_OPT=-DTEST_PER_OBJECT_CFLAGS_OPT say-hello.o_CFLAGS_DBG=-DTEST_PER_OBJECT_CFLAGS_DEBUG say-hello.o_CFLAGS_PROFILE=-DTEST_PER_OBJECT_CFLAGS_PROFILE say-hello.o_CFLAGS_COV=-DTEST_PER_OBJECT_CFLAGS_COV say-hello.o_CFLAGS_NOASSERT=-DTEST_PER_OBJECT_CFLAGS_NOASSERT foo.o_SRC=empty.c foo.o_TOOLCHAIN=VENDOR foo.o_CFLAGS=-DTEST_PER_OBJECT_CFLAGS foo.o_CFLAGS_OPT=-DTEST_PER_OBJECT_CFLAGS_OPT foo.o_CFLAGS_DBG=-DTEST_PER_OBJECT_CFLAGS_DEBUG foo.o_CFLAGS_PROFILE=-DTEST_PER_OBJECT_CFLAGS_PROFILE foo.o_CFLAGS_COV=-DTEST_PER_OBJECT_CFLAGS_COV foo.o_CFLAGS_NOASSERT=-DTEST_PER_OBJECT_CFLAGS_NOASSERT hello_OBJS=hello.o empty.o exercise-memory-debug.o say-hello.o hello-pp_OBJS=hello-pp.o hello-plusplus.o hello-pp_LD=$(BIN_GNU_CXX) hi_OBJS=hi.o say-hi-IA32.o incobj.o_OBJS=foo.o say-hello.o incobj.o_TOOLCHAIN=VENDOR libhello.so_OBJS=say-hi-IA32.o say-hello.o libhello.a_OBJS=say-hi-IA32.o say-hello.o # Finally, include the rules to make the build system go. include $(BS_ROOT)/rules.mk