summaryrefslogtreecommitdiff
path: root/src/lib/config.h.in
diff options
context:
space:
mode:
authordimitri staessens <[email protected]>2017-08-18 15:56:55 +0200
committerdimitri staessens <[email protected]>2017-08-21 10:25:19 +0200
commit8f58e5a3ec0e4a15fc8ae0911cc864f5dbf86c6e (patch)
tree0535742162921dc0d19c16f5b02d2f1c8f4fc493 /src/lib/config.h.in
parenteefae235dd7af96eef3dc4f82f706170c379d260 (diff)
downloadouroboros-8f58e5a3ec0e4a15fc8ae0911cc864f5dbf86c6e.tar.gz
ouroboros-8f58e5a3ec0e4a15fc8ae0911cc864f5dbf86c6e.zip
build: Revise the build system
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.
Diffstat (limited to 'src/lib/config.h.in')
-rw-r--r--src/lib/config.h.in57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/lib/config.h.in b/src/lib/config.h.in
new file mode 100644
index 00000000..c4b189d7
--- /dev/null
+++ b/src/lib/config.h.in
@@ -0,0 +1,57 @@
+/*
+ * Ouroboros - Copyright (C) 2016 - 2017
+ *
+ * Ouroboros library configuration
+ *
+ * Dimitri Staessens <[email protected]>
+ * Sander Vrijders <[email protected]>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., http://www.fsf.org/about/contact/.
+ */
+
+#cmakedefine HAVE_SYS_RANDOM
+#cmakedefine HAVE_LIBGCRYPT
+#cmakedefine HAVE_OPENSSL
+
+#define SYS_MAX_FLOWS @SYS_MAX_FLOWS@
+
+#cmakedefine SHM_RBUFF_LOCKLESS
+
+#define SHM_RBUFF_PREFIX "@SHM_RBUFF_PREFIX@"
+#define SHM_LOCKFILE_NAME "@SHM_LOCKFILE_NAME@"
+#define SHM_FLOW_SET_PREFIX "@SHM_FLOW_SET_PREFIX@"
+#define SHM_RDRB_NAME "@SHM_RDRB_NAME@"
+#define SHM_RDRB_BLOCK_SIZE @SHM_RDRB_BLOCK_SIZE@
+#define SHM_BUFFER_SIZE @SHM_BUFFER_SIZE@
+
+#if defined(__linux__) || (defined(__MACH__) && !defined(__APPLE__))
+/* Avoid a bug in robust mutex implementation of glibc 2.25 */
+ #include <features.h>
+ #if !defined(__GLIBC__) || !(__GLIBC__ == 2 && __GLIBC_MINOR__ == 25)
+ #cmakedefine HAVE_ROBUST_MUTEX
+ #else
+ #cmakedefine HAVE_ROBUST_MUTEX
+ #endif
+#endif
+
+#define PTHREAD_COND_CLOCK @PTHREAD_COND_CLOCK@
+
+#define AP_MAX_FLOWS @AP_MAX_FLOWS@
+#define AP_RES_FDS @AP_RES_FDS@
+#define AP_MAX_FQUEUES @AP_MAX_FQUEUES@
+
+#define DU_BUFF_HEADSPACE @DU_BUFF_HEADSPACE@
+#define DU_BUFF_TAILSPACE @DU_BUFF_TAILSPACE@
+
+#define CDAP_REPLY_TIMEOUT @CDAP_REPLY_TIMEOUT@