xref: /openbmc/linux/Kbuild (revision c53aeca0)
186feeaa8SSam Ravnborg#
286feeaa8SSam Ravnborg# Kbuild for top-level directory of the kernel
386feeaa8SSam Ravnborg# This file takes care of the following:
486feeaa8SSam Ravnborg# 1) Generate asm-offsets.h
5*c53aeca0SSam Ravnborg# 2) Check for missing system calls
686feeaa8SSam Ravnborg
786feeaa8SSam Ravnborg#####
886feeaa8SSam Ravnborg# 1) Generate asm-offsets.h
986feeaa8SSam Ravnborg#
1086feeaa8SSam Ravnborg
1186feeaa8SSam Ravnborgoffsets-file := include/asm-$(ARCH)/asm-offsets.h
1286feeaa8SSam Ravnborg
1386feeaa8SSam Ravnborgalways  := $(offsets-file)
1486feeaa8SSam Ravnborgtargets := $(offsets-file)
1586feeaa8SSam Ravnborgtargets += arch/$(ARCH)/kernel/asm-offsets.s
1686feeaa8SSam Ravnborg
17048eb582SSam Ravnborg# Default sed regexp - multiline due to syntax constraints
18048eb582SSam Ravnborgdefine sed-y
19048eb582SSam Ravnborg	"/^->/{s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; s:->::; p;}"
20048eb582SSam Ravnborgendef
21048eb582SSam Ravnborg# Override default regexp for specific architectures
220947640fSAtsushi Nemotosed-$(CONFIG_MIPS) := "/^@@@/{s/^@@@//; s/ \#.*\$$//; p;}"
23048eb582SSam Ravnborg
2486feeaa8SSam Ravnborgquiet_cmd_offsets = GEN     $@
2586feeaa8SSam Ravnborgdefine cmd_offsets
2686feeaa8SSam Ravnborg	(set -e; \
2786feeaa8SSam Ravnborg	 echo "#ifndef __ASM_OFFSETS_H__"; \
2886feeaa8SSam Ravnborg	 echo "#define __ASM_OFFSETS_H__"; \
2986feeaa8SSam Ravnborg	 echo "/*"; \
3086feeaa8SSam Ravnborg	 echo " * DO NOT MODIFY."; \
3186feeaa8SSam Ravnborg	 echo " *"; \
3265ff22eeSOlaf Hering	 echo " * This file was generated by Kbuild"; \
3386feeaa8SSam Ravnborg	 echo " *"; \
3486feeaa8SSam Ravnborg	 echo " */"; \
3586feeaa8SSam Ravnborg	 echo ""; \
36ac448afbSBrian Gerst	 sed -ne $(sed-y) $<; \
3786feeaa8SSam Ravnborg	 echo ""; \
3886feeaa8SSam Ravnborg	 echo "#endif" ) > $@
3986feeaa8SSam Ravnborgendef
4086feeaa8SSam Ravnborg
4186feeaa8SSam Ravnborg# We use internal kbuild rules to avoid the "is up to date" message from make
4286feeaa8SSam Ravnborgarch/$(ARCH)/kernel/asm-offsets.s: arch/$(ARCH)/kernel/asm-offsets.c FORCE
4386feeaa8SSam Ravnborg	$(Q)mkdir -p $(dir $@)
4486feeaa8SSam Ravnborg	$(call if_changed_dep,cc_s_c)
4586feeaa8SSam Ravnborg
468d36a623SSam Ravnborg$(obj)/$(offsets-file): arch/$(ARCH)/kernel/asm-offsets.s Kbuild
47ac448afbSBrian Gerst	$(Q)mkdir -p $(dir $@)
4886feeaa8SSam Ravnborg	$(call cmd,offsets)
4986feeaa8SSam Ravnborg
50*c53aeca0SSam Ravnborg#####
51*c53aeca0SSam Ravnborg# 2) Check for missing system calls
52*c53aeca0SSam Ravnborg#
53*c53aeca0SSam Ravnborg
54*c53aeca0SSam Ravnborgquiet_cmd_syscalls = CALL    $<
55*c53aeca0SSam Ravnborg      cmd_syscalls = $(CONFIG_SHELL) $< $(CC) $(c_flags)
56*c53aeca0SSam Ravnborg
57*c53aeca0SSam RavnborgPHONY += missing-syscalls
58*c53aeca0SSam Ravnborgmissing-syscalls: scripts/checksyscalls.sh FORCE
59*c53aeca0SSam Ravnborg	$(call cmd,syscalls)
60