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 and l4re_c and/or l4re_c-util to REQUIRES_LIBS as needed)
15 CRTBEGIN_so = $(GCCLIBDIR)/crtbegin.o
16 CRTBEGIN_stat_bin = $(GCCLIBDIR)/crtbegin.o
18 CRTBEGIN_so = $(GCCLIBDIR)/crtbeginS.o
19 CRTBEGIN_stat_bin = $(GCCLIBDIR)/crtbeginT.o
22 CRTBEGIN_dyn_bin = $(GCCLIBDIR)/crtbegin.o
24 CRTEND_so = $(GCCLIBDIR)/crtendS.o
25 CRTEND_dyn_bin = $(GCCLIBDIR)/crtend.o
26 CRTEND_stat_bin = $(GCCLIBDIR)/crtend.o
30 CRT1_dyn_bin = $(call findfile,crt1.o,$(L4LIBDIR))
31 CRT1_stat_bin = $(call findfile,crt1.o,$(L4LIBDIR))
33 CRTI_so = $(call findfile,crti.s.o,$(L4LIBDIR))
34 CRTI_dyn_bin = $(call findfile,crti.o,$(L4LIBDIR))
35 CRTI_stat_bin = $(call findfile,crti.o,$(L4LIBDIR))
38 CRTN_so = $(call findfile,crtn.s.o,$(L4LIBDIR))
40 CRTN_so = $(CRTEND_so) $(call findfile,crtn.s.o,$(L4LIBDIR))
42 CRTN_dyn_bin = $(CRTEND_dyn_bin) $(call findfile,crtn.o,$(L4LIBDIR))
43 CRTN_stat_bin = $(CRTEND_stat_bin) $(call findfile,crtn.o,$(L4LIBDIR))
45 LDS_so = $(call findfile,main_rel.ld,$(L4LIBDIR))
46 LDS_dyn_bin = $(call findfile,main_dyn.ld,$(L4LIBDIR))
47 LDS_stat_bin = $(call findfile,main_stat.ld,$(L4LIBDIR))
50 LIBC_INCLUDE = -nostdinc \
51 -I$(OBJ_BASE)/include/$(ARCH)/uclibc \
52 -I$(OBJ_BASE)/include/uclibc \
53 -I$(OBJ_BASE)/include/contrib/libstdc++-v3 \
54 $(if $(CONFIG_USE_DROPS_STDDIR), \
55 -I$(DROPS_STDDIR)/include/$(ARCH)/uclibc \
56 -I$(DROPS_STDDIR)/include/uclibc \
57 -I$(DROPS_STDDIR)/include/contrib/libstdc++-v3,) \
60 #############################################################################
62 ################################
64 ################################
66 BID_SUPPORTED_all_sigma0 = y
67 LIBCINCDIR_all_sigma0 = $(LIBC_INCLUDE)
68 REQUIRES_LIBS_all_sigma0 =
69 L4_LIBS_all_sigma0 = -static -nostdlib \
70 $(GCCLIB) $(GCCLIB_EH) -lcrt0 \
72 CRT0_all_sigma0 = $(CRTI_stat_bin) $(CRTBEGIN_stat_bin) $(CRT1_stat_bin)
73 CRTN_all_sigma0 = $(CRTN_stat_bin)
74 LDSCRIPT_all_sigma0 = $(LDS_stat_bin)
75 LDFLAGS_all_sigma0 = -Bstatic
78 ################################
80 ################################
82 BID_SUPPORTED_all_static = y
83 LIBCINCDIR_all_static = $(LIBC_INCLUDE)
84 REQUIRES_LIBS_all_static = stdlibs
85 L4_LIBS_all_static = -static -nostdlib $(GCCLIB) $(GCCLIB_EH) \
87 CRT0_all_static = $(CRTI_stat_bin) $(CRTBEGIN_stat_bin) $(CRT1_stat_bin)
88 CRTN_all_static = $(CRTN_stat_bin)
89 LDSCRIPT_all_static = $(LDS_stat_bin)
90 LDFLAGS_all_static = -Bstatic
92 #####################################
93 # shared mode -- programs are linked against shared libs
94 #####################################
95 BID_SUPPORTED_all_shared = y
96 LIBCINCDIR_all_shared = $(LIBC_INCLUDE)
97 CRT0_all_shared = $(CRTI_dyn_bin) $(CRTBEGIN_dyn_bin) $(CRT1_dyn_bin)
98 CRTN_all_shared = $(CRTN_dyn_bin)
99 LDSCRIPT_all_shared = $(LDS_dyn_bin)
100 REQUIRES_LIBS_all_shared = stdlibs-sh
101 L4_LIBS_all_shared += -nostdlib -luc_c_nonshared.p \
102 $(GCCLIB) $(GCCLIB_EH) \
104 LDFLAGS_all_shared = --eh-frame-hdr
106 ################################
108 ################################
110 BID_SUPPORTED_all_l4linux = y
111 LIBCINCDIR_all_l4linux =
112 REQUIRES_LIBS_all_l4linux =
113 L4_LIBS_all_l4linux = -l4re_main \
114 $(L4_LIBS_all_l4linux_USE_C-y) \
120 -lcxx_base -lcxx_io \
124 LDSCRIPT_all_l4linux =
125 LDFLAGS_all_l4linux =
128 #####################################
129 # lib mode -- options when building libs
130 #####################################
132 BID_SUPPORTED_all_lib = y
133 LIBCINCDIR_all_lib = $(LIBC_INCLUDE)
134 CRT0_all_lib = $(CRTI_dyn_bin) $(CRTBEGIN_dyn_bin) $(CRT1_dyn_bin)
135 CRTN_all_lib = $(CRTN_dyn_bin)
136 LDSCRIPT_all_lib = $(LDS_so)
137 LDFLAGS_all_lib = --eh-frame-hdr
140 #####################################
141 # host mode -- no L4 specifics
142 #####################################
144 BID_SUPPORTED_all_host = y
145 LIBCINCDIR_all_host =
146 REQUIRES_LIBS_all_host =