| #!/bin/sh | |
| # SPDX-License-Identifier: GPL-2.0 | |
| # Generates a small Makefile used in the root of the output | |
| # directory, to allow make to be started from there. | |
| # The Makefile also allow for more convinient build of external modules | |
| # Usage | |
| # $1 - Kernel src directory | |
| # $2 - Output directory | |
| # $3 - version | |
| # $4 - patchlevel | |
| test ! -r $2/Makefile -o -O $2/Makefile || exit 0 | |
| # Only overwrite automatically generated Makefiles | |
| # (so we do not overwrite kernel Makefile) | |
| if test -e $2/Makefile && ! grep -q Automatically $2/Makefile | |
| then | |
| exit 0 | |
| fi | |
| if [ "${quiet}" != "silent_" ]; then | |
| echo " GEN $2/Makefile" | |
| fi | |
| cat << EOF > $2/Makefile | |
| # Automatically generated by $0: don't edit | |
| VERSION = $3 | |
| PATCHLEVEL = $4 | |
| lastword = \$(word \$(words \$(1)),\$(1)) | |
| makedir := \$(dir \$(call lastword,\$(MAKEFILE_LIST))) | |
| ifeq ("\$(origin V)", "command line") | |
| VERBOSE := \$(V) | |
| endif | |
| ifneq (\$(VERBOSE),1) | |
| Q := @ | |
| endif | |
| MAKEARGS := -C $1 | |
| MAKEARGS += O=\$(if \$(patsubst /%,,\$(makedir)),\$(CURDIR)/)\$(patsubst %/,%,\$(makedir)) | |
| MAKEFLAGS += --no-print-directory | |
| .PHONY: __sub-make \$(MAKECMDGOALS) | |
| __sub-make: | |
| \$(Q)\$(MAKE) \$(MAKEARGS) \$(MAKECMDGOALS) | |
| \$(filter-out __sub-make, \$(MAKECMDGOALS)): __sub-make | |
| @: | |
| EOF |