Contents of /trunk/mkinitrd-magellan/klibc/usr/klibc/syscalls/Kbuild
Parent Directory | Revision Log
Revision 532 -
(show 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 | # |
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) |