Author: aconway
Date: Fri May 11 13:11:32 2007
New Revision: 537278

URL: http://svn.apache.org/viewvc?view=rev&rev=537278
Log:

* cpp/src/Makefile.am: Move generated code into src. Fix generation script.
* cpp/src/generate.sh: New generator script, simplify & fix some problems.
* cpp/Makefile.am: removed gen subdir
* cpp/bootstrap: remove redundant comment
* cpp/configure.ac: remove generator tests, now in generate.sh
* cpp/gen,cpp/gen/Makefile.am,cpp/gen/gen-src-mk.sh: Replaced by generate.sh
* cpp/src/tests/Makefile.am: Remove client_test from EXTRA_DEPS

Added:
    incubator/qpid/trunk/qpid/cpp/src/generate.sh   (with props)
Removed:
    incubator/qpid/trunk/qpid/cpp/gen/
Modified:
    incubator/qpid/trunk/qpid/cpp/Makefile.am
    incubator/qpid/trunk/qpid/cpp/bootstrap
    incubator/qpid/trunk/qpid/cpp/configure.ac
    incubator/qpid/trunk/qpid/cpp/src/   (props changed)
    incubator/qpid/trunk/qpid/cpp/src/Makefile.am
    incubator/qpid/trunk/qpid/cpp/src/tests/Makefile.am

Modified: incubator/qpid/trunk/qpid/cpp/Makefile.am
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/Makefile.am?view=diff&rev=537278&r1=537277&r2=537278
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/Makefile.am (original)
+++ incubator/qpid/trunk/qpid/cpp/Makefile.am Fri May 11 13:11:32 2007
@@ -9,7 +9,7 @@
   $(SPEC) $(SPEC).in \
   rpm/README.qpidd-devel 
 
-SUBDIRS = gen src docs/api docs/man
+SUBDIRS = src docs/api docs/man
 
 # Update libtool, if needed.
 libtool: $(LIBTOOL_DEPS)

Modified: incubator/qpid/trunk/qpid/cpp/bootstrap
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/bootstrap?view=diff&rev=537278&r1=537277&r2=537278
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/bootstrap (original)
+++ incubator/qpid/trunk/qpid/cpp/bootstrap Fri May 11 13:11:32 2007
@@ -9,9 +9,6 @@
 : ${JAVAC=javac}
 export JAVA JAVAC
 
-# If we're building in the qpid tree, we can generate
-# some Makefile snippets:
-
 # Generate (for automake) lots of repetitive parts of tests/Makefile.am.
 (cd src/tests && rm -f gen.mk
   perl -ne '/^include / or print' Makefile.am \

Modified: incubator/qpid/trunk/qpid/cpp/configure.ac
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/configure.ac?view=diff&rev=537278&r1=537277&r2=537278
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/configure.ac (original)
+++ incubator/qpid/trunk/qpid/cpp/configure.ac Fri May 11 13:11:32 2007
@@ -15,7 +15,7 @@
 # Minimum Autoconf version required.
 AC_PREREQ(2.59)
 
-AC_CONFIG_HEADERS([config.h:config.in])
+AC_CONFIG_HEADERS([src/config.h])
 AC_CONFIG_SRCDIR([qpidc.spec.in])
 
 AC_PROG_CC_STDC
@@ -34,18 +34,6 @@
  esac],
  [enableval=yes])
 
-# Turn on this automake conditional if we are in a qpid
-# hierarchy (i.e. with gentools/ and specs/ sibling directories),
-# and if we have working java + javac.
-AC_CHECK_PROGS([JAVA],  [java],  [no])
-AC_CHECK_PROGS([JAVAC], [javac], [no])
-build=yes
-test x$JAVA  = xno && build=no
-test x$JAVAC = xno && build=no
-test -d $srcdir/gentools || build=no
-test -d $srcdir/../specs    || build=no
-AM_CONDITIONAL([CAN_GENERATE_CODE], [test x$build = xyes])
-
 # Warnings: Enable as many as possible, keep the code clean. Please
 # do not disable warnings or remove -Werror without discussing on
 # qpid-dev list.
@@ -160,7 +148,6 @@
 AC_CONFIG_FILES([
   qpidc.spec
   Makefile
-  gen/Makefile
   src/Makefile
   src/tests/Makefile
   docs/man/Makefile

Propchange: incubator/qpid/trunk/qpid/cpp/src/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Fri May 11 13:11:32 2007
@@ -4,3 +4,7 @@
 .libs
 qpidd
 gen
+config.h.in
+config.h
+stamp-h1
+generate.mk

Modified: incubator/qpid/trunk/qpid/cpp/src/Makefile.am
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/Makefile.am?view=diff&rev=537278&r1=537277&r2=537278
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/Makefile.am (original)
+++ incubator/qpid/trunk/qpid/cpp/src/Makefile.am Fri May 11 13:11:32 2007
@@ -1,9 +1,27 @@
 SUBDIRS = . tests
 
-AM_CXXFLAGS = $(WARNING_CFLAGS) $(APR_CXXFLAGS)
+# Generated code
+-include generate.mk
+
+generate.mk $(generated_cpp) $(generated_h): generate.sh $(generator)
+       $(srcdir)/generate.sh
+
+# Empty rule in case a generator file is renamed/removed.
+$(generator):
+
+DISTCLEANFILES=generate.mk
+
+clean-gen:
+       rm -rf gen
 
-# -I top_builddir for config.h
-INCLUDES = -I$(top_builddir)  -I$(top_srcdir)/gen 
+maintainer-clean-local:
+       clean-gen
+
+EXTRA_DIST=generate.sh $(generated_cpp) $(generated_h) $(platform_dist)
+
+AM_CXXFLAGS = $(WARNING_CFLAGS) $(APR_CXXFLAGS)
+AM_LDFLAGS = -version-info $(LIBTOOL_VERSION_INFO_ARG)
+INCLUDES = -Igen
 
 qpidd_LDADD =                                  \
   libqpidbroker.la                             \
@@ -43,11 +61,11 @@
   qpid/sys/posix/EventChannelThreads.h
 
 if USE_APR
- EXTRA_DIST=$(posix_src) $(posix_hdr)
+ platform_dist=$(posix_src) $(posix_hdr)
  platform_src = $(apr_src)
  platform_hdr = $(apr_hdr)
 else
- EXTRA_DIST=$(apr_src) $(apr_hdr)
+ platform_dist =$(apr_src) $(apr_hdr) $(generated_cpp) $(generated_h)
  platform_src = $(posix_src)
  platform_hdr = $(posix_hdr)
 endif
@@ -59,11 +77,6 @@
   $(APR_LIBS) \
   $(LIB_DLOPEN) \
   $(LIB_CLOCK_GETTIME)
-
-libqpidcommon_la_LDFLAGS = \
-  -version-info \
-  $(LIBTOOL_VERSION_INFO_ARG)
-
 libqpidcommon_la_SOURCES = \
   $(platform_src) \
   qpid/framing/AMQBody.cpp \
@@ -90,10 +103,10 @@
   qpid/framing/Correlator.cpp \
   qpid/framing/Value.cpp \
   qpid/framing/Proxy.cpp \
-  ../gen/qpid/framing/AMQP_ClientProxy.cpp \
-  ../gen/qpid/framing/AMQP_HighestVersion.h \
-  ../gen/qpid/framing/AMQP_MethodVersionMap.cpp \
-  ../gen/qpid/framing/AMQP_ServerProxy.cpp \
+  gen/qpid/framing/AMQP_ClientProxy.cpp \
+  gen/qpid/framing/AMQP_HighestVersion.h \
+  gen/qpid/framing/AMQP_MethodVersionMap.cpp \
+  gen/qpid/framing/AMQP_ServerProxy.cpp \
   qpid/Exception.cpp \
   qpid/ExceptionHolder.cpp \
   qpid/QpidError.cpp \
@@ -104,7 +117,6 @@
 
 
 libqpidbroker_la_LIBADD = libqpidcommon.la -ldaemon -lboost_filesystem
-libqpidbroker_la_LDFLAGS = -version-info $(LIBTOOL_VERSION_INFO_ARG)
 libqpidbroker_la_SOURCES = \
   qpid/broker/AccumulatedAck.cpp \
   qpid/broker/AutoDelete.cpp \
@@ -145,7 +157,6 @@
   qpid/broker/TxPublish.cpp
 
 libqpidclient_la_LIBADD = libqpidcommon.la
-libqpidclient_la_LDFLAGS = -version-info $(LIBTOOL_VERSION_INFO_ARG)
 libqpidclient_la_SOURCES =                     \
   qpid/client/ClientConnection.cpp                             \
   qpid/client/ClientChannel.cpp                                \

Added: incubator/qpid/trunk/qpid/cpp/src/generate.sh
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/generate.sh?view=auto&rev=537278
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/generate.sh (added)
+++ incubator/qpid/trunk/qpid/cpp/src/generate.sh Fri May 11 13:11:32 2007
@@ -0,0 +1,46 @@
+# !/bin/sh
+# Generate code from AMQP specification.
+# srcdir must 
+# 
+srcdir=`dirname $0`
+set -e
+
+gentools_dir="$srcdir/../gentools"
+specs_dir="$srcdir/../../specs"
+specs="$specs_dir/amqp.0-9.xml $specs_dir/amqp-errata.0-9.xml"
+test -z "$JAVA" && JAVA=java ; 
+test -z "$JAVAC" && JAVAC=javac ; 
+
+# Can we generate code?
+if { test -d $gentools_dir && test -d $specs_dir && \
+    which $JAVA && which $JAVAC; } > /dev/null;
+then
+    echo "Generating code."
+    mkdir -p gen/qpid/framing
+    ( cd $gentools_dir/src && $JAVAC `find -name '*.java' -print` ; ) 
+    $JAVA -cp $gentools_dir/src org.apache.qpid.gentools.Main \
+       -c -o gen/qpid/framing -t $gentools_dir/templ.cpp $specs 
+    GENERATED=yes
+fi
+
+# Print a Makefile variable assignment.
+make_assign() {
+    echo -n "$1 = "; shift
+    prefix=$1; shift
+    for f in $*; do echo "\\" ; echo -n "  $prefix$f "; done
+    echo
+}
+
+# Generate a Makefile fragment
+(
+    make_assign "generated_cpp" "" `find gen -name '*.cpp' -print`
+    make_assign "generated_h" "" `find gen -name '*.h' -print`
+    if test x$GENERATED = xyes; then
+       make_assign "generator" "" $specs \
+           `find ../gentools \( -name '*.java' -o -name '*.tmpl' \) -print`
+    fi
+) > generate.mk-t
+mv generate.mk-t generate.mk
+
+
+

Propchange: incubator/qpid/trunk/qpid/cpp/src/generate.sh
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/qpid/trunk/qpid/cpp/src/generate.sh
------------------------------------------------------------------------------
    svn:executable = *

Modified: incubator/qpid/trunk/qpid/cpp/src/tests/Makefile.am
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/tests/Makefile.am?view=diff&rev=537278&r1=537277&r2=537278
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/tests/Makefile.am (original)
+++ incubator/qpid/trunk/qpid/cpp/src/tests/Makefile.am Fri May 11 13:11:32 2007
@@ -59,16 +59,17 @@
 CLIENT_TESTS = client_test quick_topictest
 TESTS = run-unit-tests start_broker $(CLIENT_TESTS) python_tests kill_broker 
daemon_test
 
-EXTRA_DIST =                                   \
-  $(TESTS)                                     \
-  test_env                                     \
-  topictest                                    \
-  .valgrind.supp                               \
-  .valgrindrc-default                          \
-  InProcessBroker.h                            \
-  MockChannel.h                                        \
-  MockConnectionInputHandler.h                 \
-  TxMocks.h                                    \
+EXTRA_DIST =                                                           \
+  test_env                                                             \
+  run-unit-tests start_broker python_tests kill_broker daemon_test     \
+  quick_topictest                                                      \
+  topictest                                                            \
+  .valgrind.supp                                                       \
+  .valgrindrc-default                                                  \
+  InProcessBroker.h                                                    \
+  MockChannel.h                                                                
\
+  MockConnectionInputHandler.h                                         \
+  TxMocks.h                                                            \
   qpid_test_plugin.h
 
 include gen.mk


Reply via email to