You could probably define "if" and "unless" custom attributes in your macro and then use <isset> with ant-contrib's <if> to check them inside of your macro.
Something like this (untested!): <macrodef name="my-macro"> <attribute name="if" default="basedir" /> <attribute name="unless" default="unset.property"/> ... other attributes... <sequential> <if> <and><isset property="@{if}" /><not><isset property="@{unless}"/></not></and> <then> ... do stuff </then> <else /> </if> </sequential> </macrodef> <my-macro if="my.if.property" /> I purposely gave the if and unless attributes default values that cause the macro to proceed when neither are set in the call. basedir should always be set and unset.property will hopefully never be set. -Andrew On 7/30/07, Keith Hatton <[EMAIL PROTECTED]> wrote: > > Hi, > > I have cases where it would be useful to call a macrodef if a property > was set, but to skip it otherwise. If these were targets I could use the > standard Ant if/unless attributes to achieve this behaviour, but > macrodefs are called explicitly at certain points in the build file, > rather than using the Ant dependency model for target execution. I don't > see any corresponding options for a macrodef or (equivalently in my > case) for the sequential task. What's the best way to achieve this? > > Thanks, > Keith > > > Axiom Systems Limited is a limited company registered in England and > Wales. Registered number: 2358771. Registered office: One Forbury > Square, The Forbury, Reading, Berks RG1 3EB > > >