4 # Makefile-Include for defining modes
6 ifneq ($(L4_MULTITHREADED),)
7 $(error L4_MULTITHREADED is obsolete, just remove, reentrance is default now, you might want to add 'libpthread' to REQUIRES_LIBS)
10 ifneq ($(MODE_USE_C),)
11 $(error MODE_USE_C is obsolete, add l4re_c and/or l4re_c-util to REQUIRES_LIBS as needed)
14 CRTBEGIN_so = $(if $(GCCIS_sparc_leon),$(GCCLIB_FILE_crtbegin.o),$(GCCLIB_FILE_crtbeginS.o))
15 CRTBEGIN_stat_bin = $(if $(GCCIS_sparc_leon),$(GCCLIB_FILE_crtbegin.o),$(GCCLIB_FILE_crtbeginT.o))
17 CRTBEGIN_dyn_bin = $(GCCLIB_FILE_crtbegin.o)
19 CRTEND_so = $(GCCLIB_FILE_crtendS.o)
20 CRTEND_dyn_bin = $(GCCLIB_FILE_crtend.o)
21 CRTEND_stat_bin = $(GCCLIB_FILE_crtend.o)
25 CRT1_dyn_bin = $(call findfile,crt1.o,$(L4LIBDIR))
26 CRT1_stat_bin = $(call findfile,crt1.o,$(L4LIBDIR))
28 CRTI_so = $(call findfile,crti.s.o,$(L4LIBDIR))
29 CRTI_dyn_bin = $(call findfile,crti.o,$(L4LIBDIR))
30 CRTI_stat_bin = $(call findfile,crti.o,$(L4LIBDIR))
32 CRTN_so = $(if $(GCCIS_sparc_leon),,$(CRTEND_so)) $(call findfile,crtn.s.o,$(L4LIBDIR))
33 CRTN_dyn_bin = $(CRTEND_dyn_bin) $(call findfile,crtn.o,$(L4LIBDIR))
34 CRTN_stat_bin = $(CRTEND_stat_bin) $(call findfile,crtn.o,$(L4LIBDIR))
36 LDS_so = $(call findfile,main_rel.ld,$(L4LIBDIR))
37 LDS_dyn_bin = $(call findfile,main_dyn.ld,$(L4LIBDIR))
38 LDS_stat_bin = $(call findfile,main_stat.ld,$(L4LIBDIR))
41 LIBC_INCLUDE = -nostdinc \
42 -I$(OBJ_BASE)/include/$(ARCH)/uclibc \
43 -I$(OBJ_BASE)/include/uclibc \
44 -I$(OBJ_BASE)/include/contrib/libstdc++-v3 \
45 $(if $(CONFIG_USE_DROPS_STDDIR), \
46 -I$(DROPS_STDDIR)/include/$(ARCH)/uclibc \
47 -I$(DROPS_STDDIR)/include/uclibc \
48 -I$(DROPS_STDDIR)/include/contrib/libstdc++-v3,) \
51 #############################################################################
53 ################################
55 ################################
57 BID_SUPPORTED_all_sigma0 = y
58 LIBCINCDIR_all_sigma0 = $(LIBC_INCLUDE)
59 REQUIRES_LIBS_all_sigma0 =
60 L4_LIBS_all_sigma0 = -static -nostdlib \
61 $(GCCLIB) $(GCCLIB_EH) -lcrt0 \
63 CRT0_all_sigma0 = $(CRTI_stat_bin) $(CRTBEGIN_stat_bin) $(CRT1_stat_bin)
64 CRTN_all_sigma0 = $(CRTN_stat_bin)
65 LDSCRIPT_all_sigma0 = $(LDS_stat_bin)
66 LDFLAGS_all_sigma0 = -Bstatic
69 ################################
71 ################################
73 BID_SUPPORTED_all_static = y
74 LIBCINCDIR_all_static = $(LIBC_INCLUDE)
75 REQUIRES_LIBS_all_static = stdlibs
76 L4_LIBS_all_static = -static -nostdlib $(GCCLIB) $(GCCLIB_EH) \
78 CRT0_all_static = $(CRTI_stat_bin) $(CRTBEGIN_stat_bin) $(CRT1_stat_bin)
79 CRTN_all_static = $(CRTN_stat_bin)
80 LDSCRIPT_all_static = $(LDS_stat_bin)
81 LDFLAGS_all_static = -Bstatic
83 #####################################
84 # shared mode -- programs are linked against shared libs
85 #####################################
86 BID_SUPPORTED_all_shared = y
87 LIBCINCDIR_all_shared = $(LIBC_INCLUDE)
88 CRT0_all_shared = $(CRTI_dyn_bin) $(CRTBEGIN_dyn_bin) $(CRT1_dyn_bin)
89 CRTN_all_shared = $(CRTN_dyn_bin)
90 LDSCRIPT_all_shared = $(LDS_dyn_bin)
91 REQUIRES_LIBS_all_shared = stdlibs-sh
92 L4_LIBS_all_shared += -nostdlib -luc_c_nonshared.p \
93 $(GCCLIB_SO) $(GCCLIB_EH) \
95 LDFLAGS_all_shared = --eh-frame-hdr
97 ################################
99 ################################
101 BID_SUPPORTED_all_l4linux = y
102 LIBCINCDIR_all_l4linux =
103 REQUIRES_LIBS_all_l4linux =
104 L4_LIBS_all_l4linux = -l4re-util \
109 -lcxx_base -lcxx_io \
113 LDSCRIPT_all_l4linux =
114 LDFLAGS_all_l4linux =
117 #####################################
118 # lib mode -- options when building libs
119 #####################################
121 BID_SUPPORTED_all_lib = y
122 LIBCINCDIR_all_lib = $(LIBC_INCLUDE)
123 CRT0_all_lib = $(CRTI_dyn_bin) $(CRTBEGIN_dyn_bin) $(CRT1_dyn_bin)
124 CRTN_all_lib = $(CRTN_dyn_bin)
125 LDSCRIPT_all_lib = $(LDS_so)
126 LDFLAGS_all_lib = --eh-frame-hdr
129 #####################################
130 # host mode -- no L4 specifics
131 #####################################
133 BID_SUPPORTED_all_host = y
134 LIBCINCDIR_all_host =
135 REQUIRES_LIBS_all_host =