kbuild: call make once for all targets when O=.. is used
[safe/jmp/linux-2.6] / scripts / mkmakefile
1 #!/bin/sh
2 # Generates a small Makefile used in the root of the output
3 # directory, to allow make to be started from there.
4 # The Makefile also allow for more convinient build of external modules
5
6 # Usage
7 # $1 - Kernel src directory
8 # $2 - Output directory
9 # $3 - version
10 # $4 - patchlevel
11
12
13 test ! -r $2/Makefile -o -O $2/Makefile || exit 0
14 echo "  GEN     $2/Makefile"
15
16 cat << EOF > $2/Makefile
17 # Automatically generated by $0: don't edit
18
19 VERSION = $3
20 PATCHLEVEL = $4
21
22 KERNELSRC    := $1
23 KERNELOUTPUT := $2
24
25 MAKEFLAGS += --no-print-directory
26
27 .PHONY: all \$(MAKECMDGOALS)
28
29 all     := \$(filter-out all Makefile,\$(MAKECMDGOALS))
30
31 all:
32         \$(MAKE) -C \$(KERNELSRC) O=\$(KERNELOUTPUT) \$(all)
33
34 Makefile:;
35
36 \$(all) %/: all
37         @:
38 EOF