16cd6a6acSopenharmony_ciCWD = $(shell pwd) 26cd6a6acSopenharmony_ciHTMLDIR = $(CWD)/html 36cd6a6acSopenharmony_ciPDFDIR = $(CWD)/pdf 46cd6a6acSopenharmony_ciTMPDIR = $(CWD)/tmp 56cd6a6acSopenharmony_ciTESTDIR = $(CWD)/../test 66cd6a6acSopenharmony_ci 76cd6a6acSopenharmony_ci# All the markdown files that make up the guide: 86cd6a6acSopenharmony_ciFILE_LIST ?= cil_introduction.md \ 96cd6a6acSopenharmony_ci cil_reference_guide.md \ 106cd6a6acSopenharmony_ci cil_access_vector_rules.md \ 116cd6a6acSopenharmony_ci cil_call_macro_statements.md \ 126cd6a6acSopenharmony_ci cil_class_and_permission_statements.md \ 136cd6a6acSopenharmony_ci cil_conditional_statements.md \ 146cd6a6acSopenharmony_ci cil_constraint_statements.md \ 156cd6a6acSopenharmony_ci cil_container_statements.md \ 166cd6a6acSopenharmony_ci cil_context_statement.md \ 176cd6a6acSopenharmony_ci cil_default_object_statements.md \ 186cd6a6acSopenharmony_ci cil_file_labeling_statements.md \ 196cd6a6acSopenharmony_ci cil_mls_labeling_statements.md \ 206cd6a6acSopenharmony_ci cil_network_labeling_statements.md \ 216cd6a6acSopenharmony_ci cil_policy_config_statements.md \ 226cd6a6acSopenharmony_ci cil_role_statements.md \ 236cd6a6acSopenharmony_ci cil_sid_statements.md \ 246cd6a6acSopenharmony_ci cil_type_statements.md \ 256cd6a6acSopenharmony_ci cil_user_statements.md \ 266cd6a6acSopenharmony_ci cil_infiniband_statements.md \ 276cd6a6acSopenharmony_ci cil_xen_statements.md 286cd6a6acSopenharmony_ci 296cd6a6acSopenharmony_ciPANDOC_FILE_LIST = $(addprefix $(TMPDIR)/,$(FILE_LIST)) 306cd6a6acSopenharmony_ci 316cd6a6acSopenharmony_ciPANDOC_HIGHLIGHT_STYLE="theme.theme" 326cd6a6acSopenharmony_ci 336cd6a6acSopenharmony_ciPDF_OUT=CIL_Reference_Guide.pdf 346cd6a6acSopenharmony_ciHTML_OUT=CIL_Reference_Guide.html 356cd6a6acSopenharmony_ciPANDOC = pandoc 366cd6a6acSopenharmony_ciSED ?= sed 376cd6a6acSopenharmony_ci 386cd6a6acSopenharmony_ciOS := $(shell uname) 396cd6a6acSopenharmony_ciifeq ($(OS), Darwin) 406cd6a6acSopenharmony_ci SED := gsed 416cd6a6acSopenharmony_ciendif 426cd6a6acSopenharmony_ci 436cd6a6acSopenharmony_ciall: html pdf 446cd6a6acSopenharmony_ci 456cd6a6acSopenharmony_ci$(TMPDIR): 466cd6a6acSopenharmony_ci mkdir -p $(TMPDIR) 476cd6a6acSopenharmony_ci 486cd6a6acSopenharmony_ci$(TMPDIR)/%.md: %.md | $(TMPDIR) 496cd6a6acSopenharmony_ci cp -f $< $(TMPDIR)/ 506cd6a6acSopenharmony_ci @# Substitute markdown links for conversion into PDF links 516cd6a6acSopenharmony_ci $(SED) -i -re 's:(\[`[^`]*`\])\([^#]*([^\)]):\1\(\2:g' $@ 526cd6a6acSopenharmony_ci 536cd6a6acSopenharmony_ci$(TMPDIR)/policy.cil: $(TESTDIR)/policy.cil 546cd6a6acSopenharmony_ci cp -f $< $@ 556cd6a6acSopenharmony_ci @# add a title for the TOC to policy.cil. This is needed to play nicely with the PDF conversion. 566cd6a6acSopenharmony_ci $(SED) -i '1i Example Policy\n=========\n```secil' $@ 576cd6a6acSopenharmony_ci echo '```' >> $@ 586cd6a6acSopenharmony_ci 596cd6a6acSopenharmony_cihtml: $(PANDOC_FILE_LIST) $(TMPDIR)/policy.cil secil.xml 606cd6a6acSopenharmony_ci mkdir -p $(HTMLDIR) 616cd6a6acSopenharmony_ci $(PANDOC) \ 626cd6a6acSopenharmony_ci --highlight-style=$(PANDOC_HIGHLIGHT_STYLE) \ 636cd6a6acSopenharmony_ci --syntax-definition=secil.xml \ 646cd6a6acSopenharmony_ci --standalone \ 656cd6a6acSopenharmony_ci --metadata title="CIL Reference Guide" \ 666cd6a6acSopenharmony_ci --metadata document-css=false \ 676cd6a6acSopenharmony_ci -t html \ 686cd6a6acSopenharmony_ci $(PANDOC_FILE_LIST) $(TMPDIR)/policy.cil \ 696cd6a6acSopenharmony_ci -o $(HTMLDIR)/$(HTML_OUT) 706cd6a6acSopenharmony_ci 716cd6a6acSopenharmony_cipdf: $(PANDOC_FILE_LIST) $(TMPDIR)/policy.cil secil.xml 726cd6a6acSopenharmony_ci mkdir -p $(PDFDIR) 736cd6a6acSopenharmony_ci $(PANDOC) \ 746cd6a6acSopenharmony_ci --highlight-style=$(PANDOC_HIGHLIGHT_STYLE) \ 756cd6a6acSopenharmony_ci --syntax-definition=secil.xml \ 766cd6a6acSopenharmony_ci --standalone \ 776cd6a6acSopenharmony_ci --toc \ 786cd6a6acSopenharmony_ci $(PANDOC_FILE_LIST) $(TMPDIR)/policy.cil \ 796cd6a6acSopenharmony_ci -o $(PDFDIR)/$(PDF_OUT) 806cd6a6acSopenharmony_ci 816cd6a6acSopenharmony_ciclean: 826cd6a6acSopenharmony_ci rm -rf $(HTMLDIR) 836cd6a6acSopenharmony_ci rm -rf $(PDFDIR) 846cd6a6acSopenharmony_ci rm -rf $(TMPDIR) 85