
On 02/26/2013 11:36 PM, harryxiyou wrote:
On Wed, Feb 27, 2013 at 11:04 AM, Eric Blake <eblake@redhat.com> wrote: [...]
You trimmed too much of your make line to tell us what was happening. It might also help to run 'make V=1' to get the full command line being attempted. I have to wonder if you have an unexpanded '$JAVA_HOME' injected somewhere into your configure output, where make is trying to compute $J (empty) followed by literal 'AVA_HOME'; maybe you should figure out what in your build setup is providing that bad variable value (correct would likely be '${JAVA_HOME}'). But I cannot reproduce your build failure, so it is something in your environment and not in libvirt itself that is causing you grief.
Eric, i was dizzy. Actually, i don't know why automake recognized $JAVA_HOME as $AVA_HOME.
Make is not like shell. In shell, {} is optional, required only if characters after the variable name being expanded could be part of a variable name. In make, {} (or ()) is mandatory for any variable whose name is longer than one byte. Thus, in make, $JAVA_HOME is the same as ${J}AVA_HOME; while in shell, it is the same as ${JAVA_HOME} - quite different. At any rate, since you didn't define $J in your makefile, make was expanding ${J} to the empty string, which explains why your error message then mentions AVA_HOME.
However, i solved the problem like following.
JVM_DIR=${shell echo ${JAVA_HOME}}
What a waste of resources - that forks a shell to do an echo every time that you use ${JVM_DIR}. Much simpler to write as: JVM_DIR=${JAVA_HOME} I'm still not even sure why you need ${JVM_DIR}, and can't just use ${JAVA_HOME} directly, nor why you are trying to add pieces of Java into libvirt (libvirt itself is written in C, not Java, for a reason). I guess I'll just have to wait until I see a patch to understand what this is all about. Good luck. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org