I'd be very happy if OpenSSL used GNU autoconf, and did -not- use
Perl, to compile itself.

I use a totally-autoconfed version of SSLeay 0.8.1, which was created
for a project of mine that uses autoconf for all the rest of its
pieces as well (it's built out of a substantial quantity of homegrown
code, plus SSLeay, plus SCM, plus various other packages, and produces
a single binary).

At the time that the autoconfed version of SSLeay was created, I
offered the patch set to its authors, who weren't interested or at
least didn't do anything with it.  (I may have announced this to the
appropriate SSLeay development list at the time; I don't recall.)

I'm still willing to offer this patch set to anyone who will make use
of it.  Obviously, it'll require some reworking, since OpenSSL has
diverged from SSLeay, but it might get someone started.  With the
autoconf work I've got, SSLeay compiled effortlessly under HPUX 9 and
10, Solaris, NetBSD, Linux (4.2 and 5.1), Irix (32 and 64 bit), Alphas
(64 bit, or course) and probably some other OS's I'm forgetting---all
simply by typing ./configure and then make.

Even if the patches I can offer aren't useful, I'd still really
appreciate an OpenSSL that used autoconf and did -not- require a
working Perl installation (since nothing else in the project I put
together requires Perl to install).  Given that, I might be willing to
at some point upgrade from SSLeay 0.8.1 to some version of OpenSSL,
but at the moment such an upgrade would be quite a bit of pain for
only marginal gain, so I'm currently stuck in the past for my crypto
library.

I have no idea how this interacts with non-Unix versions.  I don't
know how, e.g., the Apache team solved that problem; are there
autoconf-like utilities for Windows, or did they totally abandon their
autoconf work in the Windows port?  I'd hope not; I'd imagine instead
that something like CygWin would make this Just Work, but I've never
ever tried to build anything there.

This patch set was created in the US.  However, since it consists of
#ifdefs and boilerplate automake/autoconf snippets and so forth, but
no actual C code, it could be argued quite strongly that there is no
crypto here.  If you are concerned that the OpenSSL distribution not
have any possibility of being tainted with US code, however, you
should be aware of this.

Here's the part of the autoconf run that happens for the SSLeay piece.
It doesn't include any of the other configuration that happens for the
other pieces.  Note also that it does -not- do weird in-place
modifications as is currently done in OpenSSL---instead, it creates
particular files (Makefile and others) from source files exactly the
same way that any -other- GNU application which uses autoconf does, so
anyone who understands autoconf and automake will understand this,
thus leveraging the development effort.  This particular run was
created on an HPUX 9.05 machine, but of course that only changes some
of the answers below.

Note in particular this line:
  checking which DES optimizations to use... -DDES_RISC2 -DDES_PTR
which takes a few minutes and simply runs benchmarks while trying
different optimizations.  It was essentially part of the SSLeay 0.8.1
distribution that was co-opted into the autoconf; this means that
running autoconf once on the target architecture will get all the
right optimizations without having to have ugly guesses wired into the
code.  And even though it takes a few minutes, remember that you only
have to run configure once on any given architecture unless you're
changing autoconf files themselves (and not just recompiling some of
the C code)---95% of all my compilations are just makes, not configures.

- - - Begin - - -

creating cache ./config.cache
updating cache ./config.cache
creating ./config.status
creating Makefile
configuring in App/C/SSLeay
running /bin/sh ./configure  --cache-file=../../.././config.cache --srcdir=.
loading cache ../../.././config.cache
checking for a BSD compatible install... /usr/local/bin/install -c
checking whether build environment is sane... yes
checking for working aclocal... found
checking for working autoconf... found
checking for working automake... found
checking for working autoheader... found
checking for working makeinfo... found
checking whether make sets ${MAKE}... yes
checking for gcc... gcc
checking whether the C compiler (gcc  ) works... yes
checking whether the C compiler (gcc  ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
checking how to run the C preprocessor... gcc -E
checking for ranlib... ranlib
checking whether ln -s works... yes
checking for ANSI C header files... yes
checking whether time.h and sys/time.h may both be included... yes
checking for fcntl.h... yes
checking for limits.h... yes
checking for malloc.h... yes
checking for sgtty.h... yes
checking for strings.h... yes
checking for synch.h... no
checking for sys/file.h... yes
checking for sys/filio.h... no
checking for sys/fcntl.h... yes
checking for sys/ioctl.h... yes
checking for sys/param.h... yes
checking for sys/prctl.h... no
checking for sys/select.h... no
checking for sys/termio.h... yes
checking for sys/termios.h... yes
checking for sys/time.h... yes
checking for sys/timeb.h... yes
checking for sys/times.h... yes
checking for termio.h... yes
checking for termios.h... yes
checking for typedefs.h... no
checking for unistd.h... yes
checking for working const... yes
checking for inline... inline
checking whether struct tm is in sys/time.h or time.h... time.h
checking whether byte ordering is bigendian... yes
checking host system type... hppa1.1-hp-hpux9.05
checking return type of signal handlers... void
checking size of long... 4
checking for optimized assembly code... bignums
checking whether gcc needs -traditional... no
checking for 8-bit clean memcmp... yes
checking return type of signal handlers... (cached) void
checking for vprintf... yes
checking for clock_gettime... no
checking for clock_getres... no
checking for ftime... yes
checking for gethrtime... no
checking for getitimer... yes
checking for gettimeofday... yes
checking for lrand48... yes
checking for mutex_init... no
checking for random... no
checking for select... yes
checking for setitimer... yes
checking for socket... yes
checking for times... yes
checking for usinit... no
checking which DES optimizations to use... -DDES_RISC2 -DDES_PTR
updating cache ../../.././config.cache
creating ./config.status
creating Makefile
creating apps/Makefile
creating apps/demoCA/Makefile
creating apps/demoCA/certs/Makefile
creating apps/demoCA/crl/Makefile
creating apps/demoCA/newcerts/Makefile
creating apps/demoCA/private/Makefile
creating apps/set/Makefile
creating apps/stuff/Makefile
creating bugs/Makefile
creating certs/Makefile
creating crypto/Makefile
creating crypto/asn1/Makefile
creating crypto/bf/Makefile
creating crypto/bf/asm/Makefile
creating crypto/bio/Makefile
creating crypto/bn/Makefile
creating crypto/bn/asm/Makefile
creating crypto/bn/stuff/Makefile
creating crypto/buffer/Makefile
creating crypto/conf/Makefile
creating crypto/des/Makefile
creating crypto/des/asm/Makefile
creating crypto/des/t/Makefile
creating crypto/des/times/Makefile
creating crypto/dh/Makefile
creating crypto/dsa/Makefile
creating crypto/err/Makefile
creating crypto/evp/Makefile
creating crypto/idea/Makefile
creating crypto/lhash/Makefile
creating crypto/md/Makefile
creating crypto/mdc2/Makefile
creating crypto/objects/Makefile
creating crypto/pem/Makefile
creating crypto/perlasm/Makefile
creating crypto/pkcs7/Makefile
creating crypto/rand/Makefile
creating crypto/rc2/Makefile
creating crypto/rc4/Makefile
creating crypto/rsa/Makefile
creating crypto/sha/Makefile
creating crypto/stack/Makefile
creating crypto/txt_db/Makefile
creating crypto/x509/Makefile
creating demos/Makefile
creating demos/bio/Makefile
creating demos/maurice/Makefile
creating demos/prime/Makefile
creating demos/sign/Makefile
creating demos/ssl/Makefile
creating doc/Makefile
creating include/Makefile
creating ms/Makefile
creating mt/Makefile
creating rsaref/Makefile
creating shlib/Makefile
creating ssl/Makefile
creating test/Makefile
creating times/Makefile
creating tools/Makefile
creating util/Makefile
creating util/pl/Makefile
creating config.h

- - - End - - -
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to