]> rtime.felk.cvut.cz Git - l4.git/blob - kernel/fiasco/src/kern/ux/Makerules.KERNEL
update
[l4.git] / kernel / fiasco / src / kern / ux / Makerules.KERNEL
1 # UX Kernel Makefile
2
3 shortcut.o:          $(TCBOFFSET)
4 sighandler.o:        $(TCBOFFSET)
5 entry.o:             $(TCBOFFSET)
6 sys_call_page-asm.o: $(TCBOFFSET)
7
8
9 # Add future prerequisites somewhere among the list of libraries. You really
10 # should not have to add anything in the $(CXX) line.
11 #
12 # Please don't add -gc-sections as linker option here. The reason is that
13 # properly working destructors of libc.a require __start_libc_atexit and
14 # __stop_libc_atexit to be defined by the linker. The ld linker defines
15 # these symbols by magic if it finds a 'libc section' -- the section name
16 # starts with '_'. However, if the section is completely purged, these
17 # symbols are not defined and therefore the libc destructors are not executed
18 # (_IO_cleanup so far). We could manually create the correct section by adding
19 #
20 #   __libc_atexit : {
21 #     PROVIDE(__start___libc_atexit = .);
22 #     KEEP(*(__libc_atexit))
23 #     PROVIDE(__stop___libc_atexit = .);
24 #   }
25 #
26 # to the linker script. We don't do this because we don't know which symbols
27 # are required by future versions of the libc.
28
29 $(KERNEL):      kernel.ux.lds $(OBJ_KERNEL) $(MINILIBC) $(LIBK) $(KERNEL_EXTRA_LIBS) $(ABI) $(JABI) $(DRIVERS) $(CXXLIB)
30                 $(LINK_MESSAGE)
31                 $(VERBOSE)$(CXX) -m32 -Wl,-T$< -static -o $@ -Wl,--whole-archive $(MINILIBC) -Wl,--no-whole-archive $(KERNEL_UNRES_SYMS) $(filter-out $<,$+) -lutil $(WRAP_SYMBOLS)
32                 chmod 755 $@
33                 ln -sf $@ fiasco
34
35 irq0.o:         irq0.c
36                 $(COMP_MESSAGE)
37                 $(VERBOSE)$(CC) -O2 -Wall -W -c -o $@ $<
38
39 irq0:           irq0.o
40                 $(LINK_MESSAGE)
41                 $(VERBOSE)$(CC) -static -o $@ $<
42                 $(STRIP_MESSAGE)
43                 $(VERBOSE)$(STRIP) $@
44
45 ifeq ($(CONFIG_UX_CON),y)
46
47 SDL_CFLAGS  := $(shell $(SYSTEM_TARGET)sdl-config --cflags)
48 SDL_LDFLAGS := $(shell $(SYSTEM_TARGET)sdl-config --libs)
49
50 ifeq ($(SDL_CFLAGS),)
51   $(error sdl-config not found. libsdl including header files installed?)
52 endif
53
54 ux_con.o:       ux_con.c
55                 $(COMP_MESSAGE)
56                 $(VERBOSE)$(CC) -O2 -Wall -W -g $(SDL_CFLAGS) -c $<
57
58 ux_con:         ux_con.o
59                 $(LINK_MESSAGE)
60                 $(VERBOSE)$(CC) $(SDL_LDFLAGS) $< -o $@
61                 $(STRIP_MESSAGE)
62                 $(VERBOSE)$(STRIP) $@
63 endif
64
65 ifeq ($(CONFIG_UX_NET),y)
66 ux_net.o:       ux_net.c
67                 $(COMP_MESSAGE)
68                 $(VERBOSE)$(CC) -O2 -Wall -W -g -c $<
69
70 ux_net:         ux_net.o
71                 $(LINK_MESSAGE)
72                 $(VERBOSE)$(CC) $< -o $@
73                 $(STRIP_MESSAGE)
74                 $(VERBOSE)$(STRIP) $@
75 endif