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 convenient build of external modules 5 6# Usage 7# $1 - Kernel src directory 8# $2 - Output directory 9 10 11test ! -r $2/Makefile -o -O $2/Makefile || exit 0 12# Only overwrite automatically generated Makefiles 13# (so we do not overwrite buildroot Makefile) 14if test -e $2/Makefile && ! grep -q Automatically $2/Makefile 15then 16 exit 0 17fi 18echo " GEN $2/Makefile" 19 20cat << EOF > $2/Makefile 21# Automatically generated by $0: don't edit 22 23ifeq ("\$(origin V)", "command line") 24VERBOSE := \$(V) 25endif 26ifneq (\$(VERBOSE),1) 27Q := @ 28endif 29 30lastword = \$(word \$(words \$(1)),\$(1)) 31makedir := \$(dir \$(call lastword,\$(MAKEFILE_LIST))) 32 33MAKEARGS := -C $1 34MAKEARGS += O=\$(if \$(patsubst /%,,\$(makedir)),\$(CURDIR)/)\$(patsubst %/,%,\$(makedir)) 35 36MAKEFLAGS += --no-print-directory 37 38.PHONY: _all \$(MAKECMDGOALS) 39 40all := \$(filter-out Makefile,\$(MAKECMDGOALS)) 41 42_all: 43 \$(Q)umask 0022 && \$(MAKE) \$(MAKEARGS) \$(all) 44 45Makefile:; 46 47\$(all): _all 48 @: 49 50%/: _all 51 @: 52EOF 53