Thanks, Giri. This makes sense. For my part, I was really just looking for a way to run "ant clean package" on Mac without triggering autoreconf and the other native build steps. Moving these from depends to antcalls inside compile-core-native accomplishes the same goal, and like you said, it preserves the behavior of not needing to set the compile.native property when you're already calling the targets related to native build.
Regarding task-controller, the difficulty is that task-controller is called as a subant of package, which makes it difficult to test the package target on Mac, where task-controller fails to compile. Could we set this up in a way similar to compile-native, which calls compile-core-native, and explicitly turns on the compile.native parameters? Then, inclusion of task-controller would be controlled by the compile.native flag when running "ant package", but users who run "ant task-controller" would still get the existing behavior without needing to pass the extra parameter. (Then, there would be no need to mark this "incompatible".)