On 20.01.2023 14:36, Anthony PERARD wrote:
> Unfortunatly, adding prerequisite to "$(obj)/ss/built_in.o" doesn't
> work because we have "$(obj)/%/built_in.o: $(obj)/% ;" in Rules.mk.
> So, make is allow to try to build objects in "xsm/flask/ss/" before
> generating the headers.
> 
> Adding a prerequisite on "$(obj)/ss" instead will fix the issue has
> that the target used to run make in this subdirectory.

DYM "... the issue, as that's ..."?

> Unfortunatly, that target is also used when running `make clean`, so
> we need to ignore it in this case. $(MAKECMDGOALS) can't be used in

s/need/want/, I guess, as nothing would break, we'd just create files
only to delete them again right away?

> this case as it is empty, but we can guess which operation is done by
> looking at the list of loaded makefiles.
> 
> Fixes: 7a3bcd2babcc ("build: build everything from the root dir, use 
> obj=$subdir")
> Reported-by: "Daniel P. Smith" <dpsm...@apertussolutions.com>
> Signed-off-by: Anthony PERARD <anthony.per...@citrix.com>

Reviewed-by: Jan Beulich <jbeul...@suse.com>

> --- a/xen/xsm/flask/Makefile
> +++ b/xen/xsm/flask/Makefile
> @@ -16,7 +16,11 @@ FLASK_H_FILES := flask.h class_to_string.h 
> initial_sid_to_string.h
>  AV_H_FILES := av_perm_to_string.h av_permissions.h
>  ALL_H_FILES := $(addprefix include/,$(FLASK_H_FILES) $(AV_H_FILES))
>  
> -$(addprefix $(obj)/,$(obj-y)) $(obj)/ss/built_in.o: $(addprefix 
> $(obj)/,$(ALL_H_FILES))
> +# Adding prerequisite to descending into ss/ folder only when not running 
> `make
> +# clean`.

That's then for all "clean" targets, isn't it? I.e. maybe better to refer to
`make *clean` (or `make %clean`, but I think the % could be misleading there)?

I'm happy to make adjustments while committing, as long (or as far) as you
agree with me doing so.

Jan

Reply via email to