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, 38 insertions, 0 deletions
diff --git a/cpp/gen/Makefile.am b/cpp/gen/Makefile.am
new file mode 100644
index 0000000000..1f38a419d6
--- /dev/null
+++ b/cpp/gen/Makefile.am
@@ -0,0 +1,38 @@
+# TODO aconway 2006-11-30: nasty hack, should be done by automake?
+abs_srcdir = @abs_srcdir@
+
+include gen-src.mk
+
+BUILT_SOURCES = $(generated_sources)
+
+# Distribute the generated sources, at least for now, since
+# the generator code is in java.
+EXTRA_DIST = $(BUILT_SOURCES)
+MAINTAINERCLEANFILES = $(BUILT_SOURCES)
+
+gentools_dir = $(abs_srcdir)/../../gentools
+spec_dir = $(abs_srcdir)/../../specs
+spec = $(spec_dir)/amqp-8.0.xml
+
+# 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
+ touch timestamp
+
+EXTRA_DIST += timestamp
+$(generated_sources): timestamp
+
+EXTRA_DIST += gen-src.mk
+gen-src.mk: timestamp
+ ( echo 'generated_sources = \' \
+ && ls *.cpp *.h | sort -u | sed 's/.*/ & \\/;$$s/ \\//' \
+ ) > $@-t
+ mv $@-t $@