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