Fix distribution build, add missing files and samples and fix path to libraries. GCC 4.5 is used if available but not installed automatically.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@949435 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
7eef73b80c
commit
e5a49fff24
45 changed files with 275 additions and 115 deletions
|
|
@ -20,16 +20,9 @@ ACLOCAL_AMFLAGS = -I m4
|
|||
SUBDIRS = kernel modules components doc samples
|
||||
|
||||
datadir=$(prefix)
|
||||
data_DATA = INSTALL README LICENSE COPYING NOTICE
|
||||
data_DATA = README LICENSE COPYING NOTICE
|
||||
nobase_data_DATA = xsd/*.xsd xsd/external/*.xsd xsd/external/*.dtd
|
||||
|
||||
install-data-hook:
|
||||
rm -rf $(prefix)/doc
|
||||
cp -r doc $(prefix)
|
||||
rm -f $(prefix)/doc/Makefile* $(prefix)/doc/Doxyfile*
|
||||
rm -rf `find $(prefix)/doc -type d -name .svn`
|
||||
rm -rf `find $(prefix)/doc -type d -name .deps`
|
||||
|
||||
dist-hook:
|
||||
rm -rf `find $(distdir)/ -type d -name .svn`
|
||||
rm -rf `find $(distdir)/ -type d -name .deps`
|
||||
|
|
|
|||
|
|
@ -1,6 +1,29 @@
|
|||
Apache Tuscany SCA Runtime
|
||||
==========================
|
||||
|
||||
Tuscany SCA Native is an SCA (Service Component Architecture) runtime written
|
||||
in C++ and integrated with the Apache HTTPD server.
|
||||
|
||||
It supports SCA components written in C++ and Python. Experimental support
|
||||
for other programming languages is under construction. SCA bindings are
|
||||
available for the JSON-RPC and ATOMPub protocols.
|
||||
|
||||
Several useful SCA components are provided on top of the SCA runtime, which
|
||||
can be used to help assemble distributed SCA composite applications:
|
||||
|
||||
Cache: Key/value memory cache, using Memcached;
|
||||
Chat: XMPP chat, using Apache Vysper and Libstrophe;
|
||||
Log: distributed logger, using Facebook Scribe.
|
||||
Queue: AMQP queuing, using Apache Qpid/C;
|
||||
Sqldb: SQL database, using PostgreSQL;
|
||||
Store: Key/value persistent store, using TinyCDB;
|
||||
Webservice: Web service gateway, using Apache Axis2/C;
|
||||
|
||||
These components present a simple ATOMPub REST interface, allowing you to send
|
||||
a message to a queue, a chat connection, or add an entry to a cache or a
|
||||
database for example, using a simple HTTP POST.
|
||||
|
||||
|
||||
Getting the source code
|
||||
=======================
|
||||
|
||||
|
|
@ -61,7 +84,7 @@ Here's a rough guide to the Tuscany SCA source tree:
|
|||
Building
|
||||
========
|
||||
|
||||
See the INSTALL file.
|
||||
See the INSTALL file at the root of the source tree.
|
||||
|
||||
|
||||
Contributing to the project
|
||||
|
|
|
|||
3
sca-cpp/trunk/components/cache/Makefile.am
vendored
3
sca-cpp/trunk/components/cache/Makefile.am
vendored
|
|
@ -24,6 +24,9 @@ memcached.prefix: $(top_builddir)/config.status
|
|||
|
||||
comp_LTLIBRARIES = libmemcache.la
|
||||
libmemcache_la_SOURCES = memcache.cpp
|
||||
noinst_DATA = libmemcache.so
|
||||
libmemcache.so:
|
||||
ln -s .libs/libmemcache.so
|
||||
|
||||
memcache_test_SOURCES = memcache-test.cpp
|
||||
memcache_test_LDFLAGS = -lxml2
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
name="memcache">
|
||||
|
||||
<component name="memcache">
|
||||
<implementation.cpp path=".libs" library="libmemcache"/>
|
||||
<implementation.cpp path="." library="libmemcache"/>
|
||||
<service name="memcache">
|
||||
<t:binding.http uri="memcache"/>
|
||||
</service>
|
||||
|
|
|
|||
|
|
@ -31,6 +31,9 @@ vysper.prefix: $(top_builddir)/config.status
|
|||
comp_LTLIBRARIES = libchatter.la
|
||||
libchatter_la_SOURCES = chatter.cpp
|
||||
libchatter_la_LDFLAGS = -L${LIBSTROPHE_LIB} -R${LIBSTROPHE_LIB} -lstrophe -lexpat -lssl -lresolv
|
||||
noinst_DATA = libchatter.so
|
||||
libchatter.so:
|
||||
ln -s .libs/libchatter.so
|
||||
|
||||
xmpp_test_SOURCES = xmpp-test.cpp
|
||||
xmpp_test_LDFLAGS = -L${LIBSTROPHE_LIB} -R${LIBSTROPHE_LIB} -lstrophe -lexpat -lssl -lresolv
|
||||
|
|
@ -43,9 +46,7 @@ noinst_PROGRAMS = xmpp-test client-test
|
|||
if WANT_VYSPER
|
||||
|
||||
AM_JAVACFLAGS = -cp `${top_builddir}/components/chat/vysper-classpath ${VYSPER_PREFIX}`${JAVAROOT}
|
||||
|
||||
noinst_JAVA = test/*.java
|
||||
|
||||
CLEANFILES = test/*.class
|
||||
|
||||
TESTS = echo-test
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
name="chat">
|
||||
|
||||
<component name="print-sender">
|
||||
<implementation.cpp path=".libs" library="libchatter"/>
|
||||
<implementation.cpp path="." library="libchatter"/>
|
||||
<property name="jid">sca1@localhost</property>
|
||||
<property name="password">sca1</property>
|
||||
<service name="print-sender">
|
||||
|
|
@ -32,7 +32,7 @@
|
|||
</component>
|
||||
|
||||
<component name="print-chatter">
|
||||
<implementation.cpp path=".libs" library="libchatter"/>
|
||||
<implementation.cpp path="." library="libchatter"/>
|
||||
<property name="jid">sca2@localhost</property>
|
||||
<property name="password">sca2</property>
|
||||
<service name="print-chatter">
|
||||
|
|
|
|||
|
|
@ -19,10 +19,10 @@ if WANT_LOG
|
|||
|
||||
INCLUDES = -I${THRIFT_INCLUDE} -I${FB303_INCLUDE}
|
||||
|
||||
comp_SCRIPTS = scribed-central-conf scribed-client-conf scribed-central-start scribed-central-stop scribed-client-start scribed-client-stop
|
||||
comp_SCRIPTS = scribed-central-conf scribed-client-conf scribed-central-start scribed-central-stop scribed-client-start scribed-client-stop scribe-cat
|
||||
compdir=$(prefix)/components/log
|
||||
|
||||
comp_DATA = scribe.prefix thrift.prefix
|
||||
comp_DATA = scribe.prefix thrift.prefix scribecat.py
|
||||
scribe.prefix: $(top_builddir)/config.status
|
||||
echo ${SCRIBE_PREFIX} >scribe.prefix
|
||||
|
||||
|
|
@ -36,16 +36,21 @@ gen-cpp/fb303_constants.cpp gen-cpp/fb303_types.cpp gen-cpp/scribe_constants.cpp
|
|||
CLEANFILES = gen-cpp/*
|
||||
|
||||
comp_LTLIBRARIES = liblog.la liblogger.la
|
||||
noinst_DATA = liblog.so liblogger.so
|
||||
|
||||
nodist_liblog_la_SOURCES = gen-cpp/fb303_constants.cpp gen-cpp/fb303_types.cpp gen-cpp/scribe_constants.cpp gen-cpp/scribe.cpp gen-cpp/scribe_types.cpp gen-cpp/FacebookService.cpp gen-cpp/scribe.h
|
||||
liblog_la_CXXFLAGS = -Wno-unused-parameter
|
||||
liblog_la_SOURCES = log.cpp
|
||||
liblog_la_LDFLAGS = -L${THRIFT_LIB} -R${THRIFT_LIB} -lthrift -L${FB303_LIB} -R${FB303_LIB} -lfb303 -L${SCRIBE_LIB} -R${SCRIBE_LIB} -lscribe
|
||||
liblog.so:
|
||||
ln -s .libs/liblog.so
|
||||
|
||||
nodist_liblogger_la_SOURCES = gen-cpp/fb303_constants.cpp gen-cpp/fb303_types.cpp gen-cpp/scribe_constants.cpp gen-cpp/scribe.cpp gen-cpp/scribe_types.cpp gen-cpp/FacebookService.cpp gen-cpp/scribe.h
|
||||
liblogger_la_CXXFLAGS = -Wno-unused-parameter
|
||||
liblogger_la_SOURCES = logger.cpp
|
||||
liblogger_la_LDFLAGS = -L${THRIFT_LIB} -R${THRIFT_LIB} -lthrift -L${FB303_LIB} -R${FB303_LIB} -lfb303 -L${SCRIBE_LIB} -R${SCRIBE_LIB} -lscribe
|
||||
liblogger.so:
|
||||
ln -s .libs/liblogger.so
|
||||
|
||||
client_test_SOURCES = client-test.cpp
|
||||
client_test_LDFLAGS = -lxml2 -lcurl -lmozjs
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
name="log">
|
||||
|
||||
<component name="log">
|
||||
<implementation.cpp path=".libs" library="liblog"/>
|
||||
<implementation.cpp path="." library="liblog"/>
|
||||
<property name="category">default</property>
|
||||
<service name="log">
|
||||
<t:binding.http uri="log"/>
|
||||
|
|
@ -39,7 +39,7 @@
|
|||
</component>
|
||||
|
||||
<component name="logger">
|
||||
<implementation.cpp path=".libs" library="liblogger"/>
|
||||
<implementation.cpp path="." library="liblogger"/>
|
||||
<property name="category">default</property>
|
||||
<service name="logger">
|
||||
<t:binding.http uri="logger"/>
|
||||
|
|
|
|||
|
|
@ -27,9 +27,12 @@ tinycdb.prefix: $(top_builddir)/config.status
|
|||
echo ${TINYCDB_PREFIX} >tinycdb.prefix
|
||||
|
||||
comp_LTLIBRARIES = libnosqldb.la
|
||||
noinst_DATA = libnosqldb.so
|
||||
|
||||
libnosqldb_la_SOURCES = nosqldb.cpp
|
||||
libnosqldb_la_LDFLAGS = -L${TINYCDB_LIB} -R${TINYCDB_LIB} -lcdb
|
||||
libnosqldb.so:
|
||||
ln -s .libs/libnosqldb.so
|
||||
|
||||
tinycdb_test_SOURCES = tinycdb-test.cpp
|
||||
tinycdb_test_LDFLAGS = -L${TINYCDB_LIB} -R${TINYCDB_LIB} -lcdb
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
name="nosqldb">
|
||||
|
||||
<component name="nosqldb">
|
||||
<implementation.cpp path=".libs" library="libnosqldb"/>
|
||||
<implementation.cpp path="." library="libnosqldb"/>
|
||||
<property name="dbname">tmp/test.cdb</property>
|
||||
<service name="nosqldb">
|
||||
<t:binding.http uri="nosqldb"/>
|
||||
|
|
|
|||
|
|
@ -120,13 +120,6 @@ private:
|
|||
int fd;
|
||||
struct stat st;
|
||||
|
||||
//friend const failable<bool> post(const value& key, const value& val, TinyCDB& cdb);
|
||||
//friend const failable<bool> put(const value& key, const value& val, TinyCDB& cdb);
|
||||
//friend const failable<value> get(const value& key, const TinyCDB& cdb);
|
||||
//friend const failable<bool> del(const value& key, TinyCDB& cdb);
|
||||
//friend const failable<bool> rewrite(const lambda<failable<bool>(buffer& buf, const unsigned int klen, const unsigned int vlen)>& update, const lambda<failable<bool>(struct cdb_make&)>& finish, TinyCDB& cdb);
|
||||
//friend const failable<bool> rewrite(const lambda<failable<bool>(buffer& buf, const unsigned int klen, const unsigned int vlen)>& update, const lambda<failable<bool>(struct cdb_make&)>& finish, buffer& buf, const int fd, TinyCDB& cdb);
|
||||
|
||||
friend const string dbname(const TinyCDB& cdb);
|
||||
friend const failable<int> cdbopen(TinyCDB& cdb);
|
||||
friend const failable<bool> cdbclose(TinyCDB& cdb);
|
||||
|
|
@ -306,6 +299,29 @@ const failable<bool> rewrite(const lambda<failable<bool>(buffer& buf, const unsi
|
|||
/**
|
||||
* Post a new item to the database.
|
||||
*/
|
||||
struct postUpdate {
|
||||
const string ks;
|
||||
postUpdate(const string& ks) : ks(ks) {
|
||||
}
|
||||
const failable<bool> operator()(buffer& buf, const unsigned int klen, unused const unsigned int vlen) const {
|
||||
if (ks == string((char*)buf, klen))
|
||||
return mkfailure<bool>("Key already exists");
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
struct postFinish {
|
||||
const string ks;
|
||||
const string vs;
|
||||
postFinish(const string& ks, const string& vs) : ks(ks), vs(vs) {
|
||||
}
|
||||
const failable<bool> operator()(struct cdb_make& cdbm) const {
|
||||
if (cdb_make_add(&cdbm, c_str(ks), length(ks), c_str(vs), length(vs)) == -1)
|
||||
return mkfailure<bool>("Could not add entry");
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
const failable<bool> post(const value& key, const value& val, TinyCDB& cdb) {
|
||||
debug(key, "tinycdb::post::key");
|
||||
debug(val, "tinycdb::post::value");
|
||||
|
|
@ -315,18 +331,10 @@ const failable<bool> post(const value& key, const value& val, TinyCDB& cdb) {
|
|||
const string vs(scheme::writeValue(val));
|
||||
|
||||
// Process each entry and detect existing key
|
||||
auto update = [=](buffer& buf, const unsigned int klen, unused const unsigned int vlen)->const failable<bool> {
|
||||
if (ks == string((char*)buf, klen))
|
||||
return mkfailure<bool>("Key already exists");
|
||||
return true;
|
||||
};
|
||||
const lambda<failable<bool>(buffer& buf, const unsigned int klen, const unsigned int vlen)> update = postUpdate(ks);
|
||||
|
||||
// Add the new entry to the db
|
||||
auto finish = [=](struct cdb_make& cdbm)->const failable<bool> {
|
||||
if (cdb_make_add(&cdbm, c_str(ks), length(ks), c_str(vs), length(vs)) == -1)
|
||||
return mkfailure<bool>("Could not add entry");
|
||||
return true;
|
||||
};
|
||||
const lambda<failable<bool>(struct cdb_make& cdbm)> finish = postFinish(ks, vs);
|
||||
|
||||
// Rewrite the db
|
||||
const failable<bool> r = rewrite(update, finish, cdb);
|
||||
|
|
@ -337,6 +345,29 @@ const failable<bool> post(const value& key, const value& val, TinyCDB& cdb) {
|
|||
/**
|
||||
* Update an item in the database. If the item doesn't exist it is added.
|
||||
*/
|
||||
struct putUpdate {
|
||||
const string ks;
|
||||
putUpdate(const string& ks) : ks(ks) {
|
||||
}
|
||||
const failable<bool> operator()(buffer& buf, const unsigned int klen, unused const unsigned int vlen) const {
|
||||
if (ks == string((char*)buf, klen))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
struct putFinish {
|
||||
const string ks;
|
||||
const string vs;
|
||||
putFinish(const string& ks, const string& vs) : ks(ks), vs(vs) {
|
||||
}
|
||||
const failable<bool> operator()(struct cdb_make& cdbm) const {
|
||||
if (cdb_make_add(&cdbm, c_str(ks), length(ks), c_str(vs), length(vs)) == -1)
|
||||
return mkfailure<bool>("Could not add entry");
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
const failable<bool> put(const value& key, const value& val, TinyCDB& cdb) {
|
||||
debug(key, "tinycdb::put::key");
|
||||
debug(val, "tinycdb::put::value");
|
||||
|
|
@ -346,18 +377,10 @@ const failable<bool> put(const value& key, const value& val, TinyCDB& cdb) {
|
|||
const string vs(scheme::writeValue(val));
|
||||
|
||||
// Process each entry and skip existing key
|
||||
auto update = [&](buffer& buf, const unsigned int klen, unused const unsigned int vlen)->const failable<bool> {
|
||||
if (ks == string((char*)buf, klen))
|
||||
return false;
|
||||
return true;
|
||||
};
|
||||
const lambda<failable<bool>(buffer& buf, const unsigned int klen, const unsigned int vlen)> update = putUpdate(ks);
|
||||
|
||||
// Add the new entry to the db
|
||||
auto finish = [&](struct cdb_make& cdbm)->const failable<bool> {
|
||||
if (cdb_make_add(&cdbm, c_str(ks), length(ks), c_str(vs), length(vs)) == -1)
|
||||
return mkfailure<bool>("Could not add entry");
|
||||
return true;
|
||||
};
|
||||
const lambda<failable<bool>(struct cdb_make& cdbm)> finish = putFinish(ks, vs);
|
||||
|
||||
// Rewrite the db
|
||||
const failable<bool> r = rewrite(update, finish, cdb);
|
||||
|
|
@ -394,6 +417,25 @@ const failable<value> get(const value& key, TinyCDB& cdb) {
|
|||
/**
|
||||
* Delete an item from the database
|
||||
*/
|
||||
struct delUpdate {
|
||||
const string ks;
|
||||
delUpdate(const string& ks) : ks(ks) {
|
||||
}
|
||||
const failable<bool> operator()(buffer& buf, const unsigned int klen, unused const unsigned int vlen) const {
|
||||
if (ks == string((char*)buf, klen))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
struct delFinish {
|
||||
delFinish() {
|
||||
}
|
||||
const failable<bool> operator()(unused struct cdb_make& cdbm) const {
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
const failable<bool> del(const value& key, TinyCDB& cdb) {
|
||||
debug(key, "tinycdb::delete::key");
|
||||
debug(dbname(cdb), "tinycdb::delete::dbname");
|
||||
|
|
@ -401,18 +443,10 @@ const failable<bool> del(const value& key, TinyCDB& cdb) {
|
|||
const string ks(scheme::writeValue(key));
|
||||
|
||||
// Process each entry and skip existing key
|
||||
auto update = [=](buffer& buf, const unsigned int klen, unused const unsigned int vlen)->const failable<bool> {
|
||||
if (ks == string((char*)buf, klen))
|
||||
return false;
|
||||
return true;
|
||||
};
|
||||
const lambda<failable<bool>(buffer& buf, const unsigned int klen, const unsigned int vlen)> update = delUpdate(ks);
|
||||
|
||||
// Nothing to do to finish
|
||||
auto finish = [=](unused struct cdb_make& cdbm)->const failable<bool> {
|
||||
// hack: reference a variable from outer scope to workaround GCC internal error
|
||||
const string xs(ks);
|
||||
return true;
|
||||
};
|
||||
const lambda<failable<bool>(struct cdb_make& cdbm)> finish = delFinish();
|
||||
|
||||
// Rewrite the db
|
||||
const failable<bool> r = rewrite(update, finish, cdb);
|
||||
|
|
|
|||
|
|
@ -27,12 +27,17 @@ qpidc.prefix: $(top_builddir)/config.status
|
|||
echo ${QPIDC_PREFIX} >qpidc.prefix
|
||||
|
||||
comp_LTLIBRARIES = libqueue-sender.la libqueue-listener.la
|
||||
noinst_DATA = libqueue-sender.so libqueue-listener.so
|
||||
|
||||
libqueue_sender_la_SOURCES = queue-sender.cpp
|
||||
libqueue_sender_la_LDFLAGS = -L${QPIDC_LIB} -R${QPIDC_LIB} -lqpidclient -lqpidcommon
|
||||
libqueue-sender.so:
|
||||
ln -s .libs/libqueue-sender.so
|
||||
|
||||
libqueue_listener_la_SOURCES = queue-listener.cpp
|
||||
libqueue_listener_la_LDFLAGS = -L${QPIDC_LIB} -R${QPIDC_LIB} -lqpidclient -lqpidcommon
|
||||
libqueue-listener.so:
|
||||
ln -s .libs/libqueue-listener.so
|
||||
|
||||
qpid_test_SOURCES = qpid-test.cpp
|
||||
qpid_test_LDFLAGS = -L${QPIDC_LIB} -R${QPIDC_LIB} -lqpidclient -lqpidcommon
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
name="queue">
|
||||
|
||||
<component name="print-sender">
|
||||
<implementation.cpp path=".libs" library="libqueue-sender"/>
|
||||
<implementation.cpp path="." library="libqueue-sender"/>
|
||||
<property name="key">print</property>
|
||||
<service name="print-sender">
|
||||
<t:binding.http uri="print-sender"/>
|
||||
|
|
@ -31,7 +31,7 @@
|
|||
</component>
|
||||
|
||||
<component name="print-listener">
|
||||
<implementation.cpp path=".libs" library="libqueue-listener"/>
|
||||
<implementation.cpp path="." library="libqueue-listener"/>
|
||||
<property name="key">print</property>
|
||||
<property name="queue">printq</property>
|
||||
<reference name="relay" target="print"/>
|
||||
|
|
@ -46,7 +46,7 @@
|
|||
</component>
|
||||
|
||||
<component name="report-sender">
|
||||
<implementation.cpp path=".libs" library="libqueue-sender"/>
|
||||
<implementation.cpp path="." library="libqueue-sender"/>
|
||||
<property name="key">report</property>
|
||||
<service name="report-sender">
|
||||
<t:binding.http uri="report-sender"/>
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ if WANT_SQLDB
|
|||
|
||||
INCLUDES = -I${PGSQL_INCLUDE}
|
||||
|
||||
comp_SCRIPTS = pgsql-start pgsql-stop
|
||||
comp_SCRIPTS = pgsql-start pgsql-stop pgsql
|
||||
compdir=$(prefix)/components/sqldb
|
||||
|
||||
comp_DATA = pgsql.prefix
|
||||
|
|
@ -27,9 +27,12 @@ pgsql.prefix: $(top_builddir)/config.status
|
|||
echo ${PGSQL_PREFIX} >pgsql.prefix
|
||||
|
||||
comp_LTLIBRARIES = libsqldb.la
|
||||
noinst_DATA = libsqldb.so
|
||||
|
||||
libsqldb_la_SOURCES = sqldb.cpp
|
||||
libsqldb_la_LDFLAGS = -L${PGSQL_LIB} -R${PGSQL_LIB} -lpq
|
||||
libsqldb.so:
|
||||
ln -s .libs/libsqldb.so
|
||||
|
||||
pgsql_test_SOURCES = pgsql-test.cpp
|
||||
pgsql_test_LDFLAGS = -L${PGSQL_LIB} -R${PGSQL_LIB} -lpq
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
name="sqldb">
|
||||
|
||||
<component name="sqldb">
|
||||
<implementation.cpp path=".libs" library="libsqldb"/>
|
||||
<implementation.cpp path="." library="libsqldb"/>
|
||||
<property name="conninfo">dbname=db</property>
|
||||
<property name="table">test</property>
|
||||
<service name="sqldb">
|
||||
|
|
|
|||
|
|
@ -19,24 +19,36 @@ if WANT_WEBSERVICE
|
|||
|
||||
INCLUDES = -I${AXIS2C_INCLUDE}
|
||||
|
||||
comp_DATA = axis2c.prefix
|
||||
comp_SCRIPTS = axis2-conf
|
||||
compdir=$(prefix)/components/webservice
|
||||
|
||||
comp_DATA = axis2c.prefix axis2.xml services.xml module.xml
|
||||
|
||||
axis2c.prefix: $(top_builddir)/config.status
|
||||
echo ${AXIS2C_PREFIX} >axis2c.prefix
|
||||
|
||||
comp_LTLIBRARIES = libwebservice-client.la libwebservice-listener.la libaxis2-dispatcher.la libaxis2-service.la
|
||||
noinst_DATA = libwebservice-client.so libwebservice-listener.so libaxis2-dispatcher.so libaxis2-service.so
|
||||
|
||||
libwebservice_client_la_SOURCES = webservice-client.cpp
|
||||
libwebservice_client_la_LDFLAGS = -lxml2 -L${AXIS2C_LIB} -R${AXIS2C_LIB} -laxis2_engine -laxis2_axiom -laxutil
|
||||
libwebservice-client.so:
|
||||
ln -s .libs/libwebservice-client.so
|
||||
|
||||
libwebservice_listener_la_SOURCES = webservice-listener.cpp
|
||||
libwebservice_listener_la_LDFLAGS = -lxml2 -L${AXIS2C_LIB} -R${AXIS2C_LIB} -laxis2_engine -laxis2_axiom -laxutil
|
||||
libwebservice-listener.so:
|
||||
ln -s .libs/libwebservice-listener.so
|
||||
|
||||
libaxis2_dispatcher_la_SOURCES = axis2-dispatcher.cpp
|
||||
libaxis2_dispatcher_la_LDFLAGS = -lxml2 -L${AXIS2C_LIB} -R${AXIS2C_LIB} -laxis2_engine -laxis2_axiom -laxutil
|
||||
libaxis2-dispatcher.so:
|
||||
ln -s .libs/libaxis2-dispatcher.so
|
||||
|
||||
libaxis2_service_la_SOURCES = axis2-service.cpp
|
||||
libaxis2_service_la_LDFLAGS = -lxml2 -L${AXIS2C_LIB} -R${AXIS2C_LIB} -laxis2_engine -laxis2_axiom -laxutil
|
||||
libaxis2-service.so:
|
||||
ln -s .libs/libaxis2-service.so
|
||||
|
||||
axiom_test_SOURCES = axiom-test.cpp
|
||||
axiom_test_LDFLAGS = -lxml2 -L${AXIS2C_LIB} -R${AXIS2C_LIB} -laxis2_engine -laxis2_axiom -laxutil
|
||||
|
|
|
|||
|
|
@ -33,10 +33,10 @@ mkdir -p $root/axis2c/services
|
|||
|
||||
# Install Tuscany Axis2 module and service
|
||||
mkdir -p $root/axis2c/modules/tuscany
|
||||
ln -f -s $here/.libs/libaxis2-dispatcher.so $root/axis2c/modules/tuscany/libaxis2-dispatcher.so
|
||||
ln -f -s $here/libaxis2-dispatcher.so $root/axis2c/modules/tuscany/libaxis2-dispatcher.so
|
||||
ln -f -s $here/module.xml $root/axis2c/modules/tuscany/module.xml
|
||||
mkdir -p $root/axis2c/services/tuscany
|
||||
ln -f -s $here/.libs/libaxis2-service.so $root/axis2c/services/tuscany/libaxis2-service.so
|
||||
ln -f -s $here/libaxis2-service.so $root/axis2c/services/tuscany/libaxis2-service.so
|
||||
ln -f -s $here/services.xml $root/axis2c/services/tuscany/services.xml
|
||||
cp $here/axis2.xml $root/axis2c/axis2.xml
|
||||
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
name="webservice-client">
|
||||
|
||||
<component name="webservice-client">
|
||||
<implementation.cpp path=".libs" library="libwebservice-client"/>
|
||||
<implementation.cpp path="." library="libwebservice-client"/>
|
||||
<property name="uri">http://localhost:9090/axis2/services/echo</property>
|
||||
<service name="webservice-client">
|
||||
<t:binding.jsonrpc uri="echo-client"/>
|
||||
|
|
@ -31,7 +31,7 @@
|
|||
</component>
|
||||
|
||||
<component name="webservice-listener">
|
||||
<implementation.cpp path=".libs" library="libwebservice-listener"/>
|
||||
<implementation.cpp path="." library="libwebservice-listener"/>
|
||||
<service name="webservice-listener">
|
||||
<t:binding.http uri="echo-listener"/>
|
||||
</service>
|
||||
|
|
|
|||
|
|
@ -25,19 +25,20 @@ AM_CONFIG_HEADER(config.h)
|
|||
AM_INIT_AUTOMAKE([tar-ustar])
|
||||
AC_PREFIX_DEFAULT(/usr/local/tuscany/sca)
|
||||
|
||||
# Require GCC 4.5
|
||||
# Check for required programs.
|
||||
AC_MSG_NOTICE([checking for programs])
|
||||
AC_MSG_CHECKING([for gcc-4.5])
|
||||
if test -x "/usr/bin/gcc-4.5"; then
|
||||
if test -x "/usr/bin/g++-4.5"; then
|
||||
# Use GCC 4.5 if available
|
||||
CXX=/usr/bin/g++-4.5
|
||||
CPP=/usr/bin/cpp-4.5
|
||||
CC=/usr/bin/gcc-4.5
|
||||
AC_MSG_RESULT(/usr/bin/gcc-4.5)
|
||||
AM_CONDITIONAL([WANT_GCC45], true)
|
||||
AC_DEFINE([WANT_GCC45], 1, [compile with gcc-4.5])
|
||||
else
|
||||
AC_MSG_ERROR([could not find gcc-4.5])
|
||||
AM_CONDITIONAL([WANT_GCC45], false)
|
||||
fi
|
||||
|
||||
# Check for required programs.
|
||||
AC_MSG_NOTICE([checking for programs])
|
||||
AC_PROG_CXX
|
||||
AC_PROG_AWK
|
||||
AC_PROG_CC
|
||||
|
|
|
|||
|
|
@ -22,9 +22,12 @@ include_HEADERS = *.hpp
|
|||
|
||||
string_test_SOURCES = string-test.cpp
|
||||
|
||||
test_LTLIBRARIES = libdynlib-test.la
|
||||
testdir = $(prefix)/test
|
||||
noinst_test_LTLIBRARIES = libdynlib-test.la
|
||||
noinst_testdir = `pwd`/tmp
|
||||
libdynlib_test_la_SOURCES = dynlib-test.cpp
|
||||
noinst_DATA = libdynlib-test.so
|
||||
libdynlib-test.so:
|
||||
ln -s .libs/libdynlib-test.so
|
||||
|
||||
kernel_test_SOURCES = kernel-test.cpp
|
||||
|
||||
|
|
|
|||
|
|
@ -540,7 +540,7 @@ bool testStateMonad() {
|
|||
}
|
||||
|
||||
bool testDynLib() {
|
||||
const lib dl(string(".libs/libdynlib-test") + dynlibExt);
|
||||
const lib dl(string("libdynlib-test") + dynlibExt);
|
||||
const failable<lambda<int(const int)> > sq(dynlambda<int(const int)>("csquare", dl));
|
||||
assert(hasContent(sq));
|
||||
lambda<int(const int)> l(content(sq));
|
||||
|
|
|
|||
|
|
@ -27,9 +27,12 @@
|
|||
#include "function.hpp"
|
||||
#include "sstream.hpp"
|
||||
#include "fstream.hpp"
|
||||
#include "perf.hpp"
|
||||
|
||||
namespace tuscany {
|
||||
|
||||
#ifdef WANT_GCC45
|
||||
|
||||
const lambda<const int(const int)> inc(const int i) {
|
||||
return [=](const int x)->const int {
|
||||
return x + i;
|
||||
|
|
@ -64,12 +67,34 @@ bool testLambda() {
|
|||
return true;
|
||||
}
|
||||
|
||||
const double fib_aux(const double n, const double a, const double b) {
|
||||
return n == 0.0? a : fib_aux(n - 1.0, b, a + b);
|
||||
}
|
||||
|
||||
const bool fibMapPerf() {
|
||||
list<double> s = seq(0.0, 4999.0);
|
||||
list<double> r = map<double, double>([](const double n)->const double { return fib_aux(n, 0.0, 1.0); }, s);
|
||||
assert(5000 == length(r));
|
||||
return true;
|
||||
}
|
||||
|
||||
bool testCppPerf() {
|
||||
cout << "Fibonacci map test " << (time([]()->const bool { return fibMapPerf(); }, 1, 1) / 5000) << " ms" << endl;
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
int main() {
|
||||
tuscany::cout << "Testing..." << tuscany::endl;
|
||||
|
||||
#ifdef WANT_GCC45
|
||||
tuscany::testLambda();
|
||||
tuscany::testCppPerf();
|
||||
#else
|
||||
tuscany::cout << "Skipped GCC 4.5 tests" << tuscany::endl;
|
||||
#endif
|
||||
|
||||
tuscany::cout << "OK" << tuscany::endl;
|
||||
|
||||
|
|
|
|||
|
|
@ -17,14 +17,15 @@
|
|||
|
||||
INCLUDES = -I${HTTPD_INCLUDE}
|
||||
|
||||
mod_SCRIPTS = httpd-conf httpd-start httpd-stop httpd-restart httpd-ca-conf httpd-cert-conf httpd-ssl-conf
|
||||
moddir=$(prefix)/modules/http
|
||||
mod_SCRIPTS = httpd-conf httpd-start httpd-stop httpd-restart
|
||||
|
||||
curl_test_SOURCES = curl-test.cpp
|
||||
curl_test_LDFLAGS = -lxml2 -lcurl -lmozjs
|
||||
|
||||
prefix_DATA = httpd.prefix curl.prefix
|
||||
prefixdir=$(prefix)/modules/http
|
||||
mod_DATA = httpd.prefix curl.prefix
|
||||
nobase_mod_DATA = conf/*
|
||||
|
||||
httpd.prefix: $(top_builddir)/config.status
|
||||
echo ${HTTPD_PREFIX} >httpd.prefix
|
||||
curl.prefix: $(top_builddir)/config.status
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ libmod_tuscany_java_la_SOURCES = mod-java.cpp
|
|||
libmod_tuscany_java_la_LDFLAGS = -lxml2 -lcurl -lmozjs ${JAVA_LDFLAGS}
|
||||
noinst_DATA = libmod_tuscany_java.so
|
||||
libmod_tuscany_java.so:
|
||||
ln -s .libs/libmod_tuscany_java.so libmod_tuscany_java.so
|
||||
ln -s .libs/libmod_tuscany_java.so
|
||||
|
||||
jni_test_SOURCES = jni-test.cpp
|
||||
jni_test_LDFLAGS = ${JAVA_LDFLAGS}
|
||||
|
|
@ -53,7 +53,7 @@ jar_DATA = ${jarfile}
|
|||
${jarfile}: ${noinst_JAVA}
|
||||
${JAR} cf $@ org/apache/tuscany/*.class
|
||||
|
||||
CLEANFILES = ${jarfile} org/apache/tuscany/*.class test/*.class
|
||||
CLEANFILES = classnoinst.stamp ${jarfile} org/apache/tuscany/*.class test/*.class
|
||||
|
||||
client_test_SOURCES = client-test.cpp
|
||||
client_test_LDFLAGS = -lxml2 -lcurl -lmozjs
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ libmod_tuscany_python_la_SOURCES = mod-python.cpp
|
|||
libmod_tuscany_python_la_LDFLAGS = -lxml2 -lcurl -lmozjs -L${PYTHON_LIB} -R${PYTHON_LIB} -lpython2.6
|
||||
noinst_DATA = libmod_tuscany_python.so
|
||||
libmod_tuscany_python.so:
|
||||
ln -s .libs/libmod_tuscany_python.so libmod_tuscany_python.so
|
||||
ln -s .libs/libmod_tuscany_python.so
|
||||
|
||||
python_test_SOURCES = python-test.cpp
|
||||
python_test_LDFLAGS = -L${PYTHON_LIB} -R${PYTHON_LIB} -lpython2.6
|
||||
|
|
|
|||
|
|
@ -27,16 +27,20 @@ noinst_DATA = libmod_tuscany_eval.so libmod_tuscany_wiring.so
|
|||
libmod_tuscany_eval_la_SOURCES = mod-eval.cpp
|
||||
libmod_tuscany_eval_la_LDFLAGS = -lxml2 -lcurl -lmozjs
|
||||
libmod_tuscany_eval.so:
|
||||
ln -s .libs/libmod_tuscany_eval.so libmod_tuscany_eval.so
|
||||
ln -s .libs/libmod_tuscany_eval.so
|
||||
|
||||
libmod_tuscany_wiring_la_SOURCES = mod-wiring.cpp
|
||||
libmod_tuscany_wiring_la_LDFLAGS = -lxml2 -lcurl -lmozjs
|
||||
libmod_tuscany_wiring.so:
|
||||
ln -s .libs/libmod_tuscany_wiring.so libmod_tuscany_wiring.so
|
||||
ln -s .libs/libmod_tuscany_wiring.so
|
||||
|
||||
noinst_testdir = $(prefix)/test
|
||||
noinst_test_LTLIBRARIES = libimpl-test.la
|
||||
noinst_testdir = `pwd`/tmp
|
||||
noinst_DATA += libimpl-test.so
|
||||
|
||||
libimpl_test_la_SOURCES = impl-test.cpp
|
||||
libimpl-test.so:
|
||||
ln -s .libs/libimpl-test.so
|
||||
|
||||
client_test_SOURCES = client-test.cpp
|
||||
client_test_LDFLAGS = -lxml2 -lcurl -lmozjs
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
</component>
|
||||
|
||||
<component name="cpp-test">
|
||||
<implementation.cpp path=".libs" library="libimpl-test"/>
|
||||
<implementation.cpp path="." library="libimpl-test"/>
|
||||
<service name="cpp">
|
||||
<t:binding.http uri="cpp"/>
|
||||
</service>
|
||||
|
|
|
|||
|
|
@ -19,9 +19,11 @@ if WANT_PYTHON
|
|||
|
||||
INCLUDES = -I${PYTHON_INCLUDE}
|
||||
|
||||
mod_SCRIPTS = composite.py scdl.py util.py elemutil.py xmlutil.py atomutil.py jsonutil.py wsgi-start wsgi-stop
|
||||
mod_SCRIPTS = composite.py wsgi-start wsgi-stop gae-start gae-stop
|
||||
moddir = $(prefix)/modules/wsgi
|
||||
|
||||
mod_DATA = app.yaml scdl.py util.py elemutil.py xmlutil.py atomutil.py jsonutil.py
|
||||
|
||||
noinst_DATA = target.stamp
|
||||
|
||||
target.stamp: app.yaml *.py *.composite htdocs/*
|
||||
|
|
|
|||
|
|
@ -17,3 +17,6 @@
|
|||
|
||||
SUBDIRS = store-scheme store-cpp store-python store-java store-gae store-sql store-nosql
|
||||
|
||||
sample_DATA = README
|
||||
sampledir=$(prefix)/samples
|
||||
|
||||
|
|
|
|||
|
|
@ -15,9 +15,14 @@
|
|||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
sample_LTLIBRARIES = libcurrency-converter.la libfruits-catalog.la libshopping-cart.la
|
||||
|
||||
sample_SCRIPTS = start stop ssl-start
|
||||
sampledir = $(prefix)/samples/store-cpp
|
||||
|
||||
nobase_sample_DATA = currency-converter.cpp fruits-catalog.cpp shopping-cart.cpp store.composite htdocs/*
|
||||
|
||||
sample_LTLIBRARIES = libcurrency-converter.la libfruits-catalog.la libshopping-cart.la
|
||||
|
||||
libcurrency_converter_la_SOURCES = currency-converter.cpp
|
||||
|
||||
libfruits_catalog_la_SOURCES = fruits-catalog.cpp
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
name="store">
|
||||
|
||||
<component name="Catalog">
|
||||
<implementation.cpp path=".libs" library="libfruits-catalog"/>
|
||||
<implementation.cpp path="." library="libfruits-catalog"/>
|
||||
<property name="currencyCode">USD</property>
|
||||
<service name="Catalog">
|
||||
<t:binding.jsonrpc uri="catalog"/>
|
||||
|
|
@ -32,7 +32,7 @@
|
|||
</component>
|
||||
|
||||
<component name="ShoppingCart">
|
||||
<implementation.cpp path=".libs" library="libshopping-cart"/>
|
||||
<implementation.cpp path="." library="libshopping-cart"/>
|
||||
<service name="ShoppingCart">
|
||||
<t:binding.atom uri="shoppingCart"/>
|
||||
</service>
|
||||
|
|
@ -43,14 +43,14 @@
|
|||
</component>
|
||||
|
||||
<component name="CurrencyConverter">
|
||||
<implementation.cpp path=".libs" library="libcurrency-converter"/>
|
||||
<implementation.cpp path="." library="libcurrency-converter"/>
|
||||
<service name="CurrencyConverter">
|
||||
<t:binding.jsonrpc uri="currencyConverter"/>
|
||||
</service>
|
||||
</component>
|
||||
|
||||
<component name="Cache">
|
||||
<implementation.cpp path="../../components/cache/.libs" library="libmemcache"/>
|
||||
<implementation.cpp path="../../components/cache" library="libmemcache"/>
|
||||
<service name="Cache">
|
||||
<t:binding.atom uri="cache"/>
|
||||
</service>
|
||||
|
|
|
|||
|
|
@ -18,8 +18,10 @@
|
|||
if WANT_PYTHON
|
||||
if WANT_GAE
|
||||
|
||||
noinst_DATA = target.stamp
|
||||
sample_SCRIPTS = start stop
|
||||
sampledir = $(prefix)/samples/store-gae
|
||||
|
||||
BUILT_SOURCES = target.stamp
|
||||
target.stamp: app.yaml *.py *.composite $(top_builddir)/modules/wsgi/*.py htdocs/*
|
||||
mkdir -p target
|
||||
cp app.yaml *.py *.composite `ls $(top_builddir)/modules/wsgi/*.py | grep -v "\-test"` target
|
||||
|
|
@ -29,6 +31,8 @@ target.stamp: app.yaml *.py *.composite $(top_builddir)/modules/wsgi/*.py htdocs
|
|||
clean-local:
|
||||
rm -rf target.stamp target
|
||||
|
||||
nobase_sample_DATA = target/app.yaml target/*.py target/*.composite target/htdocs/*
|
||||
|
||||
TESTS = server-test
|
||||
|
||||
endif
|
||||
|
|
|
|||
|
|
@ -19,11 +19,14 @@ JAVAROOT = ${top_builddir}/samples/store-java
|
|||
|
||||
if WANT_JAVA
|
||||
|
||||
sample_SCRIPTS = start stop ssl-start
|
||||
sampledir=$(prefix)/samples/store-java
|
||||
|
||||
AM_JAVACFLAGS = -cp ${top_builddir}/modules/java/libmod-tuscany-java-${PACKAGE_VERSION}.jar:${JAVAROOT}
|
||||
|
||||
noinst_JAVA = store/*.java
|
||||
CLEANFILES = classnoinst.stamp store/*.class
|
||||
|
||||
CLEANFILES = store/*.class
|
||||
nobase_sample_DATA = store.composite htdocs/* store/*
|
||||
|
||||
TESTS = server-test
|
||||
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@
|
|||
</component>
|
||||
|
||||
<component name="Cache">
|
||||
<implementation.cpp path="../../components/cache/.libs" library="libmemcache"/>
|
||||
<implementation.cpp path="../../components/cache" library="libmemcache"/>
|
||||
<service name="Cache">
|
||||
<t:binding.atom uri="cache"/>
|
||||
</service>
|
||||
|
|
|
|||
|
|
@ -15,5 +15,13 @@
|
|||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
if WANT_NOSQLDB
|
||||
|
||||
sample_SCRIPTS = start stop ssl-start
|
||||
sampledir = $(prefix)/samples/store-nosql
|
||||
|
||||
nobase_sample_DATA = currency-converter.scm fruits-catalog.scm shopping-cart.scm store.scm store.composite htdocs/*
|
||||
|
||||
TESTS = server-test
|
||||
|
||||
endif
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@
|
|||
</component>
|
||||
|
||||
<component name="NoSqldb">
|
||||
<implementation.cpp path="../../components/nosqldb/.libs" library="libnosqldb"/>
|
||||
<implementation.cpp path="../../components/nosqldb" library="libnosqldb"/>
|
||||
<property name="dbname">tmp/store.cdb</property>
|
||||
<service name="NoSqldb">
|
||||
<t:binding.atom uri="nosqldb"/>
|
||||
|
|
|
|||
|
|
@ -17,6 +17,11 @@
|
|||
|
||||
if WANT_PYTHON
|
||||
|
||||
sample_SCRIPTS = start stop ssl-start
|
||||
sampledir = $(prefix)/samples/store-python
|
||||
|
||||
nobase_sample_DATA = currency-converter.py fruits-catalog.py shopping-cart.py store.py store.composite htdocs/*
|
||||
|
||||
TESTS = server-test
|
||||
|
||||
endif
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@
|
|||
</component>
|
||||
|
||||
<component name="Cache">
|
||||
<implementation.cpp path="../../components/cache/.libs" library="libmemcache"/>
|
||||
<implementation.cpp path="../../components/cache" library="libmemcache"/>
|
||||
<service name="Cache">
|
||||
<t:binding.atom uri="cache"/>
|
||||
</service>
|
||||
|
|
|
|||
|
|
@ -15,8 +15,12 @@
|
|||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
noinst_PROGRAMS = script-test
|
||||
sample_SCRIPTS = start stop ssl-start
|
||||
sampledir = $(prefix)/samples/store-scheme
|
||||
|
||||
nobase_sample_DATA = currency-converter.scm fruits-catalog.scm shopping-cart.scm store.scm store.composite htdocs/*
|
||||
|
||||
noinst_PROGRAMS = script-test
|
||||
script_test_SOURCES = script-test.cpp
|
||||
script_test_LDFLAGS = -lxml2 -lmozjs
|
||||
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@
|
|||
</component>
|
||||
|
||||
<component name="Cache">
|
||||
<implementation.cpp path="../../components/cache/.libs" library="libmemcache"/>
|
||||
<implementation.cpp path="../../components/cache" library="libmemcache"/>
|
||||
<service name="Cache">
|
||||
<t:binding.atom uri="cache"/>
|
||||
</service>
|
||||
|
|
|
|||
|
|
@ -15,5 +15,13 @@
|
|||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
if WANT_SQLDB
|
||||
|
||||
sample_SCRIPTS = start stop ssl-start
|
||||
sampledir = $(prefix)/samples/store-sql
|
||||
|
||||
nobase_sample_DATA = currency-converter.scm fruits-catalog.scm shopping-cart.scm store.scm store.composite htdocs/*
|
||||
|
||||
TESTS = server-test
|
||||
|
||||
endif
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@
|
|||
</component>
|
||||
|
||||
<component name="Sqldb">
|
||||
<implementation.cpp path="../../components/sqldb/.libs" library="libsqldb"/>
|
||||
<implementation.cpp path="../../components/sqldb" library="libsqldb"/>
|
||||
<property name="conninfo">dbname=db</property>
|
||||
<property name="table">store</property>
|
||||
<service name="Sqldb">
|
||||
|
|
|
|||
|
|
@ -35,12 +35,13 @@ sudo apt-get -y install wget git-core autoconf automake libtool g++
|
|||
if [ "$?" != "0" ]; then
|
||||
exit $?
|
||||
fi
|
||||
wget http://svn.apache.org/repos/asf/tuscany/sca-cpp/trunk/ubuntu/ubuntu-gcc-4.5
|
||||
chmod +x ./ubuntu-gcc-4.5
|
||||
./ubuntu-gcc-4.5
|
||||
if [ "$?" != "0" ]; then
|
||||
exit $?
|
||||
fi
|
||||
# Uncomment to install GCC 4.5
|
||||
#wget http://svn.apache.org/repos/asf/tuscany/sca-cpp/trunk/ubuntu/ubuntu-gcc-4.5
|
||||
#chmod +x ./ubuntu-gcc-4.5
|
||||
#./ubuntu-gcc-4.5
|
||||
#if [ "$?" != "0" ]; then
|
||||
# exit $?
|
||||
#fi
|
||||
sudo apt-get -y install libssl-dev
|
||||
if [ "$?" != "0" ]; then
|
||||
exit $?
|
||||
|
|
|
|||
|
|
@ -15,7 +15,8 @@
|
|||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
# Install GCC 4.5
|
||||
# Install GCC 4.5, useful if you want to use it and it's not already included
|
||||
# in your Linux distribution
|
||||
|
||||
# Display commands as they are executed
|
||||
set -x
|
||||
|
|
|
|||
|
|
@ -30,13 +30,13 @@ if [ "$?" != "0" ]; then
|
|||
exit $?
|
||||
fi
|
||||
|
||||
# Install GCC 4.5
|
||||
wget http://svn.apache.org/repos/asf/tuscany/sca-cpp/trunk/ubuntu/ubuntu-gcc-4.5
|
||||
chmod +x ./ubuntu-gcc-4.5
|
||||
./ubuntu-gcc-4.5
|
||||
if [ "$?" != "0" ]; then
|
||||
exit $?
|
||||
fi
|
||||
# Uncomment to install GCC 4.5
|
||||
#wget http://svn.apache.org/repos/asf/tuscany/sca-cpp/trunk/ubuntu/ubuntu-gcc-4.5
|
||||
#chmod +x ./ubuntu-gcc-4.5
|
||||
#./ubuntu-gcc-4.5
|
||||
#if [ "$?" != "0" ]; then
|
||||
# exit $?
|
||||
#fi
|
||||
|
||||
# Build Apache HTTP server
|
||||
sudo apt-get -y install libssl-dev
|
||||
|
|
@ -227,7 +227,7 @@ wget http://www.apache.org/dist/incubator/thrift/0.2.0-incubating/thrift-0.2.0-i
|
|||
tar xzf thrift-0.2.0-incubating.tar.gz
|
||||
cd thrift-0.2.0
|
||||
./bootstrap.sh
|
||||
./configure --prefix=$build/thrift-0.2.0-bin --with-java=no --with-erlang=no --with-perl=no --with-ruby=no --with-csharp=no --disable-static
|
||||
./configure --prefix=$build/thrift-0.2.0-bin PY_PREFIX=$build/thrift-0.2.0-bin --with-java=no --with-erlang=no --with-perl=no --with-ruby=no --with-csharp=no --disable-static
|
||||
make
|
||||
make install
|
||||
if [ "$?" != "0" ]; then
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue