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 13test ! -r $2/Makefile -o -O $2/Makefile || exit 0 14# Only overwrite automatically generated Makefiles 15# (so we do not overwrite kernel Makefile) 16if test -e $2/Makefile && ! grep -q Automatically $2/Makefile 17then 18 exit 0 19fi 20echo " GEN $2/Makefile" 21 22cat << EOF > $2/Makefile 23# Automatically generated by $0: don't edit 24 25VERSION = $3 26PATCHLEVEL = $4 27 28lastword = \$(word \$(words \$(1)),\$(1)) 29makedir := \$(dir \$(call lastword,\$(MAKEFILE_LIST))) 30 31MAKEARGS := -C $1 32MAKEARGS += O=\$(if \$(patsubst /%,,\$(makedir)),\$(CURDIR)/)\$(patsubst %/,%,\$(makedir)) 33 34MAKEFLAGS += --no-print-directory 35 36.PHONY: all \$(MAKECMDGOALS) 37 38all := \$(filter-out all Makefile,\$(MAKECMDGOALS)) 39 40all: 41 \$(MAKE) \$(MAKEARGS) \$(all) 42 43Makefile:; 44 45\$(all): all 46 @: 47 48%/: all 49 @: 50EOF 51