|
Size: 1986
Comment:
|
← Revision 3 as of 2017-02-02 04:05:40 ⇥
Size: 0
Comment: archived by mrennekamp
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 1: | Line 1: |
| = reworking the build system for sage ("the distribution") = == goals == * module build systems seperated from toplevel package/module management * make embedded modules usable outside sage ("the distribution") * (still) build depends only on (gnu) make and bash * allow fallback to system-installed modules/packages. not just for gcc * make embedded modules work with other (gnu/linux) software distributions ([[http://www.google-melange.com/gsoc/project/google/gsoc2013/felixs/24001|gsoc project]]) * VPATH build * install/uninstall for all packages within sage * allow swich between system-installed and sage-shipped packages * parallel build * install targets conforming to standard * avoid patchbomb (see roadmap) == implementation == * autotools can do most things. (no, this is not just [[AutoToolsSEP|AutoToolsSEP]]) * package dependencies remain make recipes * package management can be reused, must be simplified/extended. * foreign package build scripts will be turned into makefiles defaulting to "install" * DESTDIR is used to stage package contents == open/tricky == * how to upgrade a sage-(local?)-installation? * DESTDIR is unsuppported in the current foreign packaging system * distutils is used for the python library. patch or rewrite? == future == * pick minimal set of foreign packages, depending on what is available * optionally use portage for package management * run from builddir without the need to install (simplifies development, YMMV) == roadmap == * demonstrate proof-of-concept on top of master * switch embedded module build systems to autotools * add toplevel configure.ac GNUmakefile.am * rework configuration parts into configure.ac * rewire toplevel Makefile, wrap functionality if required * remove old build system fragments. * rearrange/regroup embedded modules (?) * add DESTDIR support to foreign modules * fix local "installation" and actual installation targets |
