OpenSSL has been ported to DJGPP, a Unix look-alike 32-bit run-time environment for 16-bit DOS, but only with long filename support. If you wish to compile on native DOS with 8+3 filenames, you will have to tweak the installation yourself, including renaming files with illegal or duplicate names.
You should have a full DJGPP environment installed, including the
latest versions of DJGPP, GCC, BINUTILS, BASH, etc. This package
requires that PERL and the PERL module Text::Template
also be
installed (see NOTES-PERL.md).
All of these can be obtained from the usual DJGPP mirror sites or
directly at http://www.delorie.com/pub/djgpp. For help on which
files to download, see the DJGPP "ZIP PICKER" page at
http://www.delorie.com/djgpp/zip-picker.html. You also need to have
the WATT-32 networking package installed before you try to compile
OpenSSL. This can be obtained from http://www.watt-32.net/.
The Makefile assumes that the WATT-32 code is in the directory
specified by the environment variable WATT_ROOT. If you have watt-32
in directory watt32
under your main DJGPP directory, specify
WATT_ROOT="/dev/env/DJDIR/watt32"
.
To compile OpenSSL, start your BASH shell, then configure for DJGPP by
running ./Configure
with appropriate arguments:
./Configure no-threads --prefix=/dev/env/DJDIR DJGPP
And finally fire up make
. You may run out of DPMI selectors when
running in a DOS box under Windows. If so, just close the BASH
shell, go back to Windows, and restart BASH. Then run make
again.
RUN-TIME CAVEAT LECTOR
Quoting FAQ:
"Cryptographic software needs a source of unpredictable data to work
correctly. Many open source operating systems provide a "randomness
device" (/dev/urandom
or /dev/random
) that serves this purpose."
As of version 0.9.7f DJGPP port checks upon /dev/urandom$
for a 3rd
party "randomness" DOS driver. One such driver, NOISE.SYS
, can be
obtained from http://www.rahul.net/dkaufman/index.html.