The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/Kbuild

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    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)

Cache object: 55862ef22ac0302ab4c517d998f9da08


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.