| lh | 9ed821d | 2023-04-07 01:36:19 -0700 | [diff] [blame] | 1 | #!/bin/sh | 
 | 2 | # Generates a small Makefile used in the root of the output | 
 | 3 | # directory, to allow make to be started from there. | 
 | 4 | # The Makefile also allow for more convinient build of external modules | 
 | 5 |  | 
 | 6 | # Usage | 
 | 7 | # $1 - Kernel src directory | 
 | 8 | # $2 - Output directory | 
 | 9 | # $3 - version | 
 | 10 | # $4 - patchlevel | 
 | 11 |  | 
 | 12 |  | 
 | 13 | test ! -r $2/Makefile -o -O $2/Makefile || exit 0 | 
 | 14 | # Only overwrite automatically generated Makefiles | 
 | 15 | # (so we do not overwrite kernel Makefile) | 
 | 16 | if test -e $2/Makefile && ! grep -q Automatically $2/Makefile | 
 | 17 | then | 
 | 18 | 	exit 0 | 
 | 19 | fi | 
 | 20 | if [ "${quiet}" != "silent_" ]; then | 
 | 21 | 	echo "  GEN     $2/Makefile" | 
 | 22 | fi | 
 | 23 |  | 
 | 24 | cat << EOF > $2/Makefile | 
 | 25 | # Automatically generated by $0: don't edit | 
 | 26 |  | 
 | 27 | VERSION = $3 | 
 | 28 | PATCHLEVEL = $4 | 
 | 29 |  | 
 | 30 | lastword = \$(word \$(words \$(1)),\$(1)) | 
 | 31 | makedir := \$(dir \$(call lastword,\$(MAKEFILE_LIST))) | 
 | 32 |  | 
 | 33 | ifeq ("\$(origin V)", "command line") | 
 | 34 | VERBOSE := \$(V) | 
 | 35 | endif | 
 | 36 | ifneq (\$(VERBOSE),1) | 
 | 37 | Q := @ | 
 | 38 | endif | 
 | 39 |  | 
 | 40 | MAKEARGS := -C $1 | 
 | 41 | MAKEARGS += O=\$(if \$(patsubst /%,,\$(makedir)),\$(CURDIR)/)\$(patsubst %/,%,\$(makedir)) | 
 | 42 |  | 
 | 43 | MAKEFLAGS += --no-print-directory | 
 | 44 |  | 
 | 45 | .PHONY: all \$(MAKECMDGOALS) | 
 | 46 |  | 
 | 47 | all	:= \$(filter-out all Makefile,\$(MAKECMDGOALS)) | 
 | 48 |  | 
 | 49 | all: | 
 | 50 | 	\$(Q)\$(MAKE) \$(MAKEARGS) \$(all) | 
 | 51 |  | 
 | 52 | Makefile:; | 
 | 53 |  | 
 | 54 | \$(all): all | 
 | 55 | 	@: | 
 | 56 |  | 
 | 57 | %/: all | 
 | 58 | 	@: | 
 | 59 | EOF |