#!/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