build: fix building flask headers before descending in flask/ss/

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 as
that's the target used to run make in this subdirectory.

Unfortunatly, that target is also used when running `make clean`, so
we want to ignore it in this case. $(MAKECMDGOALS) can't be used in
this case as it is empty, but we can guess which operation is done by
looking at the list of loaded makefiles.

Fixes: 7a3bcd2bab ("build: build everything from the root dir, use obj=$subdir")
Reported-by: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Acked-by: Daniel P. Smith <dpsmith@apertussolutions.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
This commit is contained in:
Anthony PERARD authored and Jan Beulich committed 2023-01-23 15:03:58 +01:00
1 parent 1d60c20260
commit d60324d8af
1 file changed
+5 -1
+5 -1
View File
@@ -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 AV_H_FILES := av_perm_to_string.h av_permissions.h
ALL_H_FILES := $(addprefix include/,$(FLASK_H_FILES) $(AV_H_FILES)) 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`.
ifeq ($(filter %/Makefile.clean,$(MAKEFILE_LIST)),)
$(addprefix $(obj)/,$(obj-y)) $(obj)/ss: $(addprefix $(obj)/,$(ALL_H_FILES))
endif
extra-y += $(ALL_H_FILES) extra-y += $(ALL_H_FILES)
mkflask := $(srcdir)/policy/mkflask.sh mkflask := $(srcdir)/policy/mkflask.sh
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.