diff options
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/Makefile.am | 43 | ||||
-rwxr-xr-x | cpp/src/generate.sh | 46 | ||||
-rw-r--r-- | cpp/src/tests/Makefile.am | 21 |
3 files changed, 84 insertions, 26 deletions
diff --git a/cpp/src/Makefile.am b/cpp/src/Makefile.am index 0d104c1470..f75b1c8ac9 100644 --- a/cpp/src/Makefile.am +++ b/cpp/src/Makefile.am @@ -1,9 +1,27 @@ SUBDIRS = . tests -AM_CXXFLAGS = $(WARNING_CFLAGS) $(APR_CXXFLAGS) +# Generated code +-include generate.mk + +generate.mk $(generated_cpp) $(generated_h): generate.sh $(generator) + $(srcdir)/generate.sh + +# Empty rule in case a generator file is renamed/removed. +$(generator): + +DISTCLEANFILES=generate.mk + +clean-gen: + rm -rf gen -# -I top_builddir for config.h -INCLUDES = -I$(top_builddir) -I$(top_srcdir)/gen +maintainer-clean-local: + clean-gen + +EXTRA_DIST=generate.sh $(generated_cpp) $(generated_h) $(platform_dist) + +AM_CXXFLAGS = $(WARNING_CFLAGS) $(APR_CXXFLAGS) +AM_LDFLAGS = -version-info $(LIBTOOL_VERSION_INFO_ARG) +INCLUDES = -Igen qpidd_LDADD = \ libqpidbroker.la \ @@ -43,11 +61,11 @@ posix_hdr = \ qpid/sys/posix/EventChannelThreads.h if USE_APR - EXTRA_DIST=$(posix_src) $(posix_hdr) + platform_dist=$(posix_src) $(posix_hdr) platform_src = $(apr_src) platform_hdr = $(apr_hdr) else - EXTRA_DIST=$(apr_src) $(apr_hdr) + platform_dist =$(apr_src) $(apr_hdr) $(generated_cpp) $(generated_h) platform_src = $(posix_src) platform_hdr = $(posix_hdr) endif @@ -59,11 +77,6 @@ libqpidcommon_la_LIBADD = \ $(APR_LIBS) \ $(LIB_DLOPEN) \ $(LIB_CLOCK_GETTIME) - -libqpidcommon_la_LDFLAGS = \ - -version-info \ - $(LIBTOOL_VERSION_INFO_ARG) - libqpidcommon_la_SOURCES = \ $(platform_src) \ qpid/framing/AMQBody.cpp \ @@ -90,10 +103,10 @@ libqpidcommon_la_SOURCES = \ qpid/framing/Correlator.cpp \ qpid/framing/Value.cpp \ qpid/framing/Proxy.cpp \ - ../gen/qpid/framing/AMQP_ClientProxy.cpp \ - ../gen/qpid/framing/AMQP_HighestVersion.h \ - ../gen/qpid/framing/AMQP_MethodVersionMap.cpp \ - ../gen/qpid/framing/AMQP_ServerProxy.cpp \ + gen/qpid/framing/AMQP_ClientProxy.cpp \ + gen/qpid/framing/AMQP_HighestVersion.h \ + gen/qpid/framing/AMQP_MethodVersionMap.cpp \ + gen/qpid/framing/AMQP_ServerProxy.cpp \ qpid/Exception.cpp \ qpid/ExceptionHolder.cpp \ qpid/QpidError.cpp \ @@ -104,7 +117,6 @@ libqpidcommon_la_SOURCES = \ libqpidbroker_la_LIBADD = libqpidcommon.la -ldaemon -lboost_filesystem -libqpidbroker_la_LDFLAGS = -version-info $(LIBTOOL_VERSION_INFO_ARG) libqpidbroker_la_SOURCES = \ qpid/broker/AccumulatedAck.cpp \ qpid/broker/AutoDelete.cpp \ @@ -145,7 +157,6 @@ libqpidbroker_la_SOURCES = \ qpid/broker/TxPublish.cpp libqpidclient_la_LIBADD = libqpidcommon.la -libqpidclient_la_LDFLAGS = -version-info $(LIBTOOL_VERSION_INFO_ARG) libqpidclient_la_SOURCES = \ qpid/client/ClientConnection.cpp \ qpid/client/ClientChannel.cpp \ diff --git a/cpp/src/generate.sh b/cpp/src/generate.sh new file mode 100755 index 0000000000..8614481ad0 --- /dev/null +++ b/cpp/src/generate.sh @@ -0,0 +1,46 @@ +# !/bin/sh +# Generate code from AMQP specification. +# srcdir must +# +srcdir=`dirname $0` +set -e + +gentools_dir="$srcdir/../gentools" +specs_dir="$srcdir/../../specs" +specs="$specs_dir/amqp.0-9.xml $specs_dir/amqp-errata.0-9.xml" +test -z "$JAVA" && JAVA=java ; +test -z "$JAVAC" && JAVAC=javac ; + +# Can we generate code? +if { test -d $gentools_dir && test -d $specs_dir && \ + which $JAVA && which $JAVAC; } > /dev/null; +then + echo "Generating code." + mkdir -p gen/qpid/framing + ( cd $gentools_dir/src && $JAVAC `find -name '*.java' -print` ; ) + $JAVA -cp $gentools_dir/src org.apache.qpid.gentools.Main \ + -c -o gen/qpid/framing -t $gentools_dir/templ.cpp $specs + GENERATED=yes +fi + +# Print a Makefile variable assignment. +make_assign() { + echo -n "$1 = "; shift + prefix=$1; shift + for f in $*; do echo "\\" ; echo -n " $prefix$f "; done + echo +} + +# Generate a Makefile fragment +( + make_assign "generated_cpp" "" `find gen -name '*.cpp' -print` + make_assign "generated_h" "" `find gen -name '*.h' -print` + if test x$GENERATED = xyes; then + make_assign "generator" "" $specs \ + `find ../gentools \( -name '*.java' -o -name '*.tmpl' \) -print` + fi +) > generate.mk-t +mv generate.mk-t generate.mk + + + diff --git a/cpp/src/tests/Makefile.am b/cpp/src/tests/Makefile.am index f9f241706f..0c08e0c6f7 100644 --- a/cpp/src/tests/Makefile.am +++ b/cpp/src/tests/Makefile.am @@ -59,16 +59,17 @@ TESTS_ENVIRONMENT = VALGRIND=$(VALGRIND) srcdir=$(srcdir) CLIENT_TESTS = client_test quick_topictest TESTS = run-unit-tests start_broker $(CLIENT_TESTS) python_tests kill_broker daemon_test -EXTRA_DIST = \ - $(TESTS) \ - test_env \ - topictest \ - .valgrind.supp \ - .valgrindrc-default \ - InProcessBroker.h \ - MockChannel.h \ - MockConnectionInputHandler.h \ - TxMocks.h \ +EXTRA_DIST = \ + test_env \ + run-unit-tests start_broker python_tests kill_broker daemon_test \ + quick_topictest \ + topictest \ + .valgrind.supp \ + .valgrindrc-default \ + InProcessBroker.h \ + MockChannel.h \ + MockConnectionInputHandler.h \ + TxMocks.h \ qpid_test_plugin.h include gen.mk |