Notes for the DOS platform with DJGPP

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

All of these can be obtained from the usual DJGPP mirror sites or directly at For help on which files to download, see the DJGPP “ZIP PICKER” page at You also need to have the WATT-32 networking package installed before you try to compile OpenSSL. This can be obtained from 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.


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