Contents of /trunk/mkinitrd-magellan/klibc/usr/klibc/syscalls/Kbuild
Parent Directory | Revision Log
Revision 1297 -
(show annotations)
(download)
Fri May 27 15:12:11 2011 UTC (13 years ago) by niro
File size: 3943 byte(s)
Fri May 27 15:12:11 2011 UTC (13 years ago) by niro
File size: 3943 byte(s)
-updated to klibc-1.5.22 with mntproc definitions patch included
1 | # |
2 | # kbuild file for generating syscall stubs |
3 | # |
4 | |
5 | # Include automatically generated Makefile fragment. |
6 | # It contains definition of syscall-objs specifying name of all .o files |
7 | ifeq ($(clean),) |
8 | -include $(obj)/syscalls.mk |
9 | endif |
10 | |
11 | # Listing of all .o files |
12 | always := klib.list |
13 | |
14 | |
15 | ##### |
16 | # Generate syscalls stubs |
17 | # Based on list in SYSCALLS.def generate stubs for sys calls. Actual arch code |
18 | # is defined in an arch specific perl file |
19 | targets += syscalls.mk |
20 | targets += klib.list |
21 | targets += SYSCALLS.i syscalls.nrs |
22 | targets += typesize.c typesize.o typesize.bin |
23 | targets += $(syscall-objs) |
24 | |
25 | # Side effect of running syscalls.pl |
26 | clean-files += $(objtree)/$(KLIBCINC)/klibc/havesyscall.h |
27 | clean-files += $(KLIBCINC)/klibc/havesyscall.h |
28 | # All the syscall stubs |
29 | clean-files += *.o *.S *.c *.list *.bin |
30 | |
31 | EXTRA_KLIBCCFLAGS := -I$(srctree)/$(src) |
32 | |
33 | quiet_cmd_makelist = LIST $@ |
34 | cmd_makelist = echo '$(filter-out FORCE,$^)' > $@ |
35 | |
36 | # Create list of all files |
37 | $(obj)/klib.list: $(call objectify,$(syscall-objs)) FORCE |
38 | $(call if_changed,makelist) |
39 | |
40 | # Generate assembler file (.i) |
41 | # We pass -ansi to keep cpp from define e.g. "i386" as well as "__i386__" |
42 | quiet_cmd_syscall.i = GEN $@ |
43 | cmd_syscall.i = $(KLIBCCC) $(klibccflags) -D__ASSEMBLY__ \ |
44 | -ansi -x c -E -o $@ $< |
45 | $(obj)/SYSCALLS.i: $(KLIBCSRC)/SYSCALLS.def FORCE |
46 | $(call if_changed_dep,syscall.i) |
47 | |
48 | # Get syscalls numbers |
49 | quiet_cmd_syscall.nrs = GEN $@ |
50 | cmd_syscall.nrs = $(KLIBCCC) $(klibccflags) -Wp,-dM -x c -E -o $@ $< |
51 | $(obj)/syscalls.nrs: $(KLIBCINC)/sys/syscall.h FORCE |
52 | $(call if_changed_dep,syscall.nrs) |
53 | |
54 | # Generate typesize.c |
55 | quiet_cmd_syscalsz = GEN $@ |
56 | cmd_syscalsz = \ |
57 | mkdir -p $(KLIBCINC)/klibc/; \ |
58 | $(PERL) $(srctree)/$(KLIBCSRC)/syscalls.pl \ |
59 | -1 $(obj)/SYSCALLS.i \ |
60 | $(srctree)/$(KLIBCSRC)/arch/$(KLIBCARCHDIR)/sysstub.ph \ |
61 | $(KLIBCARCH) $(KLIBCBITSIZE) $(obj)/syscalls.nrs \ |
62 | $(obj) \ |
63 | $(KLIBCINC)/klibc/havesyscall.h \ |
64 | $(obj)/typesize.c > $@ \ |
65 | || ( rm -f $@ ; exit 1 ) |
66 | |
67 | $(obj)/typesize.c: $(srctree)/$(KLIBCSRC)/syscalls.pl $(obj)/SYSCALLS.i \ |
68 | $(srctree)/$(KLIBCSRC)/arch/$(KLIBCARCHDIR)/sysstub.ph \ |
69 | $(src)/syscommon.h $(obj)/syscalls.nrs FORCE |
70 | $(call if_changed,syscalsz) |
71 | |
72 | # Convert typesize.o to typesize.bin |
73 | quiet_cmd_mkbin = OBJCOPY $@ |
74 | cmd_mkbin = $(KLIBCOBJCOPY) -O binary $< $@ |
75 | |
76 | $(obj)/typesize.bin: $(obj)/typesize.o FORCE |
77 | $(call if_changed,mkbin) |
78 | |
79 | # Generate $(KLIBINC)/klibc/havesyscall.h + makefile fragment |
80 | # Using sysstub.pl in arch dir generate all .S files |
81 | quiet_cmd_syscalls = GEN $@ |
82 | cmd_syscalls = \ |
83 | mkdir -p $(KLIBCINC)/klibc/; \ |
84 | $(PERL) $(srctree)/$(KLIBCSRC)/syscalls.pl -2 $(obj)/SYSCALLS.i \ |
85 | $(srctree)/$(KLIBCSRC)/arch/$(KLIBCARCHDIR)/sysstub.ph \ |
86 | $(KLIBCARCH) $(KLIBCBITSIZE) $(obj)/syscalls.nrs \ |
87 | $(obj) \ |
88 | $(KLIBCINC)/klibc/havesyscall.h \ |
89 | $(obj)/typesize.bin > $@ \ |
90 | || ( rm -f $@ ; exit 1 ) |
91 | |
92 | $(obj)/syscalls.mk: $(srctree)/$(KLIBCSRC)/syscalls.pl $(obj)/SYSCALLS.i \ |
93 | $(srctree)/$(KLIBCSRC)/arch/$(KLIBCARCHDIR)/sysstub.ph \ |
94 | $(call objectify, $(syscall-objs:.o=.S)) \ |
95 | $(src)/syscommon.h $(obj)/syscalls.nrs \ |
96 | $(obj)/typesize.bin FORCE |
97 | $(call if_changed,syscalls) |
98 | |
99 | PHONY += FORCE |