diff options
author | Alan Conway <aconway@apache.org> | 2006-12-04 17:03:39 +0000 |
---|---|---|
committer | Alan Conway <aconway@apache.org> | 2006-12-04 17:03:39 +0000 |
commit | b9d2b4bc80748d0a6a7209d0ce5dce97565c83ae (patch) | |
tree | f5f3fcfe6f9adb6f4f3fc5f6bbbce21ff0dd5c58 | |
parent | d7bd6ba4267f9c2ff2ce4165f226cf1317013005 (diff) | |
download | qpid-python-b9d2b4bc80748d0a6a7209d0ce5dce97565c83ae.tar.gz |
2006-12-01 Jim Meyering <meyering@redhat.com>
* configure.ac: Use an automake conditional to indicate when we
have access to files outside of the current hierarchy, and when
we have the tools (java and javac) to build some generated files.
* gen/Makefile.am: Don't use $(abs_srcdir); not needed.
(timestamp): Depend on java sources and C++ template files,
if we're building in a qpid tree.
Use $(JAVA) and $(JAVAC), rather than hard-coding those names.
(gen-src.mk) [$(java_sources), $(cxx_templates)]: New rules to
generate these lists of file names.
* bootstrap: Also generate gen/gen-src.mk.
But do that only if we're in a qpid hierarchy.
Redirect make's stdout to /dev/null.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@482255 13f79535-47bb-0310-9956-ffa450edef68
-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 |