• Masahiro Yamada's avatar
    kbuild: add a phony target to run a command with Kbuild env vars · 76a48b8f
    Masahiro Yamada authored
    There are some cases where we want to run a command with the same
    environment variables as Kbuild uses. For example, 'make coccicheck'
    invokes scripts/coccicheck from the top Makefile so that the script can
    reference to ${LINUXINCLUDE}, ${KBUILD_EXTMOD}, etc. The top Makefile
    defines several phony targets that run a script.
    
    We do it also for an internally used script, which results in a somewhat
    complex call graph.
    
    One example:
    
     debian/rules binary-arch
       -> make intdeb-pkg
          -> scripts/package/builddeb
    
    It is also tedious to add a dedicated target like 'intdeb-pkg' for each
    use case.
    
    Add a generic target 'run-command' to run an arbitrary command in an
    environment with all Kbuild variables set.
    
    The usage is:
    
      $ make run-command KBUILD_RUN_COMMAND=<command>
    
    The concept is similar to:
    
      $ dpkg-architecture -c <command>
    
    This executes <command> in an environment which has all DEB_* variables
    defined.
    
    Convert the existing 'make intdeb-pkg'.
    
    Another possible usage is to interrogate a Make variable.
    
      $ make run-command KBUILD_RUN_COMMAND='echo $(KBUILD_CFLAGS)'
    
    might be useful to see KBUILD_CFLAGS set by the top Makefile.
    Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
    76a48b8f
Makefile.package 9.7 KB