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" <[email protected]>
> Signed-off-by: Anthony PERARD <[email protected]>
Reviewed-by: Jan Beulich <[email protected]>
> --- 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