xref: /openbmc/u-boot/scripts/mkmakefile (revision bd5053ff)
122433fc5SMasahiro Yamada#!/bin/sh
222433fc5SMasahiro Yamada# Generates a small Makefile used in the root of the output
322433fc5SMasahiro Yamada# directory, to allow make to be started from there.
422433fc5SMasahiro Yamada# The Makefile also allow for more convinient build of external modules
522433fc5SMasahiro Yamada
622433fc5SMasahiro Yamada# Usage
722433fc5SMasahiro Yamada# $1 - Kernel src directory
822433fc5SMasahiro Yamada# $2 - Output directory
922433fc5SMasahiro Yamada# $3 - version
1022433fc5SMasahiro Yamada# $4 - patchlevel
1122433fc5SMasahiro Yamada
1222433fc5SMasahiro Yamada
1322433fc5SMasahiro Yamadatest ! -r $2/Makefile -o -O $2/Makefile || exit 0
1422433fc5SMasahiro Yamada# Only overwrite automatically generated Makefiles
1522433fc5SMasahiro Yamada# (so we do not overwrite kernel Makefile)
1622433fc5SMasahiro Yamadaif test -e $2/Makefile && ! grep -q Automatically $2/Makefile
1722433fc5SMasahiro Yamadathen
1822433fc5SMasahiro Yamada	exit 0
1922433fc5SMasahiro Yamadafi
2022433fc5SMasahiro Yamadaif [ "${quiet}" != "silent_" ]; then
2122433fc5SMasahiro Yamada	echo "  GEN     $2/Makefile"
2222433fc5SMasahiro Yamadafi
2322433fc5SMasahiro Yamada
2422433fc5SMasahiro Yamadacat << EOF > $2/Makefile
2522433fc5SMasahiro Yamada# Automatically generated by $0: don't edit
2622433fc5SMasahiro Yamada
2722433fc5SMasahiro YamadaVERSION = $3
2822433fc5SMasahiro YamadaPATCHLEVEL = $4
2922433fc5SMasahiro Yamada
3022433fc5SMasahiro Yamadalastword = \$(word \$(words \$(1)),\$(1))
3122433fc5SMasahiro Yamadamakedir := \$(dir \$(call lastword,\$(MAKEFILE_LIST)))
3222433fc5SMasahiro Yamada
3322433fc5SMasahiro Yamadaifeq ("\$(origin V)", "command line")
3422433fc5SMasahiro YamadaVERBOSE := \$(V)
3522433fc5SMasahiro Yamadaendif
3622433fc5SMasahiro Yamadaifneq (\$(VERBOSE),1)
3722433fc5SMasahiro YamadaQ := @
3822433fc5SMasahiro Yamadaendif
3922433fc5SMasahiro Yamada
4022433fc5SMasahiro YamadaMAKEARGS := -C $1
4122433fc5SMasahiro YamadaMAKEARGS += O=\$(if \$(patsubst /%,,\$(makedir)),\$(CURDIR)/)\$(patsubst %/,%,\$(makedir))
4222433fc5SMasahiro Yamada
4322433fc5SMasahiro YamadaMAKEFLAGS += --no-print-directory
4422433fc5SMasahiro Yamada
45*e7734404SMasahiro Yamada.PHONY: __sub-make \$(MAKECMDGOALS)
4622433fc5SMasahiro Yamada
47*e7734404SMasahiro Yamada__sub-make:
48*e7734404SMasahiro Yamada	\$(Q)\$(MAKE) \$(MAKEARGS) \$(MAKECMDGOALS)
4922433fc5SMasahiro Yamada
50*e7734404SMasahiro Yamada\$(filter-out __sub-make, \$(MAKECMDGOALS)): __sub-make
5122433fc5SMasahiro Yamada	@:
5222433fc5SMasahiro YamadaEOF
53