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