Blame view

scripts/mkmakefile 1.16 KB
d41ce506b   Eric Lee   Initial Release, ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
  #!/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
  if [ "${quiet}" != "silent_" ]; then
  	echo "  GEN     $2/Makefile"
  fi
  
  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)))
  
  ifeq ("\$(origin V)", "command line")
  VERBOSE := \$(V)
  endif
  ifneq (\$(VERBOSE),1)
  Q := @
  endif
  
  MAKEARGS := -C $1
  MAKEARGS += O=\$(if \$(patsubst /%,,\$(makedir)),\$(CURDIR)/)\$(patsubst %/,%,\$(makedir))
  
  MAKEFLAGS += --no-print-directory
  
  .PHONY: __sub-make \$(MAKECMDGOALS)
  
  __sub-make:
  	\$(Q)\$(MAKE) \$(MAKEARGS) \$(MAKECMDGOALS)
  
  \$(filter-out __sub-make, \$(MAKECMDGOALS)): __sub-make
  	@:
  EOF