diff options
Diffstat (limited to 'cpp')
-rwxr-xr-x | cpp/bootstrap | 11 | ||||
-rw-r--r-- | cpp/configure.ac | 13 | ||||
-rw-r--r-- | cpp/gen/Makefile.am | 38 | ||||
-rw-r--r-- | cpp/gen/gen-src.mk | 99 |
4 files changed, 45 insertions, 116 deletions
diff --git a/cpp/bootstrap b/cpp/bootstrap index fe76a84989..34b16cb16b 100755 --- a/cpp/bootstrap +++ b/cpp/bootstrap @@ -4,10 +4,19 @@ aclocal -I m4 autoheader libtoolize --automake +# If we're building in the qpid tree, we can generate +# some Makefile snippets: + +if test -d ../gentools && test -d ../specs; then + (cd gen && rm -f gen-src.mk + perl -ne '/^(abs_srcdir|if|else|endif|include)\b/ or print' Makefile.am \ + | make -f - abs_srcdir=`pwd` srcdir=. gen-src.mk > /dev/null ) +fi + # Generate (for automake) lots of repetitive parts of tests/Makefile.am. (cd tests && rm -f gen.mk perl -ne '/^include / or print' Makefile.am \ - | make -f - abs_srcdir=`dirname $(pwd)` gen.mk ) + | make -f - abs_srcdir=`dirname $(pwd)` gen.mk > /dev/null ) automake autoconf diff --git a/cpp/configure.ac b/cpp/configure.ac index 955c114a7e..95e2f6ca1d 100644 --- a/cpp/configure.ac +++ b/cpp/configure.ac @@ -33,6 +33,19 @@ AC_ARG_ENABLE(warnings, esac], [enableval=yes]) +# Turn on this automake conditional if we are in a qpid +# hierarchy (i.e. with gentools/ and specs/ sibling directories), +# and if we have working java + javac. +build=yes +AC_CHECK_PROGS([JAVA], [java], [no]) +AC_CHECK_PROGS([JAVAC], [javac], [no]) +build=yes +test x$JAVA = xno && build=no +test x$JAVAC = xno && build=no +test -d $srcdir/../gentools || build=no +test -d $srcdir/../specs || build=no +AM_CONDITIONAL([BUILD_IN_MESSAGE_TREE], [test x$build = xyes]) + # Warnings: Enable as many as possible, keep the code clean. Please # do not disable warnings or remove -Werror without discussing on # qpid-dev list. diff --git a/cpp/gen/Makefile.am b/cpp/gen/Makefile.am index 1f38a419d6..8c179dfd06 100644 --- a/cpp/gen/Makefile.am +++ b/cpp/gen/Makefile.am @@ -1,6 +1,3 @@ -# TODO aconway 2006-11-30: nasty hack, should be done by automake? -abs_srcdir = @abs_srcdir@ - include gen-src.mk BUILT_SOURCES = $(generated_sources) @@ -10,21 +7,20 @@ BUILT_SOURCES = $(generated_sources) EXTRA_DIST = $(BUILT_SOURCES) MAINTAINERCLEANFILES = $(BUILT_SOURCES) -gentools_dir = $(abs_srcdir)/../../gentools -spec_dir = $(abs_srcdir)/../../specs +gentools_dir = $(srcdir)/../../gentools +spec_dir = $(srcdir)/../../specs spec = $(spec_dir)/amqp-8.0.xml +gentools_srcdir = $(gentools_dir)/src/org/apache/qpid/gentools -# FIXME: add dependencies? -timestamp: $(spec) - if test -d $(gentools_dir); then \ - rm -f $(generated_sources); \ - (cd $(gentools_dir)/src/org/apache/qpid/gentools && \ - rm -f *.class && javac *.java); \ - java -cp $(gentools_dir)/src org.apache.qpid.gentools.Main \ - -c -o . -t $(gentools_dir)/templ.cpp $(spec); \ - else \ - echo "warning: failed to regenerate gen/*.{cpp,h}" 1>&2; \ - fi +timestamp: $(spec) $(java_sources) $(cxx_templates) +if BUILD_IN_MESSAGE_TREE + rm -f $(generated_sources) + (cd $(gentools_srcdir) && rm -f *.class && $(JAVAC) *.java); \ + $(JAVA) -cp $(gentools_dir)/src org.apache.qpid.gentools.Main \ + -c -o . -t $(gentools_dir)/templ.cpp $(spec) +else + echo "warning: failed to regenerate gen/*.{cpp,h}" 1>&2 +endif touch timestamp EXTRA_DIST += timestamp @@ -35,4 +31,14 @@ gen-src.mk: timestamp ( echo 'generated_sources = \' \ && ls *.cpp *.h | sort -u | sed 's/.*/ & \\/;$$s/ \\//' \ ) > $@-t +if BUILD_IN_MESSAGE_TREE + ( echo 'java_sources = \' \ + && find $(gentools_srcdir) -name '*.java' \ + | sort -u | sed 's/.*/ & \\/;$$s/ \\//' \ + ) >> $@-t + ( echo 'cxx_templates = \' \ + && find $(gentools_dir)/templ.cpp -name '*.tmpl' \ + | sort -u | sed 's/.*/ & \\/;$$s/ \\//' \ + ) >> $@-t +endif mv $@-t $@ diff --git a/cpp/gen/gen-src.mk b/cpp/gen/gen-src.mk deleted file mode 100644 index 607bda2bd7..0000000000 --- a/cpp/gen/gen-src.mk +++ /dev/null @@ -1,99 +0,0 @@ -generated_sources = \ - AccessRequestBody.h \ - AccessRequestOkBody.h \ - AMQP_ClientOperations.h \ - AMQP_ClientProxy.cpp \ - AMQP_ClientProxy.h \ - AMQP_Constants.h \ - AMQP_MethodVersionMap.cpp \ - AMQP_MethodVersionMap.h \ - AMQP_ServerOperations.h \ - AMQP_ServerProxy.cpp \ - AMQP_ServerProxy.h \ - BasicAckBody.h \ - BasicCancelBody.h \ - BasicCancelOkBody.h \ - BasicConsumeBody.h \ - BasicConsumeOkBody.h \ - BasicDeliverBody.h \ - BasicGetBody.h \ - BasicGetEmptyBody.h \ - BasicGetOkBody.h \ - BasicPublishBody.h \ - BasicQosBody.h \ - BasicQosOkBody.h \ - BasicRecoverBody.h \ - BasicRejectBody.h \ - BasicReturnBody.h \ - ChannelAlertBody.h \ - ChannelCloseBody.h \ - ChannelCloseOkBody.h \ - ChannelFlowBody.h \ - ChannelFlowOkBody.h \ - ChannelOpenBody.h \ - ChannelOpenOkBody.h \ - ConnectionCloseBody.h \ - ConnectionCloseOkBody.h \ - ConnectionOpenBody.h \ - ConnectionOpenOkBody.h \ - ConnectionRedirectBody.h \ - ConnectionSecureBody.h \ - ConnectionSecureOkBody.h \ - ConnectionStartBody.h \ - ConnectionStartOkBody.h \ - ConnectionTuneBody.h \ - ConnectionTuneOkBody.h \ - DtxSelectBody.h \ - DtxSelectOkBody.h \ - DtxStartBody.h \ - DtxStartOkBody.h \ - ExchangeDeclareBody.h \ - ExchangeDeclareOkBody.h \ - ExchangeDeleteBody.h \ - ExchangeDeleteOkBody.h \ - FileAckBody.h \ - FileCancelBody.h \ - FileCancelOkBody.h \ - FileConsumeBody.h \ - FileConsumeOkBody.h \ - FileDeliverBody.h \ - FileOpenBody.h \ - FileOpenOkBody.h \ - FilePublishBody.h \ - FileQosBody.h \ - FileQosOkBody.h \ - FileRejectBody.h \ - FileReturnBody.h \ - FileStageBody.h \ - QueueBindBody.h \ - QueueBindOkBody.h \ - QueueDeclareBody.h \ - QueueDeclareOkBody.h \ - QueueDeleteBody.h \ - QueueDeleteOkBody.h \ - QueuePurgeBody.h \ - QueuePurgeOkBody.h \ - StreamCancelBody.h \ - StreamCancelOkBody.h \ - StreamConsumeBody.h \ - StreamConsumeOkBody.h \ - StreamDeliverBody.h \ - StreamPublishBody.h \ - StreamQosBody.h \ - StreamQosOkBody.h \ - StreamReturnBody.h \ - TestContentBody.h \ - TestContentOkBody.h \ - TestIntegerBody.h \ - TestIntegerOkBody.h \ - TestStringBody.h \ - TestStringOkBody.h \ - TestTableBody.h \ - TestTableOkBody.h \ - TunnelRequestBody.h \ - TxCommitBody.h \ - TxCommitOkBody.h \ - TxRollbackBody.h \ - TxRollbackOkBody.h \ - TxSelectBody.h \ - TxSelectOkBody.h |