Re: [PATCH 01/30] perf tools: Add new build framework support

Arnaldo Carvalho de Melo
2015-01-06T13:41:33Z

Em Mon, Jan 05, 2015 at 12:13:35PM +0100, Jiri Olsa escreveu:
> On Mon, Jan 05, 2015 at 11:57:51AM +0100, Borislav Petkov wrote:
> > On Fri, Jan 02, 2015 at 04:35:43PM +0100, Jiri Olsa wrote:
> > > +a) Build makefiles
> > > +------------------
> > > +User supplies 'Build' makefiles that contains objects summary,
> > > +like for example following 'krava/Build' file:
> > > +
> > > + perf-y += a.o
> > > + perf-y += b.o
> > > +
> > > +The build framework is triggered by:
> > > + $ make -f Makefile.build dir=krava obj=perf
> > > +
> > > +which produces 'krava/perf-in.o' object file that has both
> > > +a.o and b.o objects compiled in linked together.
> > > +
> > > +The 'Build' makefile can contains multiple objects definitions
> > > +to allow building separated binaries, like:
> > > +
> > > + perf-y += a.o
> > > + perf-y += b.o
> > > +
> > > + libperf-y += c.o
> > > + libperf-y += d.o
> > > +
> > > +If the build framework is triggered by:
> > > + $ make -f Makefile.build dir=krava obj=libperf
> > > +
> > > +it produces 'krava/libperf-in.o' object file that has both
> > > +a.o and b.o objects compiled in linked together.
> >
> > Ok, question: you say those "Build" files are supplied by the user. Does
> > that mean that everyone has to go and write their own or are we still
> > using Kconfig and doing it in a more user-friendly manner?
>
> there's no Kconfig involved in perf build at this moment..
>
> the 'Build' Makefiles are equivalents of Kbuild/Makefile makefiles
> within the kernel build system.. I just move the 'K' out
>
> >
> > I've probably missed this in the whole perf fastlane development... :)
>
> the reason for this switch is to have a first step towards
> easy config support 'kernel Kconfig style like' in build
>
> also with this change it's easier to see how the perf binary
> is build and what flags were used for particular object..
> at least for kernel developer used to kbuild ;-)
>
> I also believe that the support to allow just part of the perf
> code in perf binary will force the less spaghetti code ;-)

Right, making it possible for us to build a minimalistic perf will have
manifold good implications :-)

But perhaps we could continue calling it the same way as in the kernel?
I.e. we would then be using the "Kbuild" build configuration mechanism,
the K would be there just for historic reasons.

- Arnaldo