#!/bin/sh
# 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 convenient build of external modules

# Usage
# $1 - Kernel src directory
# $2 - Output directory


test ! -r $2/Makefile -o -O $2/Makefile || exit 0
# Only overwrite automatically generated Makefiles
# (so we do not overwrite buildroot Makefile)
if test -e $2/Makefile && ! grep -q Automatically $2/Makefile
then
	exit 0
fi
echo "  GEN     $2/Makefile"

cat << EOF > $2/Makefile
# Automatically generated by $0: don't edit

ifeq ("\$(origin V)", "command line")
VERBOSE := \$(V)
endif
ifneq (\$(VERBOSE),1)
Q := @
endif

lastword = \$(word \$(words \$(1)),\$(1))
makedir := \$(dir \$(call lastword,\$(MAKEFILE_LIST)))

MAKEARGS := -C $1
MAKEARGS += O=\$(if \$(patsubst /%,,\$(makedir)),\$(CURDIR)/)\$(patsubst %/,%,\$(makedir))

MAKEFLAGS += --no-print-directory

.PHONY: _all \$(MAKECMDGOALS)

all	:= \$(filter-out Makefile,\$(MAKECMDGOALS))

_all:
	\$(Q)umask 0022 && \$(MAKE) \$(MAKEARGS) \$(all)

Makefile:;

\$(all): _all
	@:

%/: _all
	@:
EOF
