blob: 14b8cc8738a6f28ed08a2fa30d1636d256d9271e [file] [log] [blame]
Steve Lawrencebb0f8be2014-08-26 08:02:58 -04001SELinux Common Intermediate Language (CIL) Compiler
2
3INTRODUCTION
4
5 The SELinux CIL Compiler is a compiler that converts the CIL language as
6 described on the CIL design wiki into a kernel binary policy file.
7 Please see the CIL Design Wiki at:
8 http://github.com/SELinuxProject/cil/wiki/
9 for more information about the goals and features on the CIL language.
10
11DEPENDENCIES
12
13 gcc >= 4.5.1
Yuli Khodorkovskiy36f62b72015-03-31 10:17:01 -040014 libsepol >= 2.4
Steve Lawrencebb0f8be2014-08-26 08:02:58 -040015
16
17BUILD STEPS
18
Steve Lawrencebb0f8be2014-08-26 08:02:58 -040019 Run "make" with one of the following targets:
20
21 make
Yuli Khodorkovskiy36f62b72015-03-31 10:17:01 -040022 Build the CIL compiler (secilc).
Steve Lawrencebb0f8be2014-08-26 08:02:58 -040023
Yuli Khodorkovskiy36f62b72015-03-31 10:17:01 -040024 make test
25 Pass a sample policy to test with the compiler.
Steve Lawrencebb0f8be2014-08-26 08:02:58 -040026
Yuli Khodorkovskiy36f62b72015-03-31 10:17:01 -040027 make install
28 Install the secilc compiler and man page to disk.
Steve Lawrencebb0f8be2014-08-26 08:02:58 -040029
30 make clean
Yuli Khodorkovskiy36f62b72015-03-31 10:17:01 -040031 Remove temporary build files.
32
33 make man
34 Build the secilc man page.
Steve Lawrencebb0f8be2014-08-26 08:02:58 -040035
36 make bare
Yuli Khodorkovskiy36f62b72015-03-31 10:17:01 -040037 Remove temporary build files and compile binaries.
Steve Lawrencebb0f8be2014-08-26 08:02:58 -040038
39
40USAGE
41
42 Execute 'secilc' with any number of CIL files as arguments. A binary policy and
43 file_contexts file will be created.
44
45 Use the '--help' option for more details.
46
47
48DOCUMENTATION
49
50 There is a Docbook CIL Reference Guide in the docs directory, to build
51 this in HTML and PDF format change to the docs directory and run:
52 make html pdf
53
54 There is also an secilc man page that can be built with:
55 make man
56
57 The documents will be located in the docs/html, docs/pdf and docs/man8
58 directories.
59
60 To build the html and manpage the xmlto package is required.
61 To build the pdf document the xmlto and dblatex packages are required.
62
63
64KNOWN ISSUES
65
66 - Blocks inside of macros causes undefined behavior
67
68 - Policy must be well formed. For example, invalid usage of
69 sensitivities/categories/levels may create an unloaded binary
70
71 - Recursive limits are not handled