diff options
| author | Alan Conway <aconway@apache.org> | 2007-08-01 16:50:33 +0000 |
|---|---|---|
| committer | Alan Conway <aconway@apache.org> | 2007-08-01 16:50:33 +0000 |
| commit | 28b22a308cb6cf0232067636fb6676a4c96d82f7 (patch) | |
| tree | 1f5b4cd32c425ffda3a7295dd47f0aaba3c0ce25 /cpp/src | |
| parent | 9235b5d09b3273c7c495ff266e18781fad363a9b (diff) | |
| download | qpid-python-28b22a308cb6cf0232067636fb6676a4c96d82f7.tar.gz | |
* src/generate.sh: Moved requirements test to configure.ac
* rubygen: Cleanup and improvements, template for cluster work.
* configure.ac:
- support for ruby code generator + cleanup.
- moved "can generate" tests to configure.ac
- removed redundant APR stuff.
* bootstrap: Remove codegen from bootstrap, all in config/make.
* src/Makefile.am (libqpidcommon_la_LIBADD):
- Ruby code generator.
- Improvements to existing generator rules.
- Removed APR stuff.
* configure.ac (CPPUNIT_CXXFLAGS): Removed APR stuff.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@561869 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src')
| -rw-r--r-- | cpp/src/Makefile.am | 97 | ||||
| -rwxr-xr-x | cpp/src/generate.sh | 20 | ||||
| -rw-r--r-- | cpp/src/tests/Makefile.am | 3 | ||||
| -rwxr-xr-x | cpp/src/tests/ais_check | 2 | ||||
| -rw-r--r-- | cpp/src/tests/cluster.mk | 1 |
5 files changed, 73 insertions, 50 deletions
diff --git a/cpp/src/Makefile.am b/cpp/src/Makefile.am index 458f28abd2..d4293b70fd 100644 --- a/cpp/src/Makefile.am +++ b/cpp/src/Makefile.am @@ -1,31 +1,75 @@ SUBDIRS = . tests -# Generated code --include generate.mk +## Generated code -generate.mk $(generated_cpp) $(generated_h): gen/timestamp +# Note: generated soure and makefiles included in distribution so a +# distribution can be built without code generation tools and XML +# sources. -gen/timestamp: generate.sh $(generator) - $(srcdir)/generate.sh - touch $@ +EXTRA_DIST= $(platform_dist) + +EXTRA_DIST += gen/generate.mk generate.sh $(generated_cpp) $(generated_h) \ + rubygen.mk $(rgen_srcs) + +# AMQP_XML is defined in ../configure.ac +specs=@AMQP_XML@ $(top_srcdir)/xml/cluster.xml + +# Makefiles are either generated or copied from $srcdir. +sinclude gen/generate.mk +sinclude rubygen.mk + +DISTCLEANFILES=gen/generate.mk rubygen.mk + +if GENERATE + +# Java code generator. +# Must generate into a separate gen directory because otherwise +# there's no way to figure out which files are generated. + +gentools_dir=$(top_srcdir)/gentools + +gen/generate.mk: generate.sh $(specs) $(generator) + env gentools_dir=$(gentools_dir) specs="$(specs)" $(srcdir)/generate.sh + +gen $(generated_cpp) $(generated_h): gen/generate.mk # Empty rule in case a generator file is renamed/removed. $(generator): -DISTCLEANFILES=generate.mk - -clean-gen: +maintainer-clean-local: rm -rf gen -maintainer-clean-local: - clean-gen +# Ruby generator. + +rgen_dir=$(top_srcdir)/rubygen +rgen_tdir=$(rgen_dir)/templates +rgen_script=$(rgen_dir)/generate +rgen_cmd=ruby -I $(rgen_dir) $(rgen_script) + +rgen_templates=$(rgen_tdir)/frame_body_lists.rb + +rubygen.mk: $(rgen_script) $(specs) $(rgen_templates) + echo rgen_srcs=`$(rgen_cmd) - $(specs) $(rgen_templates)` > $@ + echo rgen_srcs=`$(rgen_cmd) . $(specs) $(rgen_templates)` -EXTRA_DIST=generate.sh $(generated_cpp) $(generated_h) $(platform_dist) +$(rgen_srcs): rubygen.mk -AM_CXXFLAGS = $(WARNING_CFLAGS) $(APR_CXXFLAGS) +else # !GENERATE +# If not generating, copy generated makefiles from source dir to build dir. +gen/generate.mk: + cp $(srcdir)/$@ $@ +rubygen.mk: + cp $(srcdir)/$@ $@ +endif # GENERATE + +## Compiler flags + +AM_CXXFLAGS = $(WARNING_CFLAGS) AM_LDFLAGS = -version-info $(LIBTOOL_VERSION_INFO_ARG) INCLUDES = -Igen -I$(srcdir)/gen +## Automake macros to build libraries and executables. + qpidd_LDADD = \ libqpidbroker.la \ libqpidcommon.la @@ -33,21 +77,6 @@ qpidd_LDADD = \ sbin_PROGRAMS = qpidd qpidd_SOURCES = qpidd.cpp -apr_plat_src = \ - qpid/sys/apr/APRBase.cpp \ - qpid/sys/apr/APRPool.cpp \ - qpid/sys/apr/Socket.cpp \ - qpid/sys/apr/Time.cpp \ - qpid/sys/apr/Thread.cpp \ - qpid/sys/apr/Shlib.cpp - -apr_plat_hdr = \ - qpid/sys/apr/APRBase.h \ - qpid/sys/apr/APRPool.h \ - qpid/sys/apr/Condition.h \ - qpid/sys/apr/Mutex.h \ - qpid/sys/apr/Thread.h - posix_plat_src = \ qpid/sys/epoll/EpollPoller.cpp \ qpid/sys/posix/check.cpp \ @@ -64,15 +93,8 @@ posix_plat_hdr = \ qpid/sys/posix/Mutex.h \ qpid/sys/posix/Thread.h -if USE_APR_PLATFORM - platform_dist=$(posix_plat_src) $(posix_plat_hdr) - platform_src = $(apr_plat_src) - platform_hdr = $(apr_plat_hdr) -else - platform_dist=$(apr_plat_src) $(apr_plat_hdr) - platform_src = $(posix_plat_src) - platform_hdr = $(posix_plat_hdr) -endif +platform_src = $(posix_plat_src) +platform_hdr = $(posix_plat_hdr) lib_LTLIBRARIES = libqpidcommon.la libqpidbroker.la libqpidclient.la @@ -91,7 +113,6 @@ libqpidcommon_la_LIBADD = \ -lboost_program_options \ -luuid \ libLogger.la \ - $(APR_LIBS) \ $(LIB_DLOPEN) \ $(LIB_CLOCK_GETTIME) diff --git a/cpp/src/generate.sh b/cpp/src/generate.sh index 1d8f946ecd..2cc31ff922 100755 --- a/cpp/src/generate.sh +++ b/cpp/src/generate.sh @@ -1,19 +1,19 @@ # !/bin/sh # Generate code from AMQP specification. -# srcdir must +# specs and gentools_dir are set by Makefile # -srcdir=`dirname $0` set -e -gentools_dir="$srcdir/../gentools" -specs_dir="$srcdir/../../specs" -specs="$specs_dir/amqp-transitional.0-10.xml $srcdir/../xml/cluster.xml" - test -z "$JAVA" && JAVA=java ; -test -z "$JAVAC" && JAVAC=javac ; +test -z "$JAVAC" && JAVAC=javac ; + +checkspecs() { + for s in $specs; do test -f $s || return 1; done + return 0 +} # Can we generate code? -if { test -d $gentools_dir && test -d $specs_dir && \ +if { test -d $gentools_dir && checkspecs && which $JAVA && which $JAVAC; } > /dev/null; then echo "Generating code." @@ -40,8 +40,8 @@ make_assign() { make_assign "generator" "" $specs \ `find ../gentools \( -name '*.java' -o -name '*.tmpl' \) -print` fi -) > generate.mk-t -mv generate.mk-t generate.mk +) > gen/generate.mk-t +mv gen/generate.mk-t gen/generate.mk diff --git a/cpp/src/tests/Makefile.am b/cpp/src/tests/Makefile.am index 82918c1aec..bc173d61d6 100644 --- a/cpp/src/tests/Makefile.am +++ b/cpp/src/tests/Makefile.am @@ -14,6 +14,7 @@ check_PROGRAMS= check_LTLIBRARIES= TESTS= EXTRA_DIST= +CLEANFILES= # # Unit test programs. @@ -171,7 +172,7 @@ all-am: .valgrind.supp .valgrindrc # ltmain invocations, one may corrupt the temporaries of the other. .NOTPARALLEL: -CLEANFILES=valgrind.out *.log *.vglog .valgrindrc .valgrind.supp dummy_test $(unit_wrappers) +CLEANFILES+=valgrind.out *.log *.vglog .valgrindrc .valgrind.supp dummy_test $(unit_wrappers) MAINTAINERCLEANFILES=gen.mk interop_runner_SOURCES = \ diff --git a/cpp/src/tests/ais_check b/cpp/src/tests/ais_check index 69a0469a26..ce3bbe1b1c 100755 --- a/cpp/src/tests/ais_check +++ b/cpp/src/tests/ais_check @@ -34,6 +34,6 @@ fi FAILED=0 for test in `cat ais_tests`; do - $srcdir/$test || FAILED=`expr $FAILED + 1` + ./$test || FAILED=`expr $FAILED + 1` done exit $FAILED diff --git a/cpp/src/tests/cluster.mk b/cpp/src/tests/cluster.mk index 8b603efb14..092647c9eb 100644 --- a/cpp/src/tests/cluster.mk +++ b/cpp/src/tests/cluster.mk @@ -21,6 +21,7 @@ AIS_TESTS= ais_check: ais_tests ais_tests: echo $(AIS_TESTS) >$@ +CLEANFILES+=ais_tests AIS_TESTS+=Cpg check_PROGRAMS+=Cpg |
