Build Environment Effort/Zen of gbuild
From Apache OpenOffice Wiki
Zen of gbuild
- One use make process, do not recurse.
- Always have good dependencies and good clean targets.
- Have exactly one $(OUTDIR) target per declaration file.
- Use only tools as defined by POSIX:2008 and supported on all platforms. Exception: GNU extensions are allowed for cp, make, tar and touch.
- Dont use Perl or Python for tooling, use POSIX sh, POSIX awk and GNU make instead.
- If those dont cut it, use C/C++ (Or ask yourself if you are doing something wrong).
- Use the gb_Output_* functions for notifications.
- Keep all platform specific stuff confined in the platform subdirectory of gbuild.
- Never use relative paths, only absolute paths starting with $(OUTDIR), $(WORKDIR) and the repository roots (for example $(SRCDIR)) should be used.
- Adhere to the Zen of Python, for it is valid in any language.