Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  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/linux/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/asm/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:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \
 57         s:->::; p;}"
 58 endef
 59 
 60 quiet_cmd_offsets = GEN     $@
 61 define cmd_offsets
 62         (set -e; \
 63          echo "#ifndef __ASM_OFFSETS_H__"; \
 64          echo "#define __ASM_OFFSETS_H__"; \
 65          echo "/*"; \
 66          echo " * DO NOT MODIFY."; \
 67          echo " *"; \
 68          echo " * This file was generated by Kbuild"; \
 69          echo " *"; \
 70          echo " */"; \
 71          echo ""; \
 72          sed -ne $(sed-y) $<; \
 73          echo ""; \
 74          echo "#endif" ) > $@
 75 endef
 76 
 77 # We use internal kbuild rules to avoid the "is up to date" message from make
 78 arch/$(SRCARCH)/kernel/asm-offsets.s: arch/$(SRCARCH)/kernel/asm-offsets.c \
 79                                       $(obj)/$(bounds-file) FORCE
 80         $(Q)mkdir -p $(dir $@)
 81         $(call if_changed_dep,cc_s_c)
 82 
 83 $(obj)/$(offsets-file): arch/$(SRCARCH)/kernel/asm-offsets.s Kbuild
 84         $(call cmd,offsets)
 85 
 86 #####
 87 # 3) Check for missing system calls
 88 #
 89 
 90 quiet_cmd_syscalls = CALL    $<
 91       cmd_syscalls = $(CONFIG_SHELL) $< $(CC) $(c_flags)
 92 
 93 PHONY += missing-syscalls
 94 missing-syscalls: scripts/checksyscalls.sh FORCE
 95         $(call cmd,syscalls)
 96 
 97 # Delete all targets during make clean
 98 clean-files := $(addprefix $(objtree)/,$(filter-out $(bounds-file) $(offsets-file),$(targets)))
  This page was automatically generated by the LXR engine.