diff options
| author | Alan Conway <aconway@apache.org> | 2007-04-14 16:38:02 +0000 |
|---|---|---|
| committer | Alan Conway <aconway@apache.org> | 2007-04-14 16:38:02 +0000 |
| commit | 1b3168902f3e3c03288860e55ba02e5200606cff (patch) | |
| tree | 1d7215ec8a0c762d86104df93acb62d18d8da0db /qpid/cpp/gen | |
| parent | f50d67546eda00e1b0ea875ea4043770405ce7b6 (diff) | |
| download | qpid-python-1b3168902f3e3c03288860e55ba02e5200606cff.tar.gz | |
* Moved code generation into top-level gen/ dir with own Makefile.am
to correctly install generated headers.
* Fixed gen-src.mk/Makefile dependency loop, bootstrap no longer needs
to pre-create gen-src.mk.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@528835 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/gen')
| -rw-r--r-- | qpid/cpp/gen/Makefile.am | 41 | ||||
| -rwxr-xr-x | qpid/cpp/gen/gen-src-mk.sh | 36 |
2 files changed, 77 insertions, 0 deletions
diff --git a/qpid/cpp/gen/Makefile.am b/qpid/cpp/gen/Makefile.am new file mode 100644 index 0000000000..de524374e1 --- /dev/null +++ b/qpid/cpp/gen/Makefile.am @@ -0,0 +1,41 @@ +# +# Generate code from AMQP XML specification. +# +-include gen-src.mk + +BUILT_SOURCES = gen-src.mk $(generated_cpp) $(generated_h) + +# Distribute the generated sources, since the code generator depends +# on tools that may not be available in the build environment. +EXTRA_DIST = $(BUILT_SOURCES) + +# Install generated headers +nobase_include_HEADERS = $(generated_h) + +# Don't attempt to run the code generator unless configure has set +# CAN_GENERATE_CODE, indicating that the amqp.xml and tools needed +# to run the code generator are available. +# +if CAN_GENERATE_CODE +gentools_dir = $(top_srcdir)/gentools +gentools_srcdir = $(gentools_dir)/src/org/apache/qpid/gentools +spec_dir = $(top_srcdir)/../specs +spec = $(spec_dir)/amqp.0-9.xml $(spec_dir)/amqp-errata.0-9.xml + +qpid $(generated_cpp) $(generated_h): $(spec) $(java_sources) $(cxx_templates) + rm -rf qpid + mkdir -p qpid/framing + cd $(gentools_srcdir) && rm -f *.class && $(JAVAC) *.java + $(JAVA) -cp $(gentools_dir)/src org.apache.qpid.gentools.Main \ + -c -o qpid/framing -t $(gentools_dir)/templ.cpp $(spec) + touch qpid + +gen-src.mk: qpid gen-src-mk.sh + ./gen-src-mk.sh $(gentools_dir) $(gentools_srcdir) > $@-t + mv $@-t $@ + +endif + +maintainer-clean-local: + rm -rf qpid gen-src.mk $(gentools_srcdir)/*.class + diff --git a/qpid/cpp/gen/gen-src-mk.sh b/qpid/cpp/gen/gen-src-mk.sh new file mode 100755 index 0000000000..c17bc14307 --- /dev/null +++ b/qpid/cpp/gen/gen-src-mk.sh @@ -0,0 +1,36 @@ +#!/bin/sh +# Generates gen-src.mk makefile fragment, to stdout. +# Usage: <gentools_dir> <gentools_srcdir> + +gentools_dir=$1 +gentools_srcdir=$2 + +backslashify() { + for x in $* ; do + echo " \\" + echo -n " $x" + done + echo ; echo +} + + +echo -n "generated_cpp = " +backslashify `find * -name '*.cpp' -print` +echo -n "generated_h = " +backslashify `find * -name '*.h' -print` + +echo +echo -n "java_sources =" +backslashify `find $gentools_srcdir -name '*.java' -print` +echo -n "cxx_templates =" +backslashify `find $gentools_dir/templ.cpp -name '*.tmpl'` + +cat <<EOF +# Empty rules in case one of these files is removed, +# renamed or no longer generated. +\$(spec): +\$(java_sources): +\$(cxx_templates): +EOF + + |
