Re: [PATCH] Revert "kbuild: merge scripts/mkmakefile to top Makefile"
From: Masahiro Yamada
Date: Wed Jun 02 2021 - 05:47:08 EST
On Sat, May 29, 2021 at 2:35 PM Michal Suchánek <msuchanek@xxxxxxx> wrote:
>
> On Sat, May 29, 2021 at 02:15:55AM +0900, Masahiro Yamada wrote:
> > On Thu, May 27, 2021 at 5:28 AM Michal Suchánek <msuchanek@xxxxxxx> wrote:
> > >
> > > On Thu, May 27, 2021 at 03:56:41AM +0900, Masahiro Yamada wrote:
> > > > On Thu, May 27, 2021 at 2:39 AM Michal Suchanek <msuchanek@xxxxxxx> wrote:
> > > > >
> > > > > This reverts commit 243b50c141d71fcf7b88e94474b3b9269f0b1f9d.
> > > > >
> > > > > When packaging the kernel it is built in different place from the one in
> > > > > which it will be installed. After build the makefile needs to be
> > > > > regenerated with the target location but with mkmakefile merged into
> > > > > Makefile tehre is no way to do that.
> > > > >
> > > > > Signed-off-by: Michal Suchanek <msuchanek@xxxxxxx>
> > > >
> > > > My patch was not working as expected
> > > > regardless of packaging.
> > > >
> > > > Does the following fix-up work for you?
> > >
> > > For the packaging I need some way to regenerate the Makefile and fake
> > > the directory where the Makefile will be on the user system (ie DESTDIR)
> > >
> > > Without the mkmakefile I do not see any way to do it.
> > >
> > > If the kernel makefile is no longer location dependent there is no need
> > > any more, of course.
> > >
> > > Thanks
> > >
> > > Michal
> >
> > Sorry, I do not understand this.
> >
> > IIUC, this patch does not change any functionality.
> > The generated Makefile is still the same.
> > Why is it a problem?
>
> It cannot be regenerated.
This is an issue regardless of your packaging.
That is why I suggested a patch in my previous reply.
https://lore.kernel.org/linux-kbuild/CAK7LNASEqKwQeLPXedyut+ykSJGPuq3CO1g_fS=sVDaZrwBPBQ@xxxxxxxxxxxxxx/
Anyway, please try next-20210602
and see if you still have a problem.
>
> During package build you have four directories
>
> - the source directory
> - the build directory
> - the staging directory where files are installed to be included in the
> package
> - the target directory where files will be installed on the target
> system once the package is installed by the user
>
> The makefile is generated for the build directory, not the target
> directory. What is needed is a way to generate a makefile in the staging
> directory that will work when installed in the target directory.
> When mkmakefile is folded into makefile the makefile can no longer be
> regenerated because it is up-to-date, and it can no longer be specified
> that it should be generated for the target directory, not the staging
> directory.
>
> Thanks
>
> Michal
--
Best Regards
Masahiro Yamada