Yuli Khodorkovskiy | 12c7dfc | 2015-12-15 15:13:27 -0500 | [diff] [blame] | 1 | CWD ?= $(shell pwd) |
| 2 | HTMLDIR ?= $(CWD)/html |
| 3 | PDFDIR ?= $(CWD)/pdf |
| 4 | TMPDIR ?= $(CWD)/tmp |
| 5 | TESTDIR ?= $(CWD)/../test |
Steve Lawrence | b19eafb | 2014-08-26 08:02:58 -0400 | [diff] [blame] | 6 | |
Yuli Khodorkovskiy | 12c7dfc | 2015-12-15 15:13:27 -0500 | [diff] [blame] | 7 | # All the markdown files that make up the guide: |
| 8 | FILE_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 Haines | 9ddfb4d | 2017-06-12 09:31:40 +0100 | [diff] [blame] | 26 | cil_infiniband_statements.md \ |
Yuli Khodorkovskiy | 12c7dfc | 2015-12-15 15:13:27 -0500 | [diff] [blame] | 27 | cil_xen_statements.md |
Steve Lawrence | b19eafb | 2014-08-26 08:02:58 -0400 | [diff] [blame] | 28 | |
Yuli Khodorkovskiy | 12c7dfc | 2015-12-15 15:13:27 -0500 | [diff] [blame] | 29 | PANDOC_FILE_LIST = $(addprefix $(TMPDIR)/,$(FILE_LIST)) |
Steve Lawrence | b19eafb | 2014-08-26 08:02:58 -0400 | [diff] [blame] | 30 | |
Yuli Khodorkovskiy | 12c7dfc | 2015-12-15 15:13:27 -0500 | [diff] [blame] | 31 | PDF_OUT=CIL_Reference_Guide.pdf |
| 32 | HTML_OUT=CIL_Reference_Guide.html |
| 33 | PANDOC = pandoc |
Yuli Khodorkovskiy | 733b800 | 2018-02-24 04:57:33 +0000 | [diff] [blame] | 34 | SED ?= sed |
| 35 | |
| 36 | OS := $(shell uname) |
| 37 | ifeq ($(OS), Darwin) |
| 38 | SED := gsed |
| 39 | endif |
Steve Lawrence | b19eafb | 2014-08-26 08:02:58 -0400 | [diff] [blame] | 40 | |
Yuli Khodorkovskiy | 36f62b7 | 2015-03-31 10:17:01 -0400 | [diff] [blame] | 41 | all: html pdf |
Steve Lawrence | b19eafb | 2014-08-26 08:02:58 -0400 | [diff] [blame] | 42 | |
Yuli Khodorkovskiy | 12c7dfc | 2015-12-15 15:13:27 -0500 | [diff] [blame] | 43 | $(TMPDIR): |
| 44 | mkdir -p $(TMPDIR) |
Steve Lawrence | b19eafb | 2014-08-26 08:02:58 -0400 | [diff] [blame] | 45 | |
Yuli Khodorkovskiy | 12c7dfc | 2015-12-15 15:13:27 -0500 | [diff] [blame] | 46 | $(TMPDIR)/%.md: %.md | $(TMPDIR) |
| 47 | cp -f $< $(TMPDIR)/ |
| 48 | @# Substitute markdown links for conversion into PDF links |
Yuli Khodorkovskiy | 733b800 | 2018-02-24 04:57:33 +0000 | [diff] [blame] | 49 | $(SED) -i -re 's:(\[`[^`]*`\])\([^#]*([^\)]):\1\(\2:g' $@ |
Steve Lawrence | b19eafb | 2014-08-26 08:02:58 -0400 | [diff] [blame] | 50 | |
Yuli Khodorkovskiy | 12c7dfc | 2015-12-15 15:13:27 -0500 | [diff] [blame] | 51 | $(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 Khodorkovskiy | 733b800 | 2018-02-24 04:57:33 +0000 | [diff] [blame] | 54 | $(SED) -i '1i Example Policy\n=========\n```' $@ |
Yuli Khodorkovskiy | 12c7dfc | 2015-12-15 15:13:27 -0500 | [diff] [blame] | 55 | echo '```' >> $@ |
| 56 | |
| 57 | html: $(PANDOC_FILE_LIST) $(TMPDIR)/policy.cil |
| 58 | mkdir -p $(HTMLDIR) |
| 59 | $(PANDOC) -t html $^ -o $(HTMLDIR)/$(HTML_OUT) |
| 60 | |
| 61 | pdf: $(PANDOC_FILE_LIST) $(TMPDIR)/policy.cil |
| 62 | mkdir -p $(PDFDIR) |
| 63 | $(PANDOC) --standalone --toc $^ -o $(PDFDIR)/$(PDF_OUT) |
Steve Lawrence | b19eafb | 2014-08-26 08:02:58 -0400 | [diff] [blame] | 64 | |
Yuli Khodorkovskiy | 36f62b7 | 2015-03-31 10:17:01 -0400 | [diff] [blame] | 65 | clean: |
Yuli Khodorkovskiy | 12c7dfc | 2015-12-15 15:13:27 -0500 | [diff] [blame] | 66 | rm -rf $(HTMLDIR) |
| 67 | rm -rf $(PDFDIR) |
| 68 | rm -rf $(TMPDIR) |