[Lustre-devel] Build system and portability

Ken Hornstein kenh at cmf.nrl.navy.mil
Mon Apr 26 17:50:15 PDT 2010


>> I would just be
>> happy if we could get down to one Makefile; is that possible, given the
>> way that Linux kernel module builds work?
>
>Hrm.  Just given the existing relationship between Makefiles, the Rules
>file and autoMakefiles, it seems probably not, without a lot of
>duplication (and the ongoing maintenance nightmare) throughout
>Makefiles.  I am happy to be proven wrong though.

You mean, as opposed to the duplication and maintenance nightmare
that already exists? :-)

I guess my largest issue is that the files necessary to build a
kernel module have to be listed twice (one for the Linux kernel
module, once for the MacOS X kernel modules); that caused a ton of
issues that had to be tracked down and it was rather tedious.
If we could get rid of that, then I'd mostly be happy.

>I would think that MacOS/X has it's own kernel module build sequences
>such that the Makefiles that are engineered for the Linux kernel build
>tree are not suitable.  Or are the Linux module Makefiles also working
>for the MacOS/X kernel?  That would add a third variant, I guess.  I
>know zilch about building MacOS/X modules, so I can't really judge.

Heh, actually, the code mostly existed and was close to working
(well, other than plenty of files had been added in 5 years).  You
can see it in the autoMakefiles; look for ifdef DARWIN and you'll
see what I mean.

Kernel modules on MacOS X (assuming you're not using Xcode environment,
which I'm not) are built using the normal compilers and your own Makefiles;
they just have different flags for compilation and linking.  The MacOS X
kernel modules are built using relatively standard automake descriptions
(see macos_PROGRAM).

--Ken



More information about the lustre-devel mailing list