1 # Makefile snippet to generate l4defs.inc file
6 SYSTEMS = $(BUILD_ARCH)-$(BUILD_ABI)
8 OBJ_DIR = $(SRC_DIR)/build
11 L4DEF_FILE_MK ?= l4defs.mk.inc
12 L4DEF_FILE_SH ?= l4defs.sh.inc
14 do_output_all = echo '$(1) = $($(1))' >> $(L4DEF_FILE_MK); echo '$(1)="$($(1))"' >> $(L4DEF_FILE_SH);
15 do_output_mk = echo '$(1) = $($(1))' >> $(L4DEF_FILE_MK);
17 ifeq ($(CALLED_FOR),static)
23 L4_SYSTEM = $(ARCH)_$(CPU)
26 L4_CRT0_STATIC = $(CRT0)
27 L4_CRTN_STATIC = $(CRTN)
28 L4_LDFLAGS_LD_STATIC = $(filter-out -l%,$(BID_LDFLAGS_FOR_LINKING_LD))
29 L4_LDFLAGS_GCC_STATIC = $(filter-out -l%,$(BID_LDFLAGS_FOR_LINKING_GCC))
30 L4_LDFLAGS_DYNAMIC_LINKER_LD = $(LDFLAGS_DYNAMIC_LINKER)
31 L4_LDFLAGS_DYNAMIC_LINKER_GCC= $(LDFLAGS_DYNAMIC_LINKER_GCC)
32 L4_LIBDIRS = $(addprefix -L,$(L4LIBDIR))
33 L4_CPPFLAGS = $(CPPFLAGS)
35 L4_CXXFLAGS = $(CXXFLAGS)
37 L4_GCCLIB_SO = $(GCCLIB_SO)
38 L4_GCCLIB_EH = $(GCCLIB_EH)
39 L4_LDS_stat_bin = $(LDS_stat_bin)
40 L4_BID_STACK_ADDR = $(L4_STACK_ADDR)
41 L4_BID_STACK_SIZE = $(L4_STACK_SIZE)
42 L4_BID_KIP_ADDR = $(L4_KIP_ADDR)
43 L4_BID_KIP_OFFS_SYS_INVOKE = $(L4_KIP_OFFS_SYS_INVOKE)
44 L4_BID_KIP_OFFS_SYS_DEBUGGER = $(L4_KIP_OFFS_SYS_DEBUGGER)
45 L4_BID_PKG_CONFIG = $(PKG_CONFIG)
46 L4_BID_PKG_CONFIG_CALL = $(value BID_PKG_CONFIG)
47 L4_BID_PKG_CONFIG_FAILED = $(value BID_PKG_CONFIG_FAILED)
51 @echo -e $(EMPHSTART)"Creating $(L4DEF_FILE_MK)"$(EMPHSTOP)
52 @echo "# Definitions for 'make' from L4 BID" > $(L4DEF_FILE_MK)
53 @echo "# vim:se ft=make:" >> $(L4DEF_FILE_MK)
54 @echo "# --- Automatically created, do not modify ---" >> $(L4DEF_FILE_MK)
56 @echo -e $(EMPHSTART)"Creating $(L4DEF_FILE_SH)"$(EMPHSTOP)
57 @echo "# Definitions for 'sh' from L4 BID" > $(L4DEF_FILE_SH)
58 @echo "# vim:se ft=sh:" >> $(L4DEF_FILE_SH)
59 @echo "# --- Automatically created, do not modify ---" >> $(L4DEF_FILE_SH)
60 @echo "" >> $(L4DEF_FILE_SH)
61 @echo "l4_bid_call_pkgconfig()" >> $(L4DEF_FILE_SH)
62 @echo "{" >> $(L4DEF_FILE_SH)
63 @echo " obj_base=\$$1; shift; " >> $(L4DEF_FILE_SH)
64 @echo " PKG_CONFIG_LIBDIR=\$$obj_base/pc PKG_CONFIG_PATH= \\" >> $(L4DEF_FILE_SH)
65 @echo " \$$L4_BID_PKG_CONFIG \\" >> $(L4DEF_FILE_SH)
66 @echo " --define-variable=incdir=\$$obj_base/include/contrib \\" >> $(L4DEF_FILE_SH)
67 @echo " \"\$$@\"" >> $(L4DEF_FILE_SH)
68 @echo "}" >> $(L4DEF_FILE_SH)
69 @echo "" >> $(L4DEF_FILE_SH)
71 @$(call do_output_all,L4_SYSTEM)
72 @$(call do_output_all,L4_CC)
73 @$(call do_output_all,L4_CXX)
74 @$(call do_output_all,L4_CRT0_STATIC)
75 @$(call do_output_all,L4_CRTN_STATIC)
76 @$(call do_output_all,L4_LDFLAGS_LD_STATIC)
77 @$(call do_output_all,L4_LDFLAGS_GCC_STATIC)
78 @$(call do_output_all,L4_LDFLAGS_DYNAMIC_LINKER_LD)
79 @$(call do_output_all,L4_LDFLAGS_DYNAMIC_LINKER_GCC)
80 @$(call do_output_all,L4_LIBDIRS_R)
81 @$(call do_output_all,L4_LIBDIRS)
82 @$(call do_output_all,L4_CPPFLAGS)
83 @$(call do_output_all,L4_CFLAGS)
84 @$(call do_output_all,L4_CXXFLAGS)
85 @$(call do_output_all,L4_GCCLIB)
86 @$(call do_output_all,L4_GCCLIB_EH)
87 @$(call do_output_all,L4_LDS_stat_bin)
88 @$(call do_output_all,L4_BID_STACK_ADDR)
89 @$(call do_output_all,L4_BID_KIP_ADDR)
90 @$(call do_output_all,L4_BID_KIP_OFFS_SYS_INVOKE)
91 @$(call do_output_all,L4_BID_KIP_OFFS_SYS_DEBUGGER)
92 @$(call do_output_all,L4_BID_PKG_CONFIG)
93 @$(call do_output_mk,L4_BID_PKG_CONFIG_CALL)
94 @$(call do_output_mk,L4_BID_PKG_CONFIG_FAILED)
95 @$(foreach v,LIBCINCDIR REQUIRES_LIBS L4_LIBS CRT0 CRTN LDSCRIPT LDFLAGS, \
96 $(call do_output_all,$(v)_all_static) $(call do_output_all,$(v)_all_shared))
101 include $(L4DIR)/mk/prog.mk
103 endif # called for static
105 # ----------------------------------------------------
107 ifeq ($(CALLED_FOR),shared)
113 L4_LDFLAGS_LD_SHARED = $(filter-out -l%,$(BID_LDFLAGS_FOR_LINKING_LD))
114 L4_LDFLAGS_GCC_SHARED = $(filter-out -l%,$(BID_LDFLAGS_FOR_LINKING_GCC))
115 L4_LDS_so = $(LDS_so)
116 L4_LDS_dyn_bin = $(LDS_dyn_bin)
119 @$(call do_output_all,L4_LDFLAGS_LD_SHARED)
120 @$(call do_output_all,L4_LDFLAGS_GCC_SHARED)
121 @$(call do_output_all,L4_LDS_so)
122 @$(call do_output_all,L4_LDS_dyn_bin)
128 include $(L4DIR)/mk/prog.mk
130 endif # called for shared
132 # ----------------------------------------------------
134 ifeq ($(CALLED_FOR),sharedlib)
138 NOTARGETSTOINSTALL = y
143 @$(call do_output_all,L4_CRT0_SO)
144 @$(call do_output_all,L4_CRTN_SO)
149 include $(L4DIR)/mk/lib.mk
151 endif # called for sharedlib