summaryrefslogtreecommitdiff
path: root/cpp/gen/Makefile.am
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/gen/Makefile.am')
-rw-r--r--cpp/gen/Makefile.am38
1 files changed, 22 insertions, 16 deletions
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 $@