]> 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),static)
18
19 MODE = static
20
21 ifneq ($(SYSTEM),)
22
23 L4_SYSTEM                    = $(ARCH)_$(CPU)
24 L4_CC                        = $(CC)
25 L4_CXX                       = $(CXX)
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)
34 L4_CFLAGS                    = $(CFLAGS)
35 L4_CXXFLAGS                  = $(CXXFLAGS)
36 L4_GCCLIB                    = $(GCCLIB)
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)
48
49
50 all::
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)
55         @:
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)
70         @:
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))
97 else
98 all::
99 endif
100
101 include $(L4DIR)/mk/prog.mk
102
103 endif # called for static
104
105 #   ----------------------------------------------------
106
107 ifeq ($(CALLED_FOR),shared)
108
109 MODE = shared
110
111 ifneq ($(SYSTEM),)
112
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)
117
118 all::
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)
123
124 else
125 all::
126 endif
127
128 include $(L4DIR)/mk/prog.mk
129
130 endif # called for shared
131
132 #   ----------------------------------------------------
133
134 ifeq ($(CALLED_FOR),sharedlib)
135
136 ifneq ($(SYSTEM),)
137
138 NOTARGETSTOINSTALL = y
139 L4_CRT0_SO = $(CRT0)
140 L4_CRTN_SO = $(CRTN)
141
142 all::
143         @$(call do_output_all,L4_CRT0_SO)
144         @$(call do_output_all,L4_CRTN_SO)
145 else
146 all::
147 endif
148
149 include $(L4DIR)/mk/lib.mk
150
151 endif # called for sharedlib