Personal tools
You are here: Home members zmoelnig pdcon07 BuildIntegration
Views

Edit history

Edit: -1 of 1
Time: 2007-08-02 02:02:16
Note: /pd/pd/Members/zmoelnig/pdcon07/BuildIntegration/edit "my €0.02 --moocow"

changed:
-
currently there are several parallel build-systems within the externals section of the repository:

 - the pd-extended's generalized build system (combination of scripts and make)

 - the /externals/build build-system (make)

 - the author's own build system (scripts, make, autoconf/automake, scons, pd-extended, ... or any combination of these)


this eventually leads to unmaintained build-systems


how to solve this:

 - /externals/build should really only be used for objects that cannot be build otherwise (e.g. libraries that do not provide splitting into single objects)

 - a hierarchical build system (for the rest) might keep the **responsibility local**

  - anyone can use their own buildsystem

  - for every subdirectory that ought to be included into a meta build system (pd-extended), 
there should be a a special makefile.extended that gets called by the parent makefile.extended and that is responsible for calling the "real" build system

   - a first-stab makefile.extended could be generated from externals/Makefile

   - we just need a small number of conventional targets with clear semantics, e.g. "build", "install", "clean"


a related issue - flags & flexibility:

 - when compiling on a local system, the (advanced) user should be able to set some options (e.g. installation directory, local CFLAGS for optimization, etc.) with a minimum of hassle.  One way to do this would be to lump these together into a "local configuration" Makefile which respects environment variable overrides (e.g. which use "?=" and "+=" instead of "=" or "\:=")

 - individual build systems should be allowed to vary, but at least we could start establishing some conventions about passing such variables around; the "makefile.extended" could expect to have all relevant variables (CFLAGS, EXTENSION, pd_src, ...) already instantiated with sensible values, and could choose to use these (please!) or not, at the discretion of the package maintainer.


Powered by IEM Powered by Plone Section 508 WCAG Valid XHTML Valid CSS Usable in any browser