Question: I'm using ant to package a JavaFX-based application. No problem with doing the actual JavaFX stuff, except that `fx:jar` doesn't support the `if` or `condition` tags. I want to dynamically include some platform-specific libraries, depending on a variable i set. Currently I have this:

```
<fx:fileset dir="/my/classes/folder">
    <include name="**/*lib1.dylib" if="??"/>
    <include name="**/*lib2.dll" if="??" />
    <include name="**/*lib3.dll" if="??" />
</fx:fileset>

```

I want to run this target multiple times, with a different variable value depending on the platform. It seems you can not do something like:

```
    <include name="**/*lib3.dll" if="platform=mac" />

```

So I'm stuck. Please help!

Answer: 
Many readers of this forum expect to see *some* code that you tried.... 

```
program flow 
    version 8  // will work on almost all Stata in current use 
    gettoken what garbage : 0 
    if "`what'" == "" | "`garbage'" != "" | !inlist("`what'", "e", "i")  { 
       di as err "syntax is flow e or flow i"
       exit 198 
    }

    if "`what'" == "e" { 
       <code for e>
    }
    else if "`what'" == "i" { 
       <code for i>
    } 
end 

```

The last `if` condition is redundant as we've already established that the user typed `e` or `i`. Edit it out according to taste.
Given your comment on the answer by @NickCox, I assume you tried something like this:

```
program flow
    version 8
    syntax [, i e]
    if "`i'`e'" == "" {
        di as err "either the i or the e option needs to be specified"
        exit 198
    }
    if "`i'" != "" & "`e'" != "" {
        di as err "the i and e options cannot be specified together"
        exit 198
    }
    if "`e'" != "" {
        <code for e>
    }
    if "`i'" != "" {
        <code for i>
    }
end

```

After that you call `flow` like this: `flow, i` or `flow, e`. Notice the comma, this is now necessary (but not in the command by @NickCox) because you made them options.