Folks i have two questions

1. I want to check whether an environment variable is defined or not. e-g i
want to check whether the variable JAVA_HOME is set or not. How can i do
that. Currently the way i am doing that is :

  <property environment="env"/>
    <property name="java_home" value="${env.JAVA_HOME}"/>


    <target name="all">
    <condition
         property="*java.is.not.set*">
*        <contains string="${java_home}" substring="JAVA_HOME"/> // the line
doing it*
    </condition>
    <antcall target="do_if_java_is_true"/>
    <antcall target="do_if_java_is_false"/>
</target>

so in the highlighted line, i am checking the whether the variable
$java_home contains JAVA_HOME or not. If it does, then it means that
JAVA_HOME is not set else it is set.

Now i want to ask that is it the right way to check or is there any better
way?

2. The second question is that based on the above condition, i want to
execute separate targets. i-e if JAVA_HOME is set, then execute a different
target, else execute a different task. The way i am doing it is i am calling
i am calling two antcall as

*    <antcall target="do_if_java_is_true"/>*
*    <antcall target="do_if_java_is_false"/>*


<target name="do_if_java_is_false"
   if="java.is.not.set"  depends="compile,jars,clean>

</target>
<target name="do_if_java_is_true"
    unless="java.is.not.set"  depends="javaspecific,compile,jars,clean>
</target>


Now, the problem is that though i am able to detect somehow that whether
java is defined or not. But it executes both the targets i-e the "depends"
attribute of both the targets gets executed whereas i dont want the depends
attribute of both the target to be executed....


Can any help how can i correct Or do it more elegantly??


-- 
Kamran Hameed

hpc.seecs.edu.pk/~kamran

Reply via email to