linux-yocto/scripts/mkmakefile
Jan Beulich 1d3b3bfab1 kbuild: scripts/mkmakefile: dynamic determination of output directory
Rather than fixing the output directory in the generated Makefile,
determine it from the placement of Makefile. This allows moving
the build tree around or accessing it through different mount paths.

(The lastword definition is a compatibility one for make prior to 3.81;
newer make will simply ignore it and use the [faster] built-in.)

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2008-01-28 23:14:38 +01:00

1.0 KiB

#!/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 convinient build of external modules

Usage

$1 - Kernel src directory

$2 - Output directory

$3 - version

$4 - patchlevel

test ! -r $2/Makefile -o -O $2/Makefile || exit 0

Only overwrite automatically generated Makefiles

(so we do not overwrite kernel 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

VERSION = $3 PATCHLEVEL = $4

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 all Makefile,$(MAKECMDGOALS))

all: $(MAKE) $(MAKEARGS) $(all)

Makefile:;

$(all) %/: all @:

EOF