Apache Tuscany SCA Runtime ========================== Building ======== The Tuscany SCA Linux build uses the GNU Autotools tool chain. First install the following development tools: autoconf-2.64 automake-1.4 g++-4.4.1 libtool-2.2.6 doxygen-1.6.1 Install the following binaries: curl-7.19.5 (http://curl.haxx.se) memcached-1.2.8 (http://memcached.org/) Then install the following development dependencies: Apache HTTP server and APR: httpd-2.2-13 (http://httpd.apache.org/) libapr-1-0.3.8 (http://apr.apache.org/) libaprutil-1-0.3.9 XML: libxml2-2.7.5 (http://xmlsoft.org/) CURL: libcurl4-7.19.5 (http://curl.haxx.se) JSON: Mozilla SpiderMonkey libmozjs (http://www.mozilla.org/js/spidermonkey/) included in xulrunner-1.9.1.7 Optional dependencies: Web Services: Apache Axis2/C 1.6.0 (http://ws.apache.org/axis2/c/) Queueing: Apache Qpid/C++ 0.6 (http://qpid.apache.org/) Python: Python 2.6 (http://www.python.org/) Java: a Java 5+ JDK (http://openjdk.java.net/, http://harmony.apache.org/) XMPP Chat: Libstrophe (http://code.stanziq.com/cgit/strophe/libstrophe/) build it from source at git://code.stanziq.com//libstrophe To configure the Tuscany SCA build do this: ./bootstrap ./configure --prefix= To enable debugging and strict warning compile options, add: --enable-maintainer-mode To enable gprof profiling, add: --enable-profiling To enable multi-threading (required by the Queue and Chat components and for running with the HTTPD worker or event multi-threaded MPMs): --enable-threads To enable support for Python component implementations: --enable-python To enable support for Java component implementations: --enable-java To build the Web service utility component (requires Apache Axis2/C): --enable-webservice To build the Queue utility component (requires Apache Qpid/C++): --enable-queue To build the Chat utility component (requires Libstrophe): --enable-chat To generate doxygen documentation, add: --enable-doxygen To configure where to find dependencies, see the --with-* options described in the configure help: ./configure --help Here's an example configuration, tested on Ubuntu 9.10, with the system dependencies installed in the standard system directories and some of the dependencies installed under $HOME: ./configure --prefix=$HOME/tuscany-sca-cpp-bin \ --with-apr=$HOME/httpd-2.2.13-bin --with-httpd=$HOME/httpd-2.2.13-bin \ --with-libcurl=/usr --with-libxml2=/usr \ --with-js-include=/usr/include/xulrunner-1.9.1.7/unstable \ --with-js-lib=/usr/lib/xulrunner-1.9.1.7 \ --enable-threads \ --enable-python --with-python=/usr \ --enable-java --with-java=/usr/lib/jvm/default-java \ --enable-webservice --with-axis2c=$HOME/axis2c-1.6.0-bin \ --enable-queue --with-qpidc=$HOME/qpidc-0.6-bin \ --enable-chat --with-libstrophe=$HOME/libstrophe \ --enable-maintainer-mode To build the Tuscany SCA runtime, do this: make To run the tests, do this: make check To build ctags for the source, do this: make ctags To build a source distribution, do this: make dist To build a binary distribution, do this: make bindist Installing ========== To install the Tuscany SCA binaries, do this: make install Building dependencies from source ================================= Here are example build and install steps for some of the dependencies. Apache HTTPD, including APR, using the HTTP prefork MPM (recommended): ./configure --enable-ssl --enable-proxy --enable-rewrite --with-included-apr \ --with-mpm=prefork --prefix=$HOME/httpd-2.2.13-bin make make install export PATH=$HOME/httpd-2-2.13-bin/bin:$PATH Apache Axis2/C: ./configure --enable-libxml2 --enable-openssl --enable-libcurl \ --with-apache2=$HOME/httpd-2.2.13-bin/include --prefix=$HOME/axis2c-1.6.0-bin make make install export AXIS2C_HOME=$HOME/axis2c-1.6.0-bin Apache Qpid/C++: git clone git://git.apache.org/qpid.git cd qpid git checkout -b 0.6-release origin/0.6-release cd qpid/cpp ./bootstrap ./configure --prefix=$HOME/qpidc-0.6-bin make make install Libstrophe: git clone git://code.stanziq.com/libstrophe cd libstrophe git submodule init git submodule update aclocal automake --add-missing --foreign --copy autoconf ./configure --prefix=$HOME/libstrophe-bin make make install