1SELinux 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 14 libsepol >= 2.5 15 16 17BUILD 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 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 github markdown CIL Reference Guide in the docs directory. To 51 view the table of contents, see README.md in the docs directory. 52 53 To convert the github markdown content to HTML and PDF, change to the docs 54 directory and run: 55 make 56 57 The documents will be located in the docs/html and docs/pdf directories. 58 59 To build the html and pdf, the pandoc package is required. 60 61KNOWN ISSUES 62 63 - Blocks inside of macros causes undefined behavior 64 65 - Policy must be well formed. For example, invalid usage of 66 sensitivities/categories/levels may create an unloaded binary 67 68 - Recursive limits are not handled 69