Build using O=path
Tobin C. Harding
me at tobin.cc
Mon Sep 10 18:46:11 EDT 2018
Thanks Luca, you had the winning entry!
On Mon, Sep 10, 2018 at 11:37:15AM +0200, Luca Ceresoli wrote:
> Hi,
>
> On 10/09/2018 08:33, Tobin C. Harding wrote:
> > Hi,
> >
> > I'm unable to build the kernel using the O=path/to/out option. Am I
> > doing something brain dead?
> >
> > $ cd $KERNEL
> > $ make mrproper
> > $ cp path/to/valid/config/file .config
>
> Here you are copying a file in the source directory...
>
> > $ make O=/abs/path/to/output
> > ...
> > scripts/kconfig/conf --syncconfig Kconfig
> > ***
> > *** Configuration file ".config" not found!
> > ***
> > *** Please run some configurator (e.g. "make oldconfig" or
> > *** "make menuconfig" or "make xconfig").
> > ...
> >
> > So I tried copying the .config file to the output directory
> >
> > $ cp .config /abs/path/to/output
> > $ make O=/abs/path/to/output
> > ...
> > Using /home/tobin/build/kernel/linux as source for kernel
> > /home/tobin/build/kernel/linux is not clean, please run 'make mrproper'
> > in the '/home/tobin/build/kernel/linux' directory.
>
> ...and here's where the kernel complains about it.
Well explained, I did not garner this from the error messages. Thanks.
> You have to put your .config file in the out-of-tree build dir, not the
> source dir. BTW this also allows you to have multiple builds woth
> different configs in different directories, all from the same set of
> sources -- how would it be possible if the config were in the source dir?
>
> So, fix it as:
>
> cd $KERNEL
> make mrproper
> make O=/abs/path/to/output # BTW: can be also relative
The key takeaway (for me) is that this invocation of make is expected to
fail (since we have not created the output directory or config file yet).
> cd /abs/path/to/output
> cp path/to/valid/config/file .config
> make olddefconfig # might be not needed, but harmless anyway
> make
I would not have realised that one can run make from the output
directory.
thanks,
Tobin.
More information about the Kernelnewbies
mailing list