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 # Default sed regexp - multiline due to syntax constraints
  9 define sed-y
 10         "/^->/{s:->#\(.*\):/* \1 */:; \
 11         s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \
 12         s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \
 13         s:->::; p;}"
 14 endef
 15 
 16 # Use filechk to avoid rebuilds when a header changes, but the resulting file
 17 # does not
 18 define filechk_offsets
 19         (set -e; \
 20          echo "#ifndef $2"; \
 21          echo "#define $2"; \
 22          echo "/*"; \
 23          echo " * DO NOT MODIFY."; \
 24          echo " *"; \
 25          echo " * This file was generated by Kbuild"; \
 26          echo " */"; \
 27          echo ""; \
 28          sed -ne $(sed-y); \
 29          echo ""; \
 30          echo "#endif" )
 31 endef
 32 
 33 #####
 34 # 1) Generate bounds.h
 35 
 36 bounds-file := include/generated/bounds.h
 37 
 38 always  := $(bounds-file)
 39 targets := kernel/bounds.s
 40 
 41 # We use internal kbuild rules to avoid the "is up to date" message from make
 42 kernel/bounds.s: kernel/bounds.c FORCE
 43         $(Q)mkdir -p $(dir $@)
 44         $(call if_changed_dep,cc_s_c)
 45 
 46 $(obj)/$(bounds-file): kernel/bounds.s FORCE
 47         $(call filechk,offsets,__LINUX_BOUNDS_H__)
 48 
 49 #####
 50 # 2) Generate asm-offsets.h
 51 #
 52 
 53 offsets-file := include/generated/asm-offsets.h
 54 
 55 always  += $(offsets-file)
 56 targets += arch/$(SRCARCH)/kernel/asm-offsets.s
 57 
 58 # We use internal kbuild rules to avoid the "is up to date" message from make
 59 arch/$(SRCARCH)/kernel/asm-offsets.s: arch/$(SRCARCH)/kernel/asm-offsets.c \
 60                                       $(obj)/$(bounds-file) FORCE
 61         $(Q)mkdir -p $(dir $@)
 62         $(call if_changed_dep,cc_s_c)
 63 
 64 $(obj)/$(offsets-file): arch/$(SRCARCH)/kernel/asm-offsets.s FORCE
 65         $(call filechk,offsets,__ASM_OFFSETS_H__)
 66 
 67 #####
 68 # 3) Check for missing system calls
 69 #
 70 
 71 always += missing-syscalls
 72 targets += missing-syscalls
 73 
 74 quiet_cmd_syscalls = CALL    $<
 75       cmd_syscalls = $(CONFIG_SHELL) $< $(CC) $(c_flags) $(missing_syscalls_flags)
 76 
 77 missing-syscalls: scripts/checksyscalls.sh $(offsets-file) FORCE
 78         $(call cmd,syscalls)
 79 
 80 # Keep these two files during make clean
 81 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