blob: 6b07ce7f4bbc237a28ee8b2e334c5206e2eec847 [file] [log] [blame]
Yuli Khodorkovskiy12c7dfc2015-12-15 15:13:27 -05001CWD ?= $(shell pwd)
2HTMLDIR ?= $(CWD)/html
3PDFDIR ?= $(CWD)/pdf
4TMPDIR ?= $(CWD)/tmp
5TESTDIR ?= $(CWD)/../test
Steve Lawrenceb19eafb2014-08-26 08:02:58 -04006
Yuli Khodorkovskiy12c7dfc2015-12-15 15:13:27 -05007# All the markdown files that make up the guide:
8FILE_LIST ?= cil_introduction.md \
9 cil_reference_guide.md \
10 cil_access_vector_rules.md \
11 cil_call_macro_statements.md \
12 cil_class_and_permission_statements.md \
13 cil_conditional_statements.md \
14 cil_constraint_statements.md \
15 cil_container_statements.md \
16 cil_context_statement.md \
17 cil_default_object_statements.md \
18 cil_file_labeling_statements.md \
19 cil_mls_labeling_statements.md \
20 cil_network_labeling_statements.md \
21 cil_policy_config_statements.md \
22 cil_role_statements.md \
23 cil_sid_statements.md \
24 cil_type_statements.md \
25 cil_user_statements.md \
Richard Haines9ddfb4d2017-06-12 09:31:40 +010026 cil_infiniband_statements.md \
Yuli Khodorkovskiy12c7dfc2015-12-15 15:13:27 -050027 cil_xen_statements.md
Steve Lawrenceb19eafb2014-08-26 08:02:58 -040028
Yuli Khodorkovskiy12c7dfc2015-12-15 15:13:27 -050029PANDOC_FILE_LIST = $(addprefix $(TMPDIR)/,$(FILE_LIST))
Steve Lawrenceb19eafb2014-08-26 08:02:58 -040030
Yuli Khodorkovskiy12c7dfc2015-12-15 15:13:27 -050031PDF_OUT=CIL_Reference_Guide.pdf
32HTML_OUT=CIL_Reference_Guide.html
33PANDOC = pandoc
Yuli Khodorkovskiy733b8002018-02-24 04:57:33 +000034SED ?= sed
35
36OS := $(shell uname)
37ifeq ($(OS), Darwin)
38 SED := gsed
39endif
Steve Lawrenceb19eafb2014-08-26 08:02:58 -040040
Yuli Khodorkovskiy36f62b72015-03-31 10:17:01 -040041all: html pdf
Steve Lawrenceb19eafb2014-08-26 08:02:58 -040042
Yuli Khodorkovskiy12c7dfc2015-12-15 15:13:27 -050043$(TMPDIR):
44 mkdir -p $(TMPDIR)
Steve Lawrenceb19eafb2014-08-26 08:02:58 -040045
Yuli Khodorkovskiy12c7dfc2015-12-15 15:13:27 -050046$(TMPDIR)/%.md: %.md | $(TMPDIR)
47 cp -f $< $(TMPDIR)/
48 @# Substitute markdown links for conversion into PDF links
Yuli Khodorkovskiy733b8002018-02-24 04:57:33 +000049 $(SED) -i -re 's:(\[`[^`]*`\])\([^#]*([^\)]):\1\(\2:g' $@
Steve Lawrenceb19eafb2014-08-26 08:02:58 -040050
Yuli Khodorkovskiy12c7dfc2015-12-15 15:13:27 -050051$(TMPDIR)/policy.cil: $(TESTDIR)/policy.cil
52 cp -f $< $@
53 @# add a title for the TOC to policy.cil. This is needed to play nicely with the PDF conversion.
Yuli Khodorkovskiy733b8002018-02-24 04:57:33 +000054 $(SED) -i '1i Example Policy\n=========\n```' $@
Yuli Khodorkovskiy12c7dfc2015-12-15 15:13:27 -050055 echo '```' >> $@
56
57html: $(PANDOC_FILE_LIST) $(TMPDIR)/policy.cil
58 mkdir -p $(HTMLDIR)
59 $(PANDOC) -t html $^ -o $(HTMLDIR)/$(HTML_OUT)
60
61pdf: $(PANDOC_FILE_LIST) $(TMPDIR)/policy.cil
62 mkdir -p $(PDFDIR)
63 $(PANDOC) --standalone --toc $^ -o $(PDFDIR)/$(PDF_OUT)
Steve Lawrenceb19eafb2014-08-26 08:02:58 -040064
Yuli Khodorkovskiy36f62b72015-03-31 10:17:01 -040065clean:
Yuli Khodorkovskiy12c7dfc2015-12-15 15:13:27 -050066 rm -rf $(HTMLDIR)
67 rm -rf $(PDFDIR)
68 rm -rf $(TMPDIR)