Maybe there's some infrastructure for this already??? Install location: /usr/local/webstack (everything goes here -- much simpler) Software download location: /home/foo/opensource Build directory: /home/foo/webstack-build
httpd features: [X] mod_ssl [ ] mod_lua [X] mod_proxy_html [X] mod_ldap ...... (those with dependencies) (this is httpd-centric, so we don't choose/enable random support library features; we automatically enable the ones required for chosen httpd features) Dependencies: apr: [ ] system [X] use latest in download directory (1.5.0) apr-util: [ ] system [X] use latest in download directory (1.5.3) PCRE: [X] system [ ] use latest in download directory OpenSSL: [] system [X] use latest in download directory (1.0.1g) libxml2: [X] system [ ] use latest in download directory zlib: [X] system [ ] use latest in download directory OpenLDAP: [] system [] use latest in download directory (dynamic based on httpd and support library features selected) Build type: [X] Debug symbols [ ] Highly optimized [X] Use architecture-specific code * setup can be coded in a file too, of course * profile for httpd, httpd mods with extra dependent libraries, and each dependent library to indicate what options mean in terms of configure envvars, configure options, make envvars, etc. * profiles for third-party modules too * among other things, this can serve as the traditional Makefile.win wrapper on Windows that pulls together different projects (using cmake under the covers where appropriate) * shouldn't support every variation * just support rebuilding everything when updating something Following the 80/20 rule this can be relatively simple, and solve the chosen problem as much by guiding users into simple choices as by enabling magic build options/variables. -- Born in Roswell... married an alien... http://emptyhammock.com/ http://edjective.org/