Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1297 - (hide annotations) (download)
Fri May 27 15:12:11 2011 UTC (12 years, 11 months ago) by niro
File size: 3943 byte(s)
-updated to klibc-1.5.22 with mntproc definitions patch included
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 niro 1122 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 niro 532
67 niro 1122 $(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 niro 532 $(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 niro 1122 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 niro 532
92 niro 1122 $(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 niro 532 $(call if_changed,syscalls)
98 niro 1297
99     PHONY += FORCE