ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nolan Ring <Nolan.R...@sun.com>
Subject Re: trycatch and recursive make
Date Fri, 24 Jan 2003 21:49:31 GMT
Ok, thanks.  I'll dig further into what's going on with make that it's 
so unhelpful :-)

Dominique Devienne wrote:

>Looks like the problem is with your make, which doesn't propagate the error
>code of a nested make failure up the levels, since returning 0, meaning
>everything's peachy, so <exec> doesn't throw, and thus you don't <catch>
>anything. --DD
>
>-----Original Message-----
>From: Nolan Ring [mailto:Nolan.Ring@sun.com] 
>Sent: Friday, January 24, 2003 3:37 PM
>To: Ant Users List
>Subject: Re: trycatch and recursive make
>
>Sorry about that.  I actually do have failonerror set to false.  
>
>Here's the snippet of code I ran this time - basically I get the same 
>results:
>
> <target name="csrc" depends="init">
>      <exec executable="make" dir="${csrcDir}" failonerror="${failonerror}"
>resultproperty="result" >
>          <arg line="-f Makefile.sun CSRC_ROOT=${csrcDir}
>AGENT_ROOT=${basedir}"/>
>      </exec>
>      <echo message="Resultproperty is:  ${result} />
> </target>
>
>If it fails immediately out of the exec I get:
>csrc:
>
>     [exec] make: Makefile: No such file or directory
>     [exec] make: *** No rule to make target `Makefile'.  Stop.
>     [exec] Result: 2
>     [echo] Resultproperty is: 2
>
>Failures at a deeper level:
>csrc:
>     [exec] make[1]: Entering directory
>`/var/AccuRev_ws/marwks33_oriole_Plat_Int/agent/csrc/uagent/src'
>     [exec] make[1]: Leaving directory
>`/var/AccuRev_ws/marwks33_oriole_Plat_Int/agent/csrc/uagent/src'
>     [exec] make[1]: Makefile: No such file or directory
>     [exec] make[1]: *** No rule to make target `Makefile'.  Stop.
>     [exec] make[1]: Entering directory
>`/var/AccuRev_ws/marwks33_oriole_Plat_Int/agent/csrc/arp/server'
>     [exec] make[1]: Makefile: No such file or directory
>     [exec] make[1]: *** No rule to make target `Makefile'.  Stop.
>     [exec] make[1]: Leaving directory
>`/var/AccuRev_ws/marwks33_oriole_Plat_Int/agent/csrc/arp/server'
>     [echo] Resultproperty is: 0
>
>What I want to do with <catch> is get a uniform message into the logs when
>we have failures - that makes parsing/manipulating them easier.
>
>Thanks again...
>
>Nolan
>
>
>
>Dominique Devienne wrote:
>
>  
>
>>Strange. And without <trycatch>, what do you get? BTW, why can you just use
>>    
>>
>
>  
>
>><exec executable="make" failonerror="false" resultproperty="result"/>
>>
>>What do you really do in <catch>?
>>
>>Also, I'm not sure resultproperty is set without failonerror="false"...
>>    
>>
>--DD
>  
>
>>-----Original Message-----
>>From: Nolan Ring [mailto:Nolan.Ring@sun.com] 
>>Sent: Friday, January 24, 2003 2:28 PM
>>To: ant-user@jakarta.apache.org
>>Subject: trycatch and recursive make
>>
>>Hi,
>>
>>As a part of our build process we are exec'ing a call to make ... which, 
>>in turn, calls make, which in turn calls make ... etc, etc, etc.
>>
>>If the initial call to make from the build.xml fails trycatch catches 
>>the error and echos the correct message.  If, however, make fails 
>>several levels down, trycatch doesn't  return the "catch" message. 
>>Is there anyway to capture these errors from exec?
>>
>>Here's the build.xml snippet:
>>
>><target name="csrc" depends="init">
>>  <trycatch>
>>  <try>
>>     <exec executable="make" dir="${csrcDir}" resultproperty="result" >
>>         <arg line="-f Makefile.sun CSRC_ROOT=${csrcDir} 
>>AGENT_ROOT=${basedir}"/>
>>     </exec>
>>  </try>
>>  <catch>
>>     <echo>CAUGHT MAKE FAILURE</echo>
>>  </catch>
>>
>></trycatch>
>></target>
>>
>>The output if the exec of make fails immediately is the following:
>>
>>csrc:
>>   [exec] make: Makefile: No such file or directory
>>   [exec] make: *** No rule to make target `Makefile'.  Stop.
>>[trycatch] Caught exception: exec returned: 2
>>   [echo] CAUGHT MAKE FAILURE
>>   [echo] Resultproperty is: 0
>>
>>If a failure occurs deeper down in the make structure all I get is the 
>>following:
>>csrc:
>>   [exec] make[1]: Entering directory 
>>`/var/AccuRev_ws/marwks33_oriole_Plat_Int/agent/csrc/uagent/src'
>>   [exec] make[1]: Makefile: No such file or directory
>>   [exec] make[1]: *** No rule to make target `Makefile'.  Stop.
>>   [exec] make[1]: Leaving directory 
>>`/var/AccuRev_ws/marwks33_oriole_Plat_Int/agent/csrc/uagent/src'
>>   [exec] make[1]: Entering directory 
>>`/var/AccuRev_ws/marwks33_oriole_Plat_Int/agent/csrc/arp/server'
>>   [exec] make[1]: Makefile: No such file or directory
>>   [exec] make[1]: Leaving directory 
>>`/var/AccuRev_ws/marwks33_oriole_Plat_Int/agent/csrc/arp/server'
>>   [exec] make[1]: *** No rule to make target `Makefile'.  Stop.
>>   [echo] Resultproperty is: 0
>>
>>Thanks for any help.
>>
>>Nolan
>>    
>>
>
>--
>To unsubscribe, e-mail:   <mailto:ant-user-unsubscribe@jakarta.apache.org>
>For additional commands, e-mail: <mailto:ant-user-help@jakarta.apache.org>
>
>  
>



--
To unsubscribe, e-mail:   <mailto:ant-user-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:ant-user-help@jakarta.apache.org>


Mime
View raw message