diff options
author | Alan Conway <aconway@apache.org> | 2007-08-17 15:52:07 +0000 |
---|---|---|
committer | Alan Conway <aconway@apache.org> | 2007-08-17 15:52:07 +0000 |
commit | fd00bd1ca14d2ac2add8b0d0dba9477aafebc7d2 (patch) | |
tree | d277cf2d25a29a7688b43be1a008056f5cfdd655 /cpp/src | |
parent | c534d81e9ef0b19a57dce9c115e6a436d9a82320 (diff) | |
download | qpid-python-fd00bd1ca14d2ac2add8b0d0dba9477aafebc7d2.tar.gz |
* Fixes for code generation.
- Generate make fragments in $(srcdir) to fix VPATH builds.
- rubygen: generates its own .mk fragment
- rubygen: moved template info from Makefile.am to generated rubygen.mk, fixes circular dependency between Makefile and rubygen.mk
- removed unused templates.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@567072 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/Makefile.am | 51 | ||||
-rwxr-xr-x | cpp/src/generate.sh | 3 |
2 files changed, 15 insertions, 39 deletions
diff --git a/cpp/src/Makefile.am b/cpp/src/Makefile.am index 977db7ea36..32f5b3845b 100644 --- a/cpp/src/Makefile.am +++ b/cpp/src/Makefile.am @@ -1,24 +1,20 @@ SUBDIRS = . tests +EXTRA_DIST= $(platform_dist) + ## Generated code # Note: generated soure and makefiles included in distribution so a # distribution can be built without code generation tools and XML # sources. -EXTRA_DIST= $(platform_dist) - -EXTRA_DIST += generate.mk generate.sh $(generated_cpp) $(generated_h) \ - rubygen.mk $(rgen_srcs) +# This phony target is needed by generated makefile fragments: +force: # AMQP_XML is defined in ../configure.ac specs=@AMQP_XML@ $(top_srcdir)/xml/cluster.xml -# Makefiles are either generated or copied from $srcdir. -include generate.mk -include rubygen.mk - -DISTCLEANFILES=generate.mk rubygen.mk +EXTRA_DIST += generate.mk generate.sh $(generated_cpp) $(generated_h) $(rgen_srcs) if GENERATE @@ -28,7 +24,7 @@ if GENERATE gentools_dir=$(top_srcdir)/gentools -generate.mk $(generated_cpp) $(generated_h): generate.timestamp +$(srcdir)/generate.mk $(generated_cpp) $(generated_h): generate.timestamp generate.timestamp: generate.sh $(specs) $(generator) env gentools_dir=$(gentools_dir) specs="$(specs)" $(srcdir)/generate.sh touch $@ @@ -40,37 +36,16 @@ maintainer-clean-local: rm -rf gen # Ruby generator. - rgen_dir=$(top_srcdir)/rubygen -rgen_tdir=$(rgen_dir)/templates -rgen_cmd=ruby -I $(rgen_dir) $(rgen_dir)/generate - -rgen_templates=$(rgen_tdir)/MethodHolder.rb \ - $(rgen_tdir)/MethodBodyConstVisitor.rb \ - $(rgen_tdir)/frame_body_lists.rb \ - $(rgen_tdir)/Session.rb \ - $(rgen_tdir)/all_method_bodies.rb \ - $(rgen_tdir)/Proxy.rb - -rgen_generator=$(rgen_dir)/generate \ - $(rgen_dir)/amqpgen.rb \ - $(rgen_dir)/cppgen.rb - -rubygen.mk $(rgen_srcs): rubygen.timestamp -rubygen.timestamp: $(rgen_generator) $(specs) $(rgen_templates) - srcs=`$(rgen_cmd) . $(specs) $(rgen_templates) ` && { \ - echo -n "rgen_srcs= "; \ - for f in $$srcs; do echo "\\"; echo -n " $$f "; done; \ - echo; } > rubygen.mk - touch $@ -else # !GENERATE -# If not generating, copy generated makefiles from source dir to build dir. -generate.mk: - cp $(srcdir)/$@ $@ -rubygen.mk: - cp $(srcdir)/$@ $@ +rgen_cmd=ruby -I $(rgen_dir) $(rgen_dir)/generate . $(specs) all $(srcdir)/rubygen.mk + endif # GENERATE +include $(srcdir)/generate.mk +include $(srcdir)/rubygen.mk + +DISTCLEANFILES=generate.mk rubygen.mk + # Code generated by C++ noinst_PROGRAMS=generate_MethodHolderMaxSize_h generate_MethodHolderMaxSize_h_SOURCES=generate_MethodHolderMaxSize_h.cpp diff --git a/cpp/src/generate.sh b/cpp/src/generate.sh index 3869696bc7..3582893f24 100755 --- a/cpp/src/generate.sh +++ b/cpp/src/generate.sh @@ -7,6 +7,7 @@ set -e test -z "$JAVA" && JAVA=java ; test -z "$JAVAC" && JAVAC=javac ; +srcdir=`dirname $0` checkspecs() { for s in $specs; do test -f $s || return 1; done return 0 @@ -41,7 +42,7 @@ make_assign() { `find ../gentools \( -name '*.java' -o -name '*.tmpl' \) -print` fi ) > generate.mk-t -mv generate.mk-t generate.mk +mv generate.mk-t $srcdir/generate.mk |