27b15073f370f735d8939becd4ea6f63a43a266c
[packages/trusty/cirros-testvm.git] / cirros-testvm / src-cirros / buildroot-2015.05 / support / 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 convenient build of external modules
5
6 # Usage
7 # $1 - Kernel src directory
8 # $2 - Output directory
9
10
11 test ! -r $2/Makefile -o -O $2/Makefile || exit 0
12 # Only overwrite automatically generated Makefiles
13 # (so we do not overwrite buildroot Makefile)
14 if test -e $2/Makefile && ! grep -q Automatically $2/Makefile
15 then
16         exit 0
17 fi
18 if [ "${quiet}" != "silent_" ]; then
19         echo "  GEN     $2/Makefile"
20 fi
21
22 cat << EOF > $2/Makefile
23 # Automatically generated by $0: don't edit
24
25 lastword = \$(word \$(words \$(1)),\$(1))
26 makedir := \$(dir \$(call lastword,\$(MAKEFILE_LIST)))
27
28 MAKEARGS := -C $1
29 MAKEARGS += O=\$(if \$(patsubst /%,,\$(makedir)),\$(CURDIR)/)\$(patsubst %/,%,\$(makedir))
30
31 MAKEFLAGS += --no-print-directory
32
33 .PHONY: all \$(MAKECMDGOALS)
34
35 all     := \$(filter-out Makefile,\$(MAKECMDGOALS))
36
37 _all:
38         \$(MAKE) \$(MAKEARGS) \$(all)
39
40 Makefile:;
41
42 \$(all): _all
43         @:
44
45 %/: _all
46         @:
47 EOF