Author: aconway
Date: Mon Dec  4 09:03:39 2006
New Revision: 482255

URL: http://svn.apache.org/viewvc?view=rev&rev=482255
Log:
2006-12-01  Jim Meyering  <[EMAIL PROTECTED]>

        * configure.ac: Use an automake conditional to indicate when we
        have access to files outside of the current hierarchy, and when
        we have the tools (java and javac) to build some generated files.
        * gen/Makefile.am: Don't use $(abs_srcdir); not needed.
        (timestamp): Depend on java sources and C++ template files,
        if we're building in a qpid tree.
        Use $(JAVA) and $(JAVAC), rather than hard-coding those names.
        (gen-src.mk) [$(java_sources), $(cxx_templates)]: New rules to
        generate these lists of file names.

        * bootstrap: Also generate gen/gen-src.mk.
        But do that only if we're in a qpid hierarchy.
        Redirect make's stdout to /dev/null.

Removed:
    incubator/qpid/trunk/qpid/cpp/gen/gen-src.mk
Modified:
    incubator/qpid/trunk/qpid/cpp/bootstrap
    incubator/qpid/trunk/qpid/cpp/configure.ac
    incubator/qpid/trunk/qpid/cpp/gen/Makefile.am

Modified: incubator/qpid/trunk/qpid/cpp/bootstrap
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/bootstrap?view=diff&rev=482255&r1=482254&r2=482255
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/bootstrap (original)
+++ incubator/qpid/trunk/qpid/cpp/bootstrap Mon Dec  4 09:03:39 2006
@@ -4,10 +4,19 @@
 autoheader
 libtoolize --automake
 
+# If we're building in the qpid tree, we can generate
+# some Makefile snippets:
+
+if test -d ../gentools && test -d ../specs; then
+  (cd gen && rm -f gen-src.mk
+    perl -ne '/^(abs_srcdir|if|else|endif|include)\b/ or print' Makefile.am \
+       | make -f - abs_srcdir=`pwd` srcdir=. gen-src.mk > /dev/null )
+fi
+
 # Generate (for automake) lots of repetitive parts of tests/Makefile.am.
 (cd tests && rm -f gen.mk
   perl -ne '/^include / or print' Makefile.am \
-      | make -f - abs_srcdir=`dirname $(pwd)` gen.mk )
+      | make -f - abs_srcdir=`dirname $(pwd)` gen.mk > /dev/null )
 
 automake
 autoconf

Modified: incubator/qpid/trunk/qpid/cpp/configure.ac
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/configure.ac?view=diff&rev=482255&r1=482254&r2=482255
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/configure.ac (original)
+++ incubator/qpid/trunk/qpid/cpp/configure.ac Mon Dec  4 09:03:39 2006
@@ -33,6 +33,19 @@
  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.
+build=yes
+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([BUILD_IN_MESSAGE_TREE], [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.

Modified: incubator/qpid/trunk/qpid/cpp/gen/Makefile.am
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/gen/Makefile.am?view=diff&rev=482255&r1=482254&r2=482255
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/gen/Makefile.am (original)
+++ incubator/qpid/trunk/qpid/cpp/gen/Makefile.am Mon Dec  4 09:03:39 2006
@@ -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 @@
 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 @@
        ( echo 'generated_sources = \'                                  \
          && ls *.cpp *.h | sort -u | sed 's/.*/  & \\/;$$s/ \\//'      \
        ) > [EMAIL PROTECTED]
+if BUILD_IN_MESSAGE_TREE
+       ( echo 'java_sources = \'                                       \
+           && find $(gentools_srcdir) -name '*.java'                   \
+               | sort -u | sed 's/.*/  & \\/;$$s/ \\//'                \
+       ) >> [EMAIL PROTECTED]
+       ( echo 'cxx_templates = \'                                      \
+           && find $(gentools_dir)/templ.cpp -name '*.tmpl'            \
+               | sort -u | sed 's/.*/  & \\/;$$s/ \\//'                \
+       ) >> [EMAIL PROTECTED]
+endif
        mv [EMAIL PROTECTED] $@


Reply via email to