diff options
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 |