Difference between revisions of "Build Environment Effort/Zen of gbuild"

From Apache OpenOffice Wiki
Jump to: navigation, search
(Zen of gbuild)
(Zen of gbuild)
 
(7 intermediate revisions by the same user not shown)
Line 2: Line 2:
 
== Zen of gbuild ==
 
== Zen of gbuild ==
 
* One use make process, [http://miller.emu.id.au/pmiller/books/rmch/ do not recurse].
 
* One use make process, [http://miller.emu.id.au/pmiller/books/rmch/ do not recurse].
* Always have good clean targets.
+
* Always have good dependencies and good clean targets.
* Have exactly one target per declaration file.
+
* Have exactly one $(OUTDIR) target per declaration file.
* Use only tools as defined by [http://en.wikipedia.org/wiki/POSIX POSIX:2008]. Exception: GNU extensions are allowed for tar, cp and touch.
+
* Use only tools as defined by [http://en.wikipedia.org/wiki/POSIX 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.
+
* Use only POSIX sh, POSIX awk, C/C++ and GNU make in gbuild core.
* If those dont cut it, use C/C++ (Or ask yourself if you are doing something wrong).
+
* Otherwise, put the file in the extensions subdirectory and do not depend the core functionality on it.
 
* Use the gb_Output_* functions for notifications.
 
* Use the gb_Output_* functions for notifications.
* Keep all platform specific stuff confined in the platform subdirectory of gbuild
+
* 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)).
+
* Never use relative paths, only absolute paths starting with $(OUTDIR), $(WORKDIR) and the repository roots (for example $(SRCDIR)) should be used.
 
* Adhere to the [http://www.python.org/dev/peps/pep-0020/ Zen of Python], for it is valid in any language.
 
* Adhere to the [http://www.python.org/dev/peps/pep-0020/ Zen of Python], for it is valid in any language.

Latest revision as of 11:17, 22 November 2010

Edit.png

Build Environment Effort

Quick Navigation

About this template


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.
  • Use only POSIX sh, POSIX awk, C/C++ and GNU make in gbuild core.
  • Otherwise, put the file in the extensions subdirectory and do not depend the core functionality on it.
  • 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.
Personal tools