summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
Commit message (Collapse)AuthorAgeFilesLines
* build: Set defaults for prefix and build typeDimitri Staessens2017-11-151-0/+8
| | | | | | | | This defaults the CMAKE install prefix to "/". It also sets the default build type to "Release". Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be> Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
* build: Set CMAKE_REQUIRED_FLAGS in CompilerUtilsSander Vrijders2017-11-141-3/+3
| | | | | | | | | This sets the cmake variable CMAKE_REQUIRED_FLAGS to the compiler flags that are being tested so that the linker doesn't fail when trying the compile flag. Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be> Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be>
* build: Add options for debug builds with sanitizerDimitri Staessens2017-11-141-0/+7
| | | | | | | | | This adds three build types, DebugASan, DebugTSan and DebugLSan that enable the Address, Thread and Leak Sanitizer by setting the fsanitize flag to the compiler. This option is supported by both gcc and clang. Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be> Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
* build: Set compiler optimization for release buildDimitri Staessens2017-11-131-0/+3
| | | | | | | This automatically sets the -O3 compiler flag for release builds. Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be> Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
* build: Set bugreport URLdimitri staessens2017-10-141-1/+1
|
* lib: Deprecate ouroboros_init and ourboros_finidimitri staessens2017-10-141-4/+10
| | | | | | | | | | | | | | This commit deprecates ouroboros_init and ouroboros_fini and adds them as a constructor or destructor, causing these function to be run automatically when a program that links to the library calls and exits main(). For this to fully work, the library had to be split so that we can avoid the irmd calling these functions (the IRMd has to create the shm structures on which these calls depend). The library is split in 3 parts: libouroboros-dev, libouroboros-irm and libouroboros-common. The latter is linked to the other two so that including libouroboros-dev or libouroboros-irm will also link libouroboros-common.
* build: Clean up output with missing ProtobufCdimitri staessens2017-09-131-1/+6
|
* build: Fix DDNS tool detection for shim-udpdimitri staessens2017-09-131-1/+1
| | | | | | This fixes output when detecting DDNS tools and homogenizes output and the APIs used to pass variables between the build system and the sources. Fixes some minor issues and typos).
* build: Add systemd unit on installSander Vrijders2017-09-051-0/+8
| | | | This adds a systemd unit for the irmd on installation of Ouroboros.
* build: Revise the build systemdimitri staessens2017-08-211-21/+11
| | | | | | | | | | This revises the build system to have configuration per system component. System settings can now be set using cmake. The standard compliance defines were removed from configuration header and are set in the sources where needed. Also some small code refactors, such as moving the data for shims out of the ipcp structure to the respective shims were performed.
* build: Fix compilation on OS X Sierradimitri staessens2017-08-111-2/+9
|
* build, lib, ipcpd, irmd: Add support for libgcryptdimitri staessens2017-08-091-6/+0
| | | | | | | | | | | | | | | | This adds support for libgcrypt. If at least version 1.7.0 of libgcrypt is present, it may be used for secure random number generation and is used for hashing in the irmd/ipcp. The hash definitions are moved to the internal hash.h header, and defined independently of the hashes that are defined as part of the directory policy for the normal IPCP. The translation is moved from the IRMd to ipcpd/ipcp.h. The bootstrap call from the IRMd expects the IPCP to return the correct hash algorithm with a dif_info struct, which is in line with the behavior of the enroll call. This also improves how some platform checks in the build system are handled.
* build: Add check for robust mutexesSander Vrijders2017-08-031-0/+6
| | | | | | This adds a check for robust mutexes. The constant HAVE_ROBUST_MUTEX is set accordingly in config.h. It also adds some other fixes to make the prototype compile on the Hurd.
* build: Install manpagesSander Vrijders2017-04-121-0/+1
| | | | | | This will install the manpages found in doc/man/ during installation. Fixes #38
* build: Format CMakeLists.txt filesSander Vrijders2017-03-031-8/+8
| | | | The CMakeLists files are now properly indented.
* lib: Log to the logging systemdimitri staessens2017-02-081-4/+0
| | | | | | | | | | This removes the logfile and outputs log messages to the logging system. The creation of the logfiles (as well as the ap_init() call) were moved into ipcp_init() to simplify the IPCP creation and shutdown. Fixes #25 Fixes #27
* ouroboros: Correct license statementsdimitri staessens2016-12-241-1/+0
| | | | | This corrects the license statements on all files. Installed headers are LGPLv2.1, the rest of the code is GPLv2.
* build: Explicitly add compiler flagsdimitri staessens2016-10-231-2/+17
| | | | All flags from the -Wextra group but -Wclobbered are added.
* build: Disable compilation flagsdimitri staessens2016-10-231-3/+4
| | | | | | | pthread_cleanup handlers make gcc and clang fail the -Wclobbered check in release builds. Swig generates switch statements without a default, making the -Wswitch-default check fail. The -Wstrict-overflow=5 flag was removed.
* build: Compile with strict conversiondimitri staessens2016-10-221-0/+5
| | | | | This has the code checked with -Wcast-qual and -Wconversion flags. These flags were removed because SWIG generated code fails.
* build: Comply with -Wextra compiler flagdimitri staessens2016-10-211-0/+1
| | | | | This reduces the risk for some bugs, for instance due to signed/unsigned mismatches and unused variables.
* lib: Demultiplex the fast pathdimitri staessens2016-10-211-0/+1
| | | | | | | | The fast path will now use an incoming ring buffer per flow per process. This necessitated the development of a new method for the asynchronous io call, which is now based on an event queue system for scalability (fqueue). The ipcpd's and tools have been updated to this API.
* lib, ipcp: Revise fast path and flow interfacesdimitri staessens2016-10-041-4/+4
| | | | | | | | | | | | IPCPs can now use ap_init() to initialize the memory. All flows are accessed using flow descriptors, this greatly simplifies IPCP development. Reverts the fast path to a single ap_rbuff per process. Splits lib/ipcp into irmd/ipcp and lib/ipcp-dev. Adds a lib/shim-dev holding tailored functions for shims. Moves the buffer_t to utils.h. Fixes the shim-eth-llc length field. Removes the flow from shared.h. Fixes #4 Fixes #5
* build: Fix wrong inclusionSander Vrijders2016-07-261-0/+3
| | | | | | The protobuf include directory was not being correctly handed to the compiler when building. Now the include directory is added project-wide. And the protobuf package is searched for only once.
* lib, irmd, ipcpd: Provide the feature to write to logsSander Vrijders2016-07-061-0/+4
| | | | | | | | | | Writing output to log files is now enabled by default. Logs are written to <INSTALL_PREFIX>/var/log/ouroboros, which is created on install. There is a log file for the irmd and one per IPCP. To still get (colored) output on stdout, provide the --stdout switch when starting the irmd. Fixes #17
* build: Fix installation prefixSander Vrijders2016-06-271-2/+2
| | | | | | The installation prefix was taking a trailing backslash, while it is common not to do so. Fixed it so that any trailing backslash is removed by the compilation and installation scripts.
* build: Change install directories and set correct permissionsSander Vrijders2016-06-201-4/+6
| | | | | | | | | This sets the correct install directories for all the binaries, library and header files. It also sets the right permissions on the sockets and shared memory so that regular users can also use the ouroboros library. Root privileges are required to run the irmd. Fixes #7
* ipcpd: initial IPC processesdimitri staessens2016-04-181-1/+1
| | | | | | | | | | | Basic functions for implementation of IPC processes, and implementation of core functions of the shim IPCP over UDP. Updates to the build system to compile these IPC processes, as well as some fixes in the irmd (rudimentary capturing exit signals) and some fixes in the library, mainly relating to the messaging. Basic implementation of creation / bootstrapping / deletion of the shim UDP. Placeholders for other functions.
* irmd, lib: Create and destroy IPC ProcessesSander Vrijders2016-03-151-0/+9
| | | | | | This adds the functionality to create and destroy IPCPs. Upon creation a new process is forked and execve'd. Upon destruction the IPCP is destroyed by killing it with SIGTERM.
* build: Add check target, fix packagingSander Vrijders2016-03-071-7/+9
| | | | | | | | | This adds a build target 'check', which executes a test suite for every daemon/library. Every test suite consists of a test driver that executes a function in a file with the same name as the function. The compile_debug script executes the 'check' target to validate there are no regressions. Packaging is also fixed and the prototype can be shipped as a tarball.
* build: Move debugging switch to correct CMakeListsSander Vrijders2016-03-031-10/+0
| | | | | | This moves the debugging switch down to the CMakeList associated with every program or library. It allows to build apps individually with debugging info on or off.
* Merged in sandervrijders/ouroboros/be-bugfixes (pull request #14)Sander Vrijders2016-02-261-1/+1
|\ | | | | | | Be bugfixes
| * build: Allow at most 5 errors per buildSander Vrijders2016-02-261-1/+1
| | | | | | | | This will show more interesting output when building in Semaphore.
* | build: Lowers minimum cmake versionSander Vrijders2016-02-261-1/+1
|/ | | | | This lower the minimum cmake version to 2.8.12 in order to allow semaphore to build the prototype.
* lib, irmd, tools: Support to create IPCPsSander Vrijders2016-02-251-0/+1
| | | | | | | Provides the initial support to create IPCPs via a command-line tool. It extends the socket layer with a message that is sent over a socket to the irmd when the irm_create_ipcp library function is called from a program.
* Merged in sandervrijders/ouroboros/be (pull request #4)Sander Vrijders2016-02-231-8/+9
|\ | | | | | | build: Require usage of C89
| * build: Fix check for C89Sander Vrijders2016-02-231-5/+3
| | | | | | | | | | | | The flag for the C89 standard was added without checking if the compiler supports it. This has been fixed. Also, the feature summary has been (temporarily) disabled.
| * build: Require usage of C89Sander Vrijders2016-02-231-6/+9
| | | | | | | | | | | | This requires the usage of the C89 standard for all source files. It also fixes a wrong check for the compiler flags (was checking this for CXX compiler instead of the C compiler).
| * src: Rename daemons and add tools folderSander Vrijders2016-02-221-2/+4
| | | | | | | | | | | | | | This renames the daemons to end with a 'd', as is common for UNIX daemons. It also adds a tools folder, that will hold the tools of the Ouroboros prototype. Examples are a simple echo application, an application to instruct the IRM ...
* | Initial du_buff codeDimitri Staessens2016-02-231-1/+1
| | | | | | | | Compiles but untested. Expect bugs.
* | src: Rename daemons and add tools folderSander Vrijders2016-02-231-2/+4
|/ | | | | | | This renames the daemons to end with a 'd', as is common for UNIX daemons. It also adds a tools folder, that will hold the tools of the Ouroboros prototype. Examples are a simple echo application, an application to instruct the IRM ...
* include: Add logging infrastructureSander Vrijders2016-02-121-0/+7
| | | | | | Adds the logging infrastructure to the prototype. 2 helper scripts are also provided to compile the prototype in either release or debug mode. In debug mode debugging logs are printed.
* Initial build infrastructureSander Vrijders2016-02-111-0/+69
Contains the initial build infrastructure. Cmake was chosen for portability reasons.