Chapter 22. Differences from make

Aap recipes looks like a Makefile. But there are many differences. The most important an unexpected ones are mentioned here.

Build if file does not exist

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:

For example, this dependency is often used in a Makefile to create a symbolic link when it doesn't exist yet:

    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.