L4DEF_FILE_MK ?= l4defs.mk.inc
L4DEF_FILE_SH ?= l4defs.sh.inc
-do_output_all = echo '$(1) = $($(1))' >> $(L4DEF_FILE_MK); echo '$(1)="$($(1))"' >> $(L4DEF_FILE_SH)
+do_output_all = echo '$(1) = $($(1))' >> $(L4DEF_FILE_MK); echo '$(1)="$($(1))"' >> $(L4DEF_FILE_SH);
do_output_mk = echo '$(1) = $($(1))' >> $(L4DEF_FILE_MK);
-ifeq ($(CALLED_FOR),prog)
+ifeq ($(CALLED_FOR),static)
MODE = static
L4_SYSTEM = $(ARCH)_$(CPU)
L4_CC = $(CC)
L4_CXX = $(CXX)
+L4_LD = $(LD)
L4_CRT0_STATIC = $(CRT0)
L4_CRTN_STATIC = $(CRTN)
-L4_LDFLAGS_LD = $(filter-out -l%,$(BID_LDFLAGS_FOR_LINKING_LD))
-L4_LDFLAGS_GCC = $(filter-out -l%,$(BID_LDFLAGS_FOR_LINKING_GCC))
+L4_LDFLAGS_LD_STATIC = $(filter-out -l%,$(BID_LDFLAGS_FOR_LINKING_LD))
+L4_LDFLAGS_GCC_STATIC = $(filter-out -l%,$(BID_LDFLAGS_FOR_LINKING_GCC))
L4_LDFLAGS_DYNAMIC_LINKER_LD = $(LDFLAGS_DYNAMIC_LINKER)
L4_LDFLAGS_DYNAMIC_LINKER_GCC= $(LDFLAGS_DYNAMIC_LINKER_GCC)
L4_LIBDIRS = $(addprefix -L,$(L4LIBDIR))
-L4_LIBDIRS_R = $(addprefix -L,$(foreach i,$(L4LIBDIR),$(i)/r))
L4_CPPFLAGS = $(CPPFLAGS)
L4_CFLAGS = $(CFLAGS)
L4_CXXFLAGS = $(CXXFLAGS)
L4_GCCLIB = $(GCCLIB)
+L4_GCCLIB_SO = $(GCCLIB_SO)
L4_GCCLIB_EH = $(GCCLIB_EH)
L4_LDS_stat_bin = $(LDS_stat_bin)
L4_BID_STACK_ADDR = $(L4_STACK_ADDR)
L4_BID_PKG_CONFIG_CALL = $(value BID_PKG_CONFIG)
L4_BID_PKG_CONFIG_FAILED = $(value BID_PKG_CONFIG_FAILED)
+
all::
@echo -e $(EMPHSTART)"Creating $(L4DEF_FILE_MK)"$(EMPHSTOP)
@echo "# Definitions for 'make' from L4 BID" > $(L4DEF_FILE_MK)
@$(call do_output_all,L4_SYSTEM)
@$(call do_output_all,L4_CC)
@$(call do_output_all,L4_CXX)
+ @$(call do_output_all,L4_LD)
@$(call do_output_all,L4_CRT0_STATIC)
@$(call do_output_all,L4_CRTN_STATIC)
- @$(call do_output_all,L4_LDFLAGS_LD)
- @$(call do_output_all,L4_LDFLAGS_GCC)
+ @$(call do_output_all,L4_LDFLAGS_LD_STATIC)
+ @$(call do_output_all,L4_LDFLAGS_GCC_STATIC)
@$(call do_output_all,L4_LDFLAGS_DYNAMIC_LINKER_LD)
@$(call do_output_all,L4_LDFLAGS_DYNAMIC_LINKER_GCC)
@$(call do_output_all,L4_LIBDIRS_R)
@$(call do_output_all,L4_BID_PKG_CONFIG)
@$(call do_output_mk,L4_BID_PKG_CONFIG_CALL)
@$(call do_output_mk,L4_BID_PKG_CONFIG_FAILED)
+ @$(foreach v,LIBCINCDIR REQUIRES_LIBS L4_LIBS CRT0 CRTN LDSCRIPT LDFLAGS, \
+ $(call do_output_all,$(v)_all_static) $(call do_output_all,$(v)_all_shared))
else
all::
endif
include $(L4DIR)/mk/prog.mk
-endif # called for prog
+endif # called for static
+
+# ----------------------------------------------------
+ifeq ($(CALLED_FOR),shared)
-ifeq ($(CALLED_FOR),lib)
+MODE = shared
ifneq ($(SYSTEM),)
-L4_LDFLAGS_LD_DYN = $(BID_LDFLAGS_FOR_LINKING_DYN_LD)
-L4_LDFLAGS_GCC_DYN = $(BID_LDFLAGS_FOR_LINKING_DYN_GCC)
-L4_CRT0_DYN = $(CRT0_all_lib)
-L4_CRTN_DYN = $(CRTN_all_lib)
-L4_LDS_so = $(LDS_so)
-L4_LDS_dyn_bin = $(LDS_dyn_bin)
+L4_LDFLAGS_LD_SHARED = $(filter-out -l%,$(BID_LDFLAGS_FOR_LINKING_LD))
+L4_LDFLAGS_GCC_SHARED = $(filter-out -l%,$(BID_LDFLAGS_FOR_LINKING_GCC))
+L4_LDS_so = $(LDS_so)
+L4_LDS_dyn_bin = $(LDS_dyn_bin)
all::
- @$(call do_output_all,L4_LDFLAGS_LD_DYN)
- @$(call do_output_all,L4_LDFLAGS_GCC_DYN)
- @$(call do_output_all,L4_CRT0_DYN)
- @$(call do_output_all,L4_CRTN_DYN)
+ @$(call do_output_all,L4_LDFLAGS_LD_SHARED)
+ @$(call do_output_all,L4_LDFLAGS_GCC_SHARED)
@$(call do_output_all,L4_LDS_so)
@$(call do_output_all,L4_LDS_dyn_bin)
all::
endif
+include $(L4DIR)/mk/prog.mk
+
+endif # called for shared
+
+# ----------------------------------------------------
+
+ifeq ($(CALLED_FOR),sharedlib)
+
+ifneq ($(SYSTEM),)
+
+NOTARGETSTOINSTALL = y
+L4_CRT0_SO = $(CRT0)
+L4_CRTN_SO = $(CRTN)
+
+all::
+ @$(call do_output_all,L4_CRT0_SO)
+ @$(call do_output_all,L4_CRTN_SO)
+else
+all::
+endif
+
include $(L4DIR)/mk/lib.mk
-endif # called for lib
+endif # called for sharedlib