]> rtime.felk.cvut.cz Git - l4.git/blob - l4/mk/export_defs.inc
update
[l4.git] / l4 / mk / export_defs.inc
1 # Makefile snippet to generate l4defs.inc file
2 # vim:set ft=make:
3 #
4
5 PKGDIR = .
6 SYSTEMS = $(BUILD_ARCH)-$(BUILD_ABI)
7
8 OBJ_DIR = $(SRC_DIR)/build
9
10 # the target file
11 L4DEF_FILE_MK ?= l4defs.mk.inc
12 L4DEF_FILE_SH ?= l4defs.sh.inc
13
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);
16
17 ifeq ($(CALLED_FOR),prog)
18
19 MODE = static
20
21 ifneq ($(SYSTEM),)
22
23 L4_SYSTEM                    = $(ARCH)_$(CPU)
24 L4_CRT0_STATIC               = $(CRT0)
25 L4_CRTN_STATIC               = $(CRTN)
26 L4_LDFLAGS_LD                = $(filter-out -l%,$(BID_LDFLAGS_FOR_LINKING_LD))
27 L4_LDFLAGS_GCC               = $(filter-out -l%,$(BID_LDFLAGS_FOR_LINKING_GCC))
28 L4_LDFLAGS_DYNAMIC_LINKER_LD = $(LDFLAGS_DYNAMIC_LINKER)
29 L4_LDFLAGS_DYNAMIC_LINKER_GCC= $(LDFLAGS_DYNAMIC_LINKER_GCC)
30 L4_LIBDIRS                   = $(addprefix -L,$(L4LIBDIR))
31 L4_LIBDIRS_R                 = $(addprefix -L,$(foreach i,$(L4LIBDIR),$(i)/r))
32 L4_CPPFLAGS                  = $(CPPFLAGS)
33 L4_CFLAGS                    = $(CFLAGS)
34 L4_CXXFLAGS                  = $(CXXFLAGS)
35 L4_GCCLIB                    = $(GCCLIB)
36 L4_GCCLIB_EH                 = $(GCCLIB_EH)
37 L4_LDS_stat_bin              = $(LDS_stat_bin)
38 L4_BID_STACK_ADDR            = $(L4_STACK_ADDR)
39 L4_BID_STACK_SIZE            = $(L4_STACK_SIZE)
40 L4_BID_KIP_ADDR              = $(L4_KIP_ADDR)
41 L4_BID_KIP_OFFS_SYS_INVOKE   = $(L4_KIP_OFFS_SYS_INVOKE)
42 L4_BID_KIP_OFFS_SYS_DEBUGGER = $(L4_KIP_OFFS_SYS_DEBUGGER)
43 L4_BID_PKG_CONFIG            = $(PKG_CONFIG)
44 L4_BID_PKG_CONFIG_CALL       = $(value BID_PKG_CONFIG)
45 L4_BID_PKG_CONFIG_FAILED     = $(value BID_PKG_CONFIG_FAILED)
46
47 all::
48         @echo -e $(EMPHSTART)"Creating $(L4DEF_FILE_MK)"$(EMPHSTOP)
49         @echo "# Definitions for 'make' from L4 BID"                            > $(L4DEF_FILE_MK)
50         @echo "# vim:se ft=make:"                                              >> $(L4DEF_FILE_MK)
51         @echo "# --- Automatically created, do not modify ---"                 >> $(L4DEF_FILE_MK)
52         @:
53         @echo -e $(EMPHSTART)"Creating $(L4DEF_FILE_SH)"$(EMPHSTOP)
54         @echo "# Definitions for 'sh' from L4 BID"                              > $(L4DEF_FILE_SH)
55         @echo "# vim:se ft=sh:"                                                >> $(L4DEF_FILE_SH)
56         @echo "# --- Automatically created, do not modify ---"                 >> $(L4DEF_FILE_SH)
57         @echo ""                                                               >> $(L4DEF_FILE_SH)
58         @echo "l4_bid_call_pkgconfig()"                                        >> $(L4DEF_FILE_SH)
59         @echo "{"                                                              >> $(L4DEF_FILE_SH)
60         @echo "  obj_base=\$$1; shift; "                                       >> $(L4DEF_FILE_SH)
61         @echo "  PKG_CONFIG_LIBDIR=\$$obj_base/pc PKG_CONFIG_PATH= \\"         >> $(L4DEF_FILE_SH)
62         @echo "  \$$L4_BID_PKG_CONFIG \\"                                      >> $(L4DEF_FILE_SH)
63         @echo "   --define-variable=incdir=\$$obj_base/include/contrib \\"     >> $(L4DEF_FILE_SH)
64         @echo "   \"\$$@\""                                                    >> $(L4DEF_FILE_SH)
65         @echo "}"                                                              >> $(L4DEF_FILE_SH)
66         @echo ""                                                               >> $(L4DEF_FILE_SH)
67         @:
68         @$(call do_output_all,L4_SYSTEM)
69         @$(call do_output_all,L4_CRT0_STATIC)
70         @$(call do_output_all,L4_CRTN_STATIC)
71         @$(call do_output_all,L4_LDFLAGS_LD)
72         @$(call do_output_all,L4_LDFLAGS_GCC)
73         @$(call do_output_all,L4_LDFLAGS_DYNAMIC_LINKER_LD)
74         @$(call do_output_all,L4_LDFLAGS_DYNAMIC_LINKER_GCC)
75         @$(call do_output_all,L4_LIBDIRS_R)
76         @$(call do_output_all,L4_LIBDIRS)
77         @$(call do_output_all,L4_CPPFLAGS)
78         @$(call do_output_all,L4_CFLAGS)
79         @$(call do_output_all,L4_CXXFLAGS)
80         @$(call do_output_all,L4_GCCLIB)
81         @$(call do_output_all,L4_GCCLIB_EH)
82         @$(call do_output_all,L4_LDS_stat_bin)
83         @$(call do_output_all,L4_BID_STACK_ADDR)
84         @$(call do_output_all,L4_BID_KIP_ADDR)
85         @$(call do_output_all,L4_BID_KIP_OFFS_SYS_INVOKE)
86         @$(call do_output_all,L4_BID_KIP_OFFS_SYS_DEBUGGER)
87         @$(call do_output_all,L4_BID_PKG_CONFIG)
88         @$(call do_output_mk,L4_BID_PKG_CONFIG_CALL)
89         @$(call do_output_mk,L4_BID_PKG_CONFIG_FAILED)
90 else
91 all::
92 endif
93
94 include $(L4DIR)/mk/prog.mk
95
96 endif # called for prog
97
98
99 ifeq ($(CALLED_FOR),lib)
100
101 ifneq ($(SYSTEM),)
102
103 L4_LDFLAGS_LD_DYN  = $(BID_LDFLAGS_FOR_LINKING_DYN_LD)
104 L4_LDFLAGS_GCC_DYN = $(BID_LDFLAGS_FOR_LINKING_DYN_GCC)
105 L4_CRT0_DYN        = $(CRT0_all_lib)
106 L4_CRTN_DYN        = $(CRTN_all_lib)
107 L4_LDS_so          = $(LDS_so)
108 L4_LDS_dyn_bin     = $(LDS_dyn_bin)
109
110 all::
111         @$(call do_output_all,L4_LDFLAGS_LD_DYN)
112         @$(call do_output_all,L4_LDFLAGS_GCC_DYN)
113         @$(call do_output_all,L4_CRT0_DYN)
114         @$(call do_output_all,L4_CRTN_DYN)
115         @$(call do_output_all,L4_LDS_so)
116         @$(call do_output_all,L4_LDS_dyn_bin)
117
118 else
119 all::
120 endif
121
122 include $(L4DIR)/mk/lib.mk
123
124 endif # called for lib