• David Howells's avatar
    tools: Honour the O= flag when tool build called from a higher Makefile · bf35182f
    David Howells authored
    Honour the O= flag that was passed to a higher level Makefile and then passed
    down as part of a tool build.
    
    To make this work, the top-level Makefile passes the original O= flag and
    subdir=tools to the tools/Makefile, and that in turn passes
    subdir=$(O)/$(subdir)/foodir when building tool foo in directory
    $(O)/$(subdir)/foodir (where the intervening slashes aren't added if an
    element is missing).
    
    For example, take perf.  This is found in tools/perf/.  Assume we're building
    into directory ~/zebra/, so we pass O=~/zebra to make.  Dependening on where
    we run the build from, we see:
    
    	make run in dir		$(OUTPUT) dir
    	=======================	==================
    	linux			~/zebra/tools/perf/
    	linux/tools		~/zebra/perf/
    	linux/tools/perf	~/zebra/
    
    and if O= is not set, we get:
    
    	make run in dir		$(OUTPUT) dir
    	=======================	==================
    	linux			linux/tools/perf/
    	linux/tools		linux/tools/perf/
    	linux/tools/perf	linux/tools/perf/
    
    The output directories are created by the descend function if they don't
    already exist.
    Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
    Cc: Borislav Petkov <bp@amd64.org>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Namhyung Kim <namhyung@gmail.com>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/1378.1352379110@warthog.procyon.org.ukSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    bf35182f
Makefile 46.7 KB