Aap recipes looks like a Makefile. But there are many differences. The most important an unexpected ones are mentioned here.
In a Makefile a dependency with only a target is not executed if the target exits. With Aap the build commands will be executed in more situations:
when the build commands were never executed
when the build commands have changed
gvim: ln -s vim gvim |
When running Aap with this recipe for the first time and the "gvim" link already exists, you will get an error message.
To avoid this problem, set the buildcheck attribute to an empty string:
gvim: {buildcheck=} :sys ln -s vim gvim |
Note: if the symbolic link exists but the file that it points to doesn't exist you still get an error. But that's probably what you wanted.