Linux: Difference between revisions

From NEOSYS Dev Wiki
Jump to navigationJump to search
No edit summary
Line 11: Line 11:
==== Building Boost from Source ====
==== Building Boost from Source ====


Boost binaries are available for most platform but it can be easier to build from source as follows:
Boost binaries are available for most platforms but in some cases it can be easier to build from source as follows:


Minimum required is boost 1_32. Here we install 1.38.
Minimum required is boost 1_32. Here we install 1.38.

Revision as of 21:00, 13 July 2009

Building and Installing Exodus

Log of an installation of libexodus on Ubuntu 8.04.1 LTS

Log of an installation of libexodus on Ubuntu 9.04 Jaunty Jackalope

Log of an installation of libexodus on Centos 5.3

exodus Dependencies

Building Boost from Source

Boost binaries are available for most platforms but in some cases it can be easier to build from source as follows:

Minimum required is boost 1_32. Here we install 1.38.

Optionally get ICU to fully support unicode in boost regex

Centos

yum install libicu-devel

Ubuntu

apt-get install libicu-dev

Download and unpack Boost Source

wget http://downloads.sourceforge.net/boost/boost_1_38_0.tar.bz2
tar xvf boost_1_38_0.tar.bz2
cd boost_1_38_0
./configure --help
./configure --with-libraries=date_time,filesystem,iostreams,program_options,regex,system,thread

Speed up the build of Boost by only doing the libraries and versions required. ADD additional config to the BJAM_CONFIG line as follows:

nano Makefile
BJAM_CONFIG= xxxxxxxxxxxxx -j4 variant=release link=shared

Build and install Boost

make
sudo make install

Centos - Add "/usr/local/lib" to the list of lib directories to ensure that the boost libs can be found.

sudo nano /etc/ld.so.conf

Ensure the new boost libraries are registered for use.

sudo /sbin/ldconfig

Ensure boost includes can be found. This step might be eliminated in a better Exodos installer.

sudo ln -s /usr/local/include/boost-1_38/boost /usr/local/include/boost

Building service

service is an incomplete multithreaded framework to support dynamic loading of library routines and serving a request/response queue.

www provides an optional web interface to the request/response queue. Windows only at the moment due to a single asp files but could be ported to php.

Building service

cd ~/exodus/trunk/service/service
g++ -fPIC -c *.cpp -I/usr/local/include/boost-1_38 -I/usr/local/include/exodus
g++ -shared -o libservice.so -lc *.o
g++ -o service main.cpp -I/usr/local/include/boost-1_38 -L. -I/usr/local/include/exodus \
-lexodus -lpq -lboost_filesystem-gcc41-mt -lboost_regex-gcc41-mt -lboost_thread-gcc41-mt \
-L./ -lservice

Running service

export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
./service