open62541
An open-source communication stack implementation of OPC UA (OPC Unified Architecture) licensed under LGPL + static linking exception.
![Coverity Scan Build Status](https://scan.coverity.com/projects/1864/badge.svg)
Documentation
Documentation is generated from Doxygen annotations in the source code. The current version can be accessed at http://open62541.org/doxygen/.
Getting dependencies
Ubuntu
Getting gcc toolchain:
sudo apt-get install build-essential subversion git autoconf libtool pkg-config texinfo
Getting python toolchain for the 62541 structures code generator:
sudo apt-get install python python-lxml
Getting additional libraries:
sudo apt-get install expat libexpat1-dev liburcu-dev
$ svn checkout https://svn.code.sf.net/p/check/code/trunk check-code
$ cd check-code
$ autoreconf --install
$ ./configure
$ make
$ sudo make install
$ sudo ldconfig
Getting and using Doxygen
- install the needed packages
bash
sudo apt-get install graphviz doxygen
- configure autotools, clean and build:
bash
$ ./configure --enable-doxygen
$ make clean
$ make all
- the output is generated in doc/html/index.htm
- configure the output of Doxygen with doc/Doxygen.in file
Windows
Getting MinGW and MSYS:
Get Gtk+ bundle (just for m4 marcros and pkg-config):
Get expat
- start MinGW Installation Manager
- choose all Packages, mark mingw32-expat and install
- Open MinGW\msys\1.0\msys.bat
bash
$ mingw-get install libexpat
Get Python and lxml:
- download Python (Windows x86 MSI Installer) at https://python.org/downloads (necessary version: 2.7.x)
- install the executable
- add the install directory (e. g. "c:\python27") to your windows path variable [Selectable in the setup-options]
- restart mingw console
- install lxml by either downloading and installing http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml (choose the version which fits to your python installation (x86 version)) or by following the instructions
given here: http://lxml.de/installation.html
- add ("C:\Python27\Tools\Scripts") to your windows path variable
Get git (IMPORTANT: get 1.8.4, since 1.8.5.2 has a bug):
SVN:
- Open MinGW\msys\1.0\msys.bat
$ svn checkout svn://svn.code.sf.net/p/check/code/trunk check-code
$ cd check-code
$ autoreconf --install
$ ./configure
$ make
$ make install
Adjusting MinGW
- open the file c:\MinGW\include\io.h and replace every off64_t with _off64_t (4x should off64_t appear)
- open the file c:\MinGW\include\unistd.h and replace every off_t with _off_t (2x should off_t appear)
- download the queue.h header @ http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/sys/queue.h and copy it to c:\MinGW\include\sys
Building
- use autogen.sh only first time and whenever aclocal.m4 or configure.ac were modified
bash
$ cd open62541
$ ./autogen.sh
$ ./configure --enable-debug=yes
$ make
$ make check
Configure Options
- --enable-debug=(yes|no|verbose) - omit/include debug code
- --enable-multithreading - enable pthreads (for examples/src/opcuaServerMT)
- --enable-doxygen - make documentation as well
- --enable-coverage - profiling with gcov,lcov, make check will generate reports in tests/coverage