xref: /openbmc/u-boot/scripts/mkmakefile (revision 22433fc5)
1*22433fc5SMasahiro Yamada#!/bin/sh
2*22433fc5SMasahiro Yamada# Generates a small Makefile used in the root of the output
3*22433fc5SMasahiro Yamada# directory, to allow make to be started from there.
4*22433fc5SMasahiro Yamada# The Makefile also allow for more convinient build of external modules
5*22433fc5SMasahiro Yamada
6*22433fc5SMasahiro Yamada# Usage
7*22433fc5SMasahiro Yamada# $1 - Kernel src directory
8*22433fc5SMasahiro Yamada# $2 - Output directory
9*22433fc5SMasahiro Yamada# $3 - version
10*22433fc5SMasahiro Yamada# $4 - patchlevel
11*22433fc5SMasahiro Yamada
12*22433fc5SMasahiro Yamada
13*22433fc5SMasahiro Yamadatest ! -r $2/Makefile -o -O $2/Makefile || exit 0
14*22433fc5SMasahiro Yamada# Only overwrite automatically generated Makefiles
15*22433fc5SMasahiro Yamada# (so we do not overwrite kernel Makefile)
16*22433fc5SMasahiro Yamadaif test -e $2/Makefile && ! grep -q Automatically $2/Makefile
17*22433fc5SMasahiro Yamadathen
18*22433fc5SMasahiro Yamada	exit 0
19*22433fc5SMasahiro Yamadafi
20*22433fc5SMasahiro Yamadaif [ "${quiet}" != "silent_" ]; then
21*22433fc5SMasahiro Yamada	echo "  GEN     $2/Makefile"
22*22433fc5SMasahiro Yamadafi
23*22433fc5SMasahiro Yamada
24*22433fc5SMasahiro Yamadacat << EOF > $2/Makefile
25*22433fc5SMasahiro Yamada# Automatically generated by $0: don't edit
26*22433fc5SMasahiro Yamada
27*22433fc5SMasahiro YamadaVERSION = $3
28*22433fc5SMasahiro YamadaPATCHLEVEL = $4
29*22433fc5SMasahiro Yamada
30*22433fc5SMasahiro Yamadalastword = \$(word \$(words \$(1)),\$(1))
31*22433fc5SMasahiro Yamadamakedir := \$(dir \$(call lastword,\$(MAKEFILE_LIST)))
32*22433fc5SMasahiro Yamada
33*22433fc5SMasahiro Yamadaifeq ("\$(origin V)", "command line")
34*22433fc5SMasahiro YamadaVERBOSE := \$(V)
35*22433fc5SMasahiro Yamadaendif
36*22433fc5SMasahiro Yamadaifneq (\$(VERBOSE),1)
37*22433fc5SMasahiro YamadaQ := @
38*22433fc5SMasahiro Yamadaendif
39*22433fc5SMasahiro Yamada
40*22433fc5SMasahiro YamadaMAKEARGS := -C $1
41*22433fc5SMasahiro YamadaMAKEARGS += O=\$(if \$(patsubst /%,,\$(makedir)),\$(CURDIR)/)\$(patsubst %/,%,\$(makedir))
42*22433fc5SMasahiro Yamada
43*22433fc5SMasahiro YamadaMAKEFLAGS += --no-print-directory
44*22433fc5SMasahiro Yamada
45*22433fc5SMasahiro Yamada.PHONY: all \$(MAKECMDGOALS)
46*22433fc5SMasahiro Yamada
47*22433fc5SMasahiro Yamadaall	:= \$(filter-out all Makefile,\$(MAKECMDGOALS))
48*22433fc5SMasahiro Yamada
49*22433fc5SMasahiro Yamadaall:
50*22433fc5SMasahiro Yamada	\$(Q)\$(MAKE) \$(MAKEARGS) \$(all)
51*22433fc5SMasahiro Yamada
52*22433fc5SMasahiro YamadaMakefile:;
53*22433fc5SMasahiro Yamada
54*22433fc5SMasahiro Yamada\$(all): all
55*22433fc5SMasahiro Yamada	@:
56*22433fc5SMasahiro Yamada
57*22433fc5SMasahiro Yamada%/: all
58*22433fc5SMasahiro Yamada	@:
59*22433fc5SMasahiro YamadaEOF
60