summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
Commit message (Collapse)AuthorAgeFilesLines
* 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.