Version:  2.0.40 2.2.26 2.4.37 3.13 3.14 3.15 3.16 3.17 3.18 3.19 4.0 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10

Linux/Kbuild

  1 #
  2 # Kbuild for top-level directory of the kernel
  3 # This file takes care of the following:
  4 # 1) Generate bounds.h
  5 # 2) Generate asm-offsets.h (may need bounds.h)
  6 # 3) Check for missing system calls
  7 
  8 #####
  9 # 1) Generate bounds.h
 10 
 11 bounds-file := include/generated/bounds.h
 12 
 13 always  := $(bounds-file)
 14 targets := $(bounds-file) kernel/bounds.s
 15 
 16 quiet_cmd_bounds = GEN     $@
 17 define cmd_bounds
 18         (set -e; \
 19          echo "#ifndef __LINUX_BOUNDS_H__"; \
 20          echo "#define __LINUX_BOUNDS_H__"; \
 21          echo "/*"; \
 22          echo " * DO NOT MODIFY."; \
 23          echo " *"; \
 24          echo " * This file was generated by Kbuild"; \
 25          echo " *"; \
 26          echo " */"; \
 27          echo ""; \
 28          sed -ne $(sed-y) $<; \
 29          echo ""; \
 30          echo "#endif" ) > $@
 31 endef
 32 
 33 # We use internal kbuild rules to avoid the "is up to date" message from make
 34 kernel/bounds.s: kernel/bounds.c FORCE
 35         $(Q)mkdir -p $(dir $@)
 36         $(call if_changed_dep,cc_s_c)
 37 
 38 $(obj)/$(bounds-file): kernel/bounds.s Kbuild
 39         $(Q)mkdir -p $(dir $@)
 40         $(call cmd,bounds)
 41 
 42 #####
 43 # 2) Generate asm-offsets.h
 44 #
 45 
 46 offsets-file := include/generated/asm-offsets.h
 47 
 48 always  += $(offsets-file)
 49 targets += $(offsets-file)
 50 targets += arch/$(SRCARCH)/kernel/asm-offsets.s
 51 
 52 
 53 # Default sed regexp - multiline due to syntax constraints
 54 define sed-y
 55         "/^->/{s:->#\(.*\):/* \1 */:; \
 56         s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \
 57         s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \
 58         s:->::; p;}"
 59 endef
 60 
 61 quiet_cmd_offsets = GEN     $@
 62 define cmd_offsets
 63         (set -e; \
 64          echo "#ifndef __ASM_OFFSETS_H__"; \
 65          echo "#define __ASM_OFFSETS_H__"; \
 66          echo "/*"; \
 67          echo " * DO NOT MODIFY."; \
 68          echo " *"; \
 69          echo " * This file was generated by Kbuild"; \
 70          echo " *"; \
 71          echo " */"; \
 72          echo ""; \
 73          sed -ne $(sed-y) $<; \
 74          echo ""; \
 75          echo "#endif" ) > $@
 76 endef
 77 
 78 # We use internal kbuild rules to avoid the "is up to date" message from make
 79 arch/$(SRCARCH)/kernel/asm-offsets.s: arch/$(SRCARCH)/kernel/asm-offsets.c \
 80                                       $(obj)/$(bounds-file) FORCE
 81         $(Q)mkdir -p $(dir $@)
 82         $(call if_changed_dep,cc_s_c)
 83 
 84 $(obj)/$(offsets-file): arch/$(SRCARCH)/kernel/asm-offsets.s Kbuild
 85         $(call cmd,offsets)
 86 
 87 #####
 88 # 3) Check for missing system calls
 89 #
 90 
 91 always += missing-syscalls
 92 targets += missing-syscalls
 93 
 94 quiet_cmd_syscalls = CALL    $<
 95       cmd_syscalls = $(CONFIG_SHELL) $< $(CC) $(c_flags) $(missing_syscalls_flags)
 96 
 97 missing-syscalls: scripts/checksyscalls.sh $(offsets-file) FORCE
 98         $(call cmd,syscalls)
 99 
100 # Keep these two files during make clean
101 no-clean-files := $(bounds-file) $(offsets-file)

This page was automatically generated by LXR 0.3.1 (source).  •  Linux is a registered trademark of Linus Torvalds  •  Contact us