Prerequisites for building the OpenDataPlane (ODP) API 1. Linux kernel >= 2.6.32 Earlier versions may or may not work. 2. autotools automake autoconf libtool On Debian/Ubuntu systems: $ sudo apt-get install automake autoconf libtool On CentOS/RedHat/Fedora systems: $ sudo yum install automake autoconf libtool libtoolize 3. required libraries Libraries currently required to link: openssl 3.1 native compile For native compilation, simply load the necessary libraries using the appropriate tool set. On Debian/Ubuntu systems: $ sudo apt-get install libssl-dev On CentOS/RedHat/Fedora systems: $ sudo yum install openssl-devel 3.2 cross compilation Cross compilation requires cross compiling the individual libraries. In order for a cross compiled executable to run on a target system, one must build the same version as that which is installed on the target rootfs. For example, to build openssl for both 32 and 64 bit compilation: # Clone openssl repository $ git clone git://git.openssl.org/openssl.git $ cd openssl # The command "git tag" will list all tags available in the repo. $ git tag # Checkout the specific tag to match openssl library in your target rootfs $ git checkout # Build and install 32 bit version of openssl $ ./Configure linux-generic32 --cross-compile-prefix=arm-linux-gnueabihf- \ --prefix=/home/user/src/install-openssl shared $ make $ make install # Build and install 64 bit version of openssl $ ./Configure linux-generic64 --cross-compile-prefix=aarch64-linux-gnu- \ --prefix=/home/user/src/install-openssl-aarch64 shared $ make $ make install # You may now build either 32 or 64 bit ODP $ git clone git://git.linaro.org/lng/odp.git odp $ cd odp $ ./bootstrap # Build 32 bit version of ODP $ ./configure --host=arm-linux-gnueabihf \ --with-openssl-path=/home/user/src/install-openssl $ make # Or build 64 bit version of ODP $ ./configure --host=aarch64-linux-gnu \ --with-openssl-path=/home/user/src/install-openssl-aarch64 $ make 4.0 Packages needed to build API tests Cunit test framework version 2.1-3 is required Cunit prvodes a framework to run the API test suite that proves conformance to the ODP API. The home page http://cunit.sourceforge.net/doc/introduction.html 4.1 Native Cunit install # Debian/Ubuntu check it is 2.1-3 $ apt-get install libcunit1-dev 4.2 Built from src export CUNIT_VERSION=2.1-3 curl -sSOL http://sourceforge.net/projects/cunit/files/CUnit/${CUNIT_VERSION}/CUnit-${CUNIT_VERSION}.tar.bz2 tar -jxf *.bz2 cd CUnit* ./bootstrap make install #In Step 4.4 use --with-cunit-path=/home/${USER}/CUnitHome 4.3 Cross compile of Cunit $ git svn clone http://svn.code.sf.net/p/cunit/code/trunk cunit-code $ cd cunit-code $ ./bootstrap $ ./configure --host=arm-linux-gnueabihf --prefix=/home/${USER}/src/install-cunit 4.4 Using Cunit with ODP $ Add the configuration option to the regular configuration options ./configure --enable-cunit #if cunit is in the PATH ./configure --with-cunit-path=DIR #only if you need a path to Cunit libs and headers 5.0 Documentation & Doxygen 5.1 API Guide See http://www.stack.nl/~dimitri/doxygen/manual/install.html The tested version of doxygen is 1.8.8 5.1.1 HTML # Debian/Ubuntu $ apt-get install doxygen graphviz 5.1.2 PDF # Debian/Ubuntu $ apt-get install texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended 5.2 User guides 5.2.1 HTML # Ubuntu $ apt-get install asciidoc # Debian $ apt-get install asciidoc source-highlight