Annotation of /trunk/mkinitrd-magellan/klibc/usr/klibc/syscalls/Kbuild
Parent Directory | Revision Log
Revision 532 -
(hide annotations)
(download)
Sat Sep 1 22:45:15 2007 UTC (16 years, 8 months ago) by niro
File size: 3673 byte(s)
Sat Sep 1 22:45:15 2007 UTC (16 years, 8 months ago) by niro
File size: 3673 byte(s)
-import if magellan mkinitrd; it is a fork of redhats mkinitrd-5.0.8 with all magellan patches and features; deprecates magellan-src/mkinitrd
1 | niro | 532 | # |
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 = mkdir -p $(KLIBCINC)/klibc/; \ | ||
57 | $(PERL) $(KLIBCSRC)/syscalls.pl -1 $(obj)/SYSCALLS.i \ | ||
58 | $(KLIBCSRC)/arch/$(KLIBCARCHDIR)/sysstub.ph \ | ||
59 | $(KLIBCARCH) $(KLIBCBITSIZE) $(obj)/syscalls.nrs \ | ||
60 | $(obj) \ | ||
61 | $(KLIBCINC)/klibc/havesyscall.h \ | ||
62 | $(obj)/typesize.c > $@ \ | ||
63 | || ( rm -f $@ ; exit 1 ) | ||
64 | |||
65 | $(obj)/typesize.c: $(KLIBCSRC)/syscalls.pl $(obj)/SYSCALLS.i \ | ||
66 | $(KLIBCSRC)/arch/$(KLIBCARCHDIR)/sysstub.ph \ | ||
67 | $(src)/syscommon.h $(obj)/syscalls.nrs FORCE | ||
68 | $(call if_changed,syscalsz) | ||
69 | |||
70 | # Convert typesize.o to typesize.bin | ||
71 | quiet_cmd_mkbin = OBJCOPY $@ | ||
72 | cmd_mkbin = $(KLIBCOBJCOPY) -O binary $< $@ | ||
73 | |||
74 | $(obj)/typesize.bin: $(obj)/typesize.o FORCE | ||
75 | $(call if_changed,mkbin) | ||
76 | |||
77 | # Generate $(KLIBINC)/klibc/havesyscall.h + makefile fragment | ||
78 | # Using sysstub.pl in arch dir generate all .S files | ||
79 | quiet_cmd_syscalls = GEN $@ | ||
80 | cmd_syscalls = mkdir -p $(KLIBCINC)/klibc/; \ | ||
81 | $(PERL) $(KLIBCSRC)/syscalls.pl -2 $(obj)/SYSCALLS.i \ | ||
82 | $(KLIBCSRC)/arch/$(KLIBCARCHDIR)/sysstub.ph \ | ||
83 | $(KLIBCARCH) $(KLIBCBITSIZE) $(obj)/syscalls.nrs \ | ||
84 | $(obj) \ | ||
85 | $(KLIBCINC)/klibc/havesyscall.h \ | ||
86 | $(obj)/typesize.bin > $@ \ | ||
87 | || ( rm -f $@ ; exit 1 ) | ||
88 | |||
89 | $(obj)/syscalls.mk: $(KLIBCSRC)/syscalls.pl $(obj)/SYSCALLS.i \ | ||
90 | $(KLIBCSRC)/arch/$(KLIBCARCHDIR)/sysstub.ph \ | ||
91 | $(call objectify, $(syscall-objs:.o=.S)) \ | ||
92 | $(src)/syscommon.h $(obj)/syscalls.nrs \ | ||
93 | $(obj)/typesize.bin FORCE | ||
94 | $(call if_changed,syscalls) |