This repository has been archived by the owner on Jan 28, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 39
/
Kbuild
executable file
·135 lines (106 loc) · 3.95 KB
/
Kbuild
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#
# Kbuild for top-level directory of the kernel
# This file takes care of the following:
# 1) Generate bounds.h
# 2) Generate timeconst.h
# 3) Generate asm-offsets.h (may need bounds.h and timeconst.h)
# 4) Check for missing system calls
# Default sed regexp - multiline due to syntax constraints
define sed-y
"/^->/{s:->#\(.*\):/* \1 */:; \
s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \
s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \
s:->::; p;}"
endef
# Use filechk to avoid rebuilds when a header changes, but the resulting file
# does not
define filechk_offsets
(set -e; \
echo "#ifndef $2"; \
echo "#define $2"; \
echo "/*"; \
echo " * DO NOT MODIFY."; \
echo " *"; \
echo " * This file was generated by Kbuild"; \
echo " */"; \
echo ""; \
sed -ne $(sed-y); \
echo ""; \
echo "#endif" )
endef
#####
# 1) Generate bounds.h
#bounds-file := include/generated/bounds.h
#always := $(bounds-file)
#targets := kernel/bounds.s
## We use internal kbuild rules to avoid the "is up to date" message from make
#kernel/bounds.s: kernel/bounds.c FORCE
#$(Q)mkdir -p $(dir $@)
#$(call if_changed_dep,cc_s_c)
#$(obj)/$(bounds-file): kernel/bounds.s FORCE
#$(call filechk,offsets,__LINUX_BOUNDS_H__)
#####
# 2) Generate timeconst.h
#timeconst-file := include/generated/timeconst.h
#targets += $(timeconst-file)
#quiet_cmd_gentimeconst = GEN $@
#define cmd_gentimeconst
#(echo $(CONFIG_HZ) | bc -q $< ) > $@
#endef
#define filechk_gentimeconst
#(echo $(CONFIG_HZ) | bc -q $< )
#endef
#$(obj)/$(timeconst-file): kernel/time/timeconst.bc FORCE
#$(call filechk,gentimeconst)
#####
# 3) Generate asm-offsets.h
#
#offsets-file := include/generated/asm-offsets.h
#always += $(offsets-file)
#targets += arch/$(SRCARCH)/kernel/asm-offsets.s
# We use internal kbuild rules to avoid the "is up to date" message from make
#arch/$(SRCARCH)/kernel/asm-offsets.s: arch/$(SRCARCH)/kernel/asm-offsets.c \
#$(obj)/$(timeconst-file) $(obj)/$(bounds-file) FORCE
#$(Q)mkdir -p $(dir $@)
#$(call if_changed_dep,cc_s_c)
#$(obj)/$(offsets-file): arch/$(SRCARCH)/kernel/asm-offsets.s FORCE
#$(call filechk,offsets,__ASM_OFFSETS_H__)
#####
# 4) Check for missing system calls
#
#always += missing-syscalls
#targets += missing-syscalls
#quiet_cmd_syscalls = CALL $<
#cmd_syscalls = $(CONFIG_SHELL) $< $(CC) $(c_flags) $(missing_syscalls_flags)
#missing-syscalls: scripts/checksyscalls.sh $(offsets-file) FORCE
#$(call cmd,syscalls)
# Keep these three files during make clean
#no-clean-files := $(bounds-file) $(offsets-file) $(timeconst-file)
#ifdef CONFIG_ZEPHYRKERNEL
#targets += include/melis/kernel/rtos/zephyr/offsets.h
#always += include/melis/kernel/rtos/zephyr/offsets.h
#define rule_cc_o_c_1
#$(call echo-cmd,cc_o_c_1) $(cmd_cc_o_c_1);
#endef
#cmd_cc_o_c_1 = $(CC) $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) $(MELISINCLUDE) -c -o $@ $< \
#-I$(srctree)/include/melis/kernel/rtos/zephyr \
#-I$(srctree)/ekernel/rtos/zephyr/kernel/include \
#-I$(srctree)/include/melis/kernel/rtos/zephyr/arch \
#-I$(srctree)/include/melis/kernel/rtos/zephyr/arch/arm/cortex_m
#ekernel/rtos/zephyr/offsets/offsets.o: ekernel/rtos/zephyr/offsets/offsets.c
#$(call if_changed,cc_o_c_1)
#define offsetchk
#$(Q)set -e; \
#$(kecho) ' CHK $@'; \
#mkdir -p $(dir $@); \
#$(srctree)/scripts/gen_offset_header.py -i $(1) -o $@.tmp; \
#if [ -r $@ ] && cmp -s $@ $@.tmp; then \
#rm -f $@.tmp; \
#else \
#$(kecho) ' UPD $@'; \
#mv -f $@.tmp $@; \
#fi
#endef
#include/melis/kernel/rtos/zephyr/offsets.h: ekernel/rtos/zephyr/offsets/offsets.o
#$(call offsetchk,ekernel/rtos/zephyr/offsets/offsets.o)
#endif