1PREREQUISITES 2------------- 3 4In order to build CFEngine you need the following tools and libraries installed: 5 6* C compiler supporting C90 + selected C99 constructs: 7 - _Bool type 8 - anonymous aggregates "(MyType) { .foo = 1, .bar = 2 }" 9 - declarations in "for" loop 10 - named initializers 11 - uintmax_t and corresponding printf/scanf formats 12 The following compilers are known to work: 13 - gcc >= 3.0 14 - clang >= 2.6 15* GNU make 16 17* PAM library 18* OpenSSL library 19* PCRE library 20* POSIX threads (pthreads) library, if not provided by the operating system 21* Latest available LMDB (Lightning Memory-mapped DataBase), Tokyo Cabinet or QDBM 22 23* MySQL client library (optional) 24* PostgreSQL client library (optional) 25* libacl library (optional) 26 27In order to build CFEngine cloned from git, you will need the 28following additional tools: 29 30* GNU Automake >= 1.10.1 31* GNU Autoconf >= 2.60 32* GNU Libtool >= 1.5.24 33* Yacc (note: GNU Bison 2.4.2 has troubles invoking m4) 34* Lex 35 36Latest stable versions of the tools and libraries are generally advised. 37 38See INSTALL DEPENDENCIES below for example of deps for various systems. 39 40OPERATING SYSTEMS 41----------------- 42 43CFEngine is regularly built and tested on the following operating systems: 44 45* GNU/Linux (many distributions) 46* Solaris 47* Windows with MinGW 48 49HARDWARE PLATFORMS 50------------------ 51 52CFEngine is regularly built and tested on the following CPU architectures: 53 54* x86 55* x86-64 56* SPARC 57 58OTHER CONFIGURATIONS 59-------------------- 60 61In case you have successfully compiled CFEngine on a different OS and/or using 62different tools or versions of tools, please report it to help-cfengine@ mailing 63list[1]. Please consider running a testsuite (see below), and posting results to 64mailing list too. 65 66[1] https://groups.google.com/forum/#!forum/help-cfengine 67 68BUILD INSTRUCTIONS 69------------------ 70 71From tarball: 72 73$ ./configure [configure options] 74$ make [-jN] 75 76From git checkout: 77 78$ ./autogen.sh [configure options] 79$ make [-jN] 80 81See the available configure options: 82 83$ ./configure --help 84or 85$ ./autogen.sh --help 86 87INSTALLATION INSTRUCTIONS 88------------------------- 89 90CFEngine might be installed in two configurations: 91 92 * (default) Native CFEngine file layout. Everything is installed in 93 /var/cfengine, laid out as a "secondary FHS root". This layout is designed to 94 keep CFEngine running even if most of the system is broken (e.g. /usr is not 95 mounted due to NFS breakage). 96 97* FHS file layout, enabled by --enable-fhs. This layout follows FHS 2.3. 98 99After the build process has completed (see BUILD INSTRUCTIONS above), type: 100 101$ make install 102 103RUNNING TESTSUITE 104----------------- 105 106Please refer to the instructions in tests/README file. 107 108INSTALL DEPENDENCIES 109-------------------- 110 111Here we have examples of command lines for various systems to install dependencies 112needed to build. The version and date checked are noted in parenthesis. Please 113submit PRs with updates to this information. 114 115* Debian (Raspbian 9 2020-04-24) 116 117# apt-get install build-essential autoconf automake libssl-dev libpcre3 libpcre3-dev bison libbison-dev libacl1 libacl1-dev libpq-dev lmdb-utils liblmdb-dev libpam0g-dev flex libtool 118 119* FreeBSD (12.1 2020-04-07) 120 121See docs/BSD.md 122 123* SUSE (Tumbleweed 2020-02-02) 124 125# zypper install gdb gcc make lmdb autoconf automake libtool git python3 pcre-devel libopenssl-devel pam-devel 126 127* AlpineOS (3.11.3 x86_64 2020-04-13) 128 129# apk add allpine-sdk lmdb-dev openssl-dev bison flex-dev acl-dev pcre-dev autoconf automake libtool git python3 gdb 130# ./autogen.sh --without-pam 131 132* Termux (2020-04-24) 133 134# pkg install build-essential autoconf automake bison flex liblmdb openssl pcre libacl 135# ./autogen.sh --without-pam 136