| Sam Ravnborg | 86feeaa | 2005-09-09 19:28:28 +0200 | [diff] [blame] | 1 | # | 
 | 2 | # Kbuild for top-level directory of the kernel | 
 | 3 | # This file takes care of the following: | 
 | 4 | # 1) Generate asm-offsets.h | 
| Sam Ravnborg | c53aeca | 2007-03-27 22:50:29 +0200 | [diff] [blame] | 5 | # 2) Check for missing system calls | 
| Sam Ravnborg | 86feeaa | 2005-09-09 19:28:28 +0200 | [diff] [blame] | 6 |  | 
 | 7 | ##### | 
| Sam Ravnborg | 8d36a62 | 2005-09-10 21:05:36 +0200 | [diff] [blame] | 8 | # 1) Generate asm-offsets.h | 
| Sam Ravnborg | 86feeaa | 2005-09-09 19:28:28 +0200 | [diff] [blame] | 9 | # | 
 | 10 |  | 
 | 11 | offsets-file := include/asm-$(ARCH)/asm-offsets.h | 
 | 12 |  | 
 | 13 | always  := $(offsets-file) | 
 | 14 | targets := $(offsets-file) | 
 | 15 | targets += arch/$(ARCH)/kernel/asm-offsets.s | 
 | 16 |  | 
| Sam Ravnborg | 048eb58 | 2005-09-09 22:32:31 +0200 | [diff] [blame] | 17 | # Default sed regexp - multiline due to syntax constraints | 
 | 18 | define sed-y | 
 | 19 | 	"/^->/{s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; s:->::; p;}" | 
 | 20 | endef | 
 | 21 | # Override default regexp for specific architectures | 
| Atsushi Nemoto | 0947640 | 2006-03-28 00:18:54 +0900 | [diff] [blame] | 22 | sed-$(CONFIG_MIPS) := "/^@@@/{s/^@@@//; s/ \#.*\$$//; p;}" | 
| Sam Ravnborg | 048eb58 | 2005-09-09 22:32:31 +0200 | [diff] [blame] | 23 |  | 
| Sam Ravnborg | 86feeaa | 2005-09-09 19:28:28 +0200 | [diff] [blame] | 24 | quiet_cmd_offsets = GEN     $@ | 
 | 25 | define cmd_offsets | 
| Sam Ravnborg | 86feeaa | 2005-09-09 19:28:28 +0200 | [diff] [blame] | 26 | 	(set -e; \ | 
 | 27 | 	 echo "#ifndef __ASM_OFFSETS_H__"; \ | 
 | 28 | 	 echo "#define __ASM_OFFSETS_H__"; \ | 
 | 29 | 	 echo "/*"; \ | 
 | 30 | 	 echo " * DO NOT MODIFY."; \ | 
 | 31 | 	 echo " *"; \ | 
| Olaf Hering | 65ff22e | 2006-07-25 18:42:26 -0700 | [diff] [blame] | 32 | 	 echo " * This file was generated by Kbuild"; \ | 
| Sam Ravnborg | 86feeaa | 2005-09-09 19:28:28 +0200 | [diff] [blame] | 33 | 	 echo " *"; \ | 
 | 34 | 	 echo " */"; \ | 
 | 35 | 	 echo ""; \ | 
| Brian Gerst | ac448af | 2006-01-06 18:28:45 -0500 | [diff] [blame] | 36 | 	 sed -ne $(sed-y) $<; \ | 
| Sam Ravnborg | 86feeaa | 2005-09-09 19:28:28 +0200 | [diff] [blame] | 37 | 	 echo ""; \ | 
 | 38 | 	 echo "#endif" ) > $@ | 
 | 39 | endef | 
 | 40 |  | 
 | 41 | # We use internal kbuild rules to avoid the "is up to date" message from make | 
 | 42 | arch/$(ARCH)/kernel/asm-offsets.s: arch/$(ARCH)/kernel/asm-offsets.c FORCE | 
 | 43 | 	$(Q)mkdir -p $(dir $@) | 
 | 44 | 	$(call if_changed_dep,cc_s_c) | 
 | 45 |  | 
| Sam Ravnborg | 8d36a62 | 2005-09-10 21:05:36 +0200 | [diff] [blame] | 46 | $(obj)/$(offsets-file): arch/$(ARCH)/kernel/asm-offsets.s Kbuild | 
| Brian Gerst | ac448af | 2006-01-06 18:28:45 -0500 | [diff] [blame] | 47 | 	$(Q)mkdir -p $(dir $@) | 
| Sam Ravnborg | 86feeaa | 2005-09-09 19:28:28 +0200 | [diff] [blame] | 48 | 	$(call cmd,offsets) | 
 | 49 |  | 
| Sam Ravnborg | c53aeca | 2007-03-27 22:50:29 +0200 | [diff] [blame] | 50 | ##### | 
 | 51 | # 2) Check for missing system calls | 
 | 52 | # | 
 | 53 |  | 
 | 54 | quiet_cmd_syscalls = CALL    $< | 
 | 55 |       cmd_syscalls = $(CONFIG_SHELL) $< $(CC) $(c_flags) | 
 | 56 |  | 
 | 57 | PHONY += missing-syscalls | 
 | 58 | missing-syscalls: scripts/checksyscalls.sh FORCE | 
 | 59 | 	$(call cmd,syscalls) |