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

Reply via email to