On Thu, Jan 8, 2009 at 4:01 PM, Felix von Leitner via RT <r...@openssl.org> wrote:
> [...] Apart from the inherent > wrongness of doing recursive make (see > http://miller.emu.id.au/pmiller/books/rmch/ and note that the > traditionally cited reason for doing recursive makes, namely being able > to go into apps and doing "make install" to only get the apps content > installed, does not actually work with openssl) For this particular point, note that while having all those mini-makefiles is awkward, it does serve a purpose here in that you can individually remove the source code sub-directories corresponding to various cryptographic algorithms that you might want to exclude from your builds (such as for patent reasons). If you say "no-rc5" (say) when configuring OpenSSL, then cyrpto/rc5/Makefile won't be invoked at all. Also, while you can't do "make install" to only install the apps content, you can go to a subdirectory to only *build* the stuff in there (so you won't always have to wait for the recursive make to finish if you're just doing development work within some part of OpenSSL). The sub-Makefile will invoke the master Makefile, instructing it to invoke the appropriate sub-Makefile with appropriate settings (well ... mostly: you've pointed to CC issues). These are aspects that the "Recursive Make Considered Harmful" paper doesn't talk about. I'm not saying that the whole Configure/Makefile thing shouldn't be thoroughly redone -- it's just much more complex than just pasting everything into a single file. (There's some support for having this done automatically, actually: util/mk1mf.pl, which is used for Windows builds. You can try "make makefile.one" to see this. Currently this set-up is mostly adding to the overall complexity because many configuration options need to be handled in mk1mf.pl as special cases that are already handled outside mk1mf.pl for Unix builds. Maybe some kind of makefile.one setup should be used for Unix platforms too: we'd be keeping individual per-directory Makefiles mostly to record information on what is in the respective directory [to be used to create makefile.one], but would not actually call these when building stuff.) Bodo ______________________________________________________________________ OpenSSL Project http://www.openssl.org Development Mailing List openssl-dev@openssl.org Automated List Manager majord...@openssl.org