Do NOT use the following constructs:
- %.foo: %.bar rules. They are not portable.
- $< in a custom rule. It's not portable. $@ is, though.
- BUILT_SOURCES. Automake doesn't support it properly, it makes $(BUILT_SOURCES) a dependency on Makefiles, so e.g. they are regenerated when you call make clean twice.
- Obviously, don't call gcc or ld yourself.