The Revised OpenFlow Library (ROFL) helps you adding OpenFlow support to your software to build control applications, controller frameworks and/or datapath elements.
- A modern GNU build-system (autoconf, automake, libtool, ...)
- pkg-config
- GNU/Linux and libc development headers (linux-libc-dev and libc6-dev package in Debian/Ubuntu systems)
- [optional] if you want to run automatic tests (make check), libcunit and libcppunit are required (in libcunit1-dev and libcppunit-dev packages in Debian-like systems).
- [optional] Doxygen to generate the documentation.
Install the dependencies and run:
sh# ./autogen.sh
sh# cd build
sh# ../configure
sh# make
sh# make install
Optionally you can 'make check' for consistency checks.
--enable-debug: Compile with debug symbols (-g) and debug output (warning, it may affect performance)
--enable-verbose: Increase the level of debug (useless without --enable-debug)
--disable-silent-rules: Enable verbose compilation mode (AM_SILENT_RULES disabled)
ROFL package uses subdir-objects
. From Automake v1.14 on, the support of subdir-objects
must be explicitly added in AM_INIT_AUTOMAKE()
in order to prevent warnings that will abort compilation. However, due to the following bug:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928
The build system won't work if subdir-objects
is added in AM_INIT_AUTOMAKE()
.
Currently, in order to compile the package, the suggested strategy is to remove -Werror
from AM_INIT_AUTOMAKE()
in the configure.ac:
diff --git a/configure.ac b/configure.ac
index 9d918d4..62fce3d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,7 +3,7 @@ AC_INIT(ROFL, m4_esyscmd_s(cat VERSION), rofl-devel@roflibs.org, rofl, http://ww
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_MACRO_DIR([m4])
-AM_INIT_AUTOMAKE([-Wall -Werror foreign])
+AM_INIT_AUTOMAKE([-Wall foreign])
AC_GNU_SOURCE
Note there will be a considerably number of warnings shown. Once bug 13928, subdir-objects
will be added as it should be.
Documentation can be compiled via make doc
. Documentation is generated in build/doc/ folder
Some distributions, in particular Red Hat based, do not include by default /usr/local/lib on the search path of ldconfig, not allowing to link against -lrofl and -lrofl_pipeline. In this case, you might have to add /usr/local/lib/ into /etc/ld.so.conf and re-run ldconfig.
You can have a look on:
http://www.roflibs.org/ http://www.roflibs.org/doc/
Documentation can be compiled via make doc
. Documentation is generated in build/doc/ folder
For getting support or participate in the discussions, join the mailing list rofl-devel@roflibs.org at https://lists.roflibs.org/mailman
(c) Copyright BISDN GmbH 2013
Andreas Koepsel<andreas.koepsel (at) bisdn.de>
Marc Sune<marc.sune (at) bisdn.de>
Victor Alvarez<victor.alvarez (at) bisdn.de>
Tobias Jungel<tobias.jungel (at) bisdn.de>
And others.