mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-31 12:39:23 +00:00 
			
		
		
		
	 1d3b3bfab1
			
		
	
	
		1d3b3bfab1
		
	
	
	
	
		
			
			Rather than fixing the output directory in the generated Makefile, determine it from the placement of Makefile. This allows moving the build tree around or accessing it through different mount paths. (The lastword definition is a compatibility one for make prior to 3.81; newer make will simply ignore it and use the [faster] built-in.) Signed-off-by: Jan Beulich <jbeulich@novell.com> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/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
 | |
| echo "  GEN     $2/Makefile"
 | |
| 
 | |
| 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)))
 | |
| 
 | |
| MAKEARGS := -C $1
 | |
| MAKEARGS += O=\$(if \$(patsubst /%,,\$(makedir)),\$(CURDIR)/)\$(patsubst %/,%,\$(makedir))
 | |
| 
 | |
| MAKEFLAGS += --no-print-directory
 | |
| 
 | |
| .PHONY: all \$(MAKECMDGOALS)
 | |
| 
 | |
| all	:= \$(filter-out all Makefile,\$(MAKECMDGOALS))
 | |
| 
 | |
| all:
 | |
| 	\$(MAKE) \$(MAKEARGS) \$(all)
 | |
| 
 | |
| Makefile:;
 | |
| 
 | |
| \$(all) %/: all
 | |
| 	@:
 | |
| 
 | |
| EOF
 |