On Fri, Oct 14, 2022 at 07:35:20PM +0000, Andrew Cooper wrote:
> On 13/10/2022 14:05, Anthony Perard wrote:
> > No need for $(AUTOSRCS), GNU make can generate them as needed when
> > trying to build them as needed when trying to build the object. Also,
> > those two AUTOSRCS don't need to be a prerequisite of "all". As for
> > the "clean" target, those two files are already removed via "_*.c".
> >
> > We don't need $(AUTOINCS) either:
> > - As for both _libxl_savm_msgs*.h headers, we are adding more
> >   selective dependencies so the headers will still be generated as
> >   needed.
> > - "clean" rule already delete the _*.h files, so AUTOINCS aren't needed
> >   there.
> >
> > "libxl_internal_json.h" doesn't seems to have ever existed, so the
> > dependency is removed.
> >
> > Add few prerequisite for "libxl_internal.h" so all headers that it
> > depends on should be generated. And have $(SAVE_HELPER_OBJS) depends
> > on "libxl_internal.h".
> >
> > Rework objects prerequisites, to have them dependents on either
> > "libxl.h" or "libxl_internal.h". "libxl.h" is not normally included
> > directly in the source code as "libxl_internal.h" is used instead. But
> > we are adding "libxl.h" as prerequisite of "libxl_internal.h", so
> > generated headers will still be generated as needed.
> >
> > "testidl.c" doesn't depends on "libxl.h" but "testidl.o" does.
> 
> I'm afraid I don't follow here.  How can this be true?

>From make point-of-view, in order to generate "testidl.c", we only need
to execute "gentest.py" which takes "libxl_types.idl" as input. It
doesn't even matter if "libxl.h" exist when generating "testidl.c" via
`make testidl.c`.

"libxl.h" is only used later when compiling "testidl.c" into
"testidl.o".

I can probably expand the commit message to better explain this.

Thanks,

-- 
Anthony PERARD

Reply via email to