1 SELinux Common Intermediate Language (CIL) Compiler 2 3 INTRODUCTION 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 11 DEPENDENCIES 12 13 gcc >= 4.5.1 14 libsepol >= 2.4 15 16 17 BUILD STEPS 18 19 Run "make" with one of the following targets: 20 21 make 22 Build the CIL compiler (secilc). 23 24 make test 25 Pass a sample policy to test with the compiler. 26 27 make install 28 Install the secilc compiler and man page to disk. 29 30 make clean 31 Remove temporary build files. 32 33 make man 34 Build the secilc man page. 35 36 make bare 37 Remove temporary build files and compile binaries. 38 39 40 USAGE 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 48 DOCUMENTATION 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 64 KNOWN 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 72