Charmonizer currently assumes that every make utility except nmake supports pattern rules. This was overly optimistic as there are some versions of BSD make that don't support pattern rules. Pattern rules are used in Charmonizer-generated Makefiles to pass per-directory compiler options.
- Always add an explicit rule for every object file.
- Feature test for pattern rules or GNU make.
- Per-directory Makefiles.