qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jim Meyering <...@meyering.net>
Subject Re: bootstrap problem
Date Tue, 05 Dec 2006 10:59:27 GMT
Alan Conway <aconway@redhat.com> wrote:
> Hi Jim,
>
> I'm still having problems with bootstrap in a fresh checkout:
>
> [aconway@scooter cpp]$ ./bootstrap
> /bin/sh: AmqpClass.java: command not found
> /bin/sh: line 1: -cp: command not found
> make: *** [timestamp] Error 127
> automake: cannot open < gen/gen-src.mk: No such file or directory
>
> The problem seems to be the use of an undefined variable $(JAVA) in the
> sh-filtered version of gen/Makefile.am. You mentioned this is set by
> autoconf, but at this point we haven't run autoconf, so I don't see how
> it can be set.

Ahh... "in a fresh checkout".  Now I see.  Sorry it took so long.
Steven, this ought to solve your problem, too.
Here's a patch for that, along with a small fix for gen/Makefile.am:

2006-12-05  Jim Meyering  <meyering@redhat.com>

	* gen/Makefile.am (timestamp): Remove unnecessary "; \",
	that could have obscured a failure.
	(gen-src.mk): Use echo 'var = '\\, rather than 'var = \'.
	Both work, but emacs' font-lock mode mishandles the latter.

	* bootstrap: Give JAVA and JAVAC default values, and export them.
	Don't define abs_srcdir; no longer needed.
	Also filter out gen/Makefile.am's echo warning: ...
	Add comments.

Index: gen/Makefile.am
===================================================================
--- gen/Makefile.am	(revision 482368)
+++ gen/Makefile.am	(working copy)
@@ -15,9 +15,9 @@
 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)
+	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
@@ -28,15 +28,15 @@

 DISTCLEANFILES = gen-src.mk
 gen-src.mk: timestamp
-	( echo 'generated_sources = \'					\
+	( echo 'generated_sources = '\\					\
 	  && ls *.cpp *.h | sort -u | sed 's/.*/  & \\/;$$s/ \\//'	\
 	) > $@-t
 if BUILD_IN_MESSAGE_TREE
 	( echo if BUILD_IN_MESSAGE_TREE;				\
-	  echo 'java_sources = \'					\
+	  echo 'java_sources = '\\					\
 	    && find $(gentools_srcdir) -name '*.java'			\
 		| sort -u | sed 's/.*/  & \\/;$$s/ \\//';		\
-	  echo 'cxx_templates = \'					\
+	  echo 'cxx_templates = '\\					\
 	    && find $(gentools_dir)/templ.cpp -name '*.tmpl'		\
 		| sort -u | sed 's/.*/  & \\/;$$s/ \\//';		\
 	  echo endif							\
Index: bootstrap
===================================================================
--- bootstrap	(revision 482368)
+++ bootstrap	(working copy)
@@ -4,13 +4,22 @@
 autoheader
 libtoolize --automake

+# These are needed only if you don't already have the gen/*.{h,cpp} files.
+: ${JAVA=java}
+: ${JAVAC=javac}
+export JAVA JAVAC
+
 # If we're building in the qpid tree, we can generate
 # some Makefile snippets:

 if test -d ../gentools && test -d ../specs; then
+  # Transform gen/Makefile.am, removing automake-constructs and the
+  # contents of the sole automake-else clause (the warning), then
+  # use the result to run the rules that create gen-src.mk, a file
+  # that must be created before we run automake.
   (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 )
+    perl -ne '/warning:|^(if|else|endif|include)\b/ or print' Makefile.am \
+	| make -f - srcdir=. gen-src.mk > /dev/null )
 fi

 # Generate (for automake) lots of repetitive parts of tests/Makefile.am.

Mime
View raw message