1 obj-y += avc.o
2 obj-y += hooks.o
3 obj-y += flask_op.o
4 
5 obj-y += ss/
6 
7 CFLAGS-y += -I./include
8 
9 AWK = awk
10 
11 CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
12           else if [ -x /bin/bash ]; then echo /bin/bash; \
13           else echo sh; fi ; fi)
14 
15 FLASK_H_DEPEND = policy/security_classes policy/initial_sids
16 AV_H_DEPEND = policy/access_vectors
17 
18 FLASK_H_FILES = include/flask.h include/class_to_string.h include/initial_sid_to_string.h
19 AV_H_FILES = include/av_perm_to_string.h include/av_permissions.h
20 ALL_H_FILES = $(FLASK_H_FILES) $(AV_H_FILES)
21 
22 $(obj-y) ss/built_in.o: $(ALL_H_FILES)
23 extra-y += $(ALL_H_FILES)
24 
25 mkflask := policy/mkflask.sh
26 quiet_cmd_mkflask = MKFLASK $@
27 cmd_mkflask = $(CONFIG_SHELL) $(mkflask) $(AWK) include $(FLASK_H_DEPEND)
28 
29 $(subst include/,%/,$(FLASK_H_FILES)): $(FLASK_H_DEPEND) $(mkflask) FORCE
30 	$(call if_changed,mkflask)
31 
32 mkaccess := policy/mkaccess_vector.sh
33 quiet_cmd_mkaccess = MKACCESS VECTOR $@
34 cmd_mkaccess = $(CONFIG_SHELL) $(mkaccess) $(AWK) $(AV_H_DEPEND)
35 
36 $(subst include/,%/,$(AV_H_FILES)): $(AV_H_DEPEND) $(mkaccess) FORCE
37 	$(call if_changed,mkaccess)
38 
39 obj-bin-$(CONFIG_XSM_FLASK_POLICY) += flask-policy.o
40 flask-policy.o: policy.bin
41 
42 flask-policy.S: $(XEN_ROOT)/xen/tools/binfile
43 	$(SHELL) $(XEN_ROOT)/xen/tools/binfile -i $@ policy.bin xsm_flask_init_policy
44 
45 FLASK_BUILD_DIR := $(CURDIR)
46 POLICY_SRC := $(FLASK_BUILD_DIR)/xenpolicy-$(XEN_FULLVERSION)
47 
48 policy.bin: FORCE
49 	$(MAKE) -f $(XEN_ROOT)/tools/flask/policy/Makefile.common -C $(XEN_ROOT)/tools/flask/policy FLASK_BUILD_DIR=$(FLASK_BUILD_DIR)
50 	cmp -s $(POLICY_SRC) $@ || cp $(POLICY_SRC) $@
51 
52 .PHONY: clean
53 clean::
54 	rm -f $(ALL_H_FILES) *.o $(DEPS_RM) policy.* $(POLICY_SRC) flask-policy.S
55