Magellan Linux

Contents of /trunk/mkinitrd-magellan/klibc/usr/klibc/syscalls/Kbuild

Parent Directory Parent Directory | Revision Log 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)
-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)