From: Alexei Starovoitov
> Sent: 26 April 2016 15:35
> On Tue, Apr 26, 2016 at 01:09:32PM +0200, Jesper Dangaard Brouer wrote:
> > It is not intuitive that 'make' must be run from the top level
> > directory with argument "samples/bpf/" to compile these eBPF samples.
> >
> > Introduce a kbuild make file trick that allow make to be run from the
> > "samples/bpf/" directory itself. It basically change to the top level
> > directory and call "make samples/bpf/" with the "/" slash after the
> > directory name.
> >
> > Also add a clean target that only cleans this directory, by taking
> > advantage of the kbuild external module setting M=$PWD.
> >
> > Signed-off-by: Jesper Dangaard Brouer <[email protected]>
> > ---
> > samples/bpf/Makefile | 8 ++++++++
> > samples/bpf/README.rst | 3 +++
> > 2 files changed, 11 insertions(+)
> >
> > diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
> > index 7ac66f5bbbf5..7370dfee482f 100644
> > --- a/samples/bpf/Makefile
> > +++ b/samples/bpf/Makefile
> > @@ -85,6 +85,14 @@ HOSTLOADLIBES_test_overhead += -lelf -lrt
> > # make samples/bpf/ LLC=~/git/llvm/build/bin/llc
> > LLC ?= llc
> >
> > +# Trick to allow make to be run from this directory
> > +all:
> > + $(MAKE) -C ../../ $$PWD/
> > +
> > +clean:
> > + $(MAKE) -C ../../ M=$$PWD clean
> > + @rm -f *~
> > +
>
> nice trick!
Another nice 'trick' is to write a GNUmakefie containing the local rules.
GNU make will read it in preference to Makefile and makefile.
David