
Along with the source code for the 'Fortify' program, this directory
also contains the source code for 'md5', a program that calculates
md5 checksums on an input file.  The source is partially derived from
the code of the same name in the SSLeay distribution (version 0.6.3
was used as the reference).

Differences against the SSLeay version include fixes for two minor
problems in the Win32 environment, plus code to accept and process
a range specification, so that an md5 value can optionally be
calculated on a sub-part of the input file.

The Fortify source code is, and has always been, distributed as a normal
matter of course, in every release.

This is primarily done to allow you - if you wish - to audit the code and
verify that Fortify does nothing secret or devious or while it is running.
Naturally, you are also free to bend, twist and prod it to your heart's
content (within the constraints of the Copyright).  If you wish to make
some improvements or additions to the code, such as adding your favourite
GUI interface, then you are also encouraged to submit your contributions
for possible inclusion in future Fortify releases.

The Fortify source code has now been split into subparts, as follows:

  * 'common'
	The largest subpart.  This is the core cross-platform code,
	written entirely in ANSI-C.  It contains no human interface code.
	It can be thought of as an aggregate that exposes a set of high
	level entry points and user-interface callbacks.

  * 'cmdline'
	A command line interface to the 'common' routines, also written
	in ANSI-C.  This is currently the primary interface on all Unix
	platforms.  The command line code is deprecated on Windows 95/98/NT.

  * 'mfc'
	A native Microsoft Windows GUI interface to the 'common' routines.
	This is written in C++ and built upon the MFC class library.
	It is a dialog based application, with interfaces to the registry,
	and the operating system, so it is platform specific.  The code
	to interface with the Windows process table, and the code to
	draw the splash panel graphics have been based upon contributions
	from the CodeGuru web site (www.codeguru.com).


Some brief build notes:

  * Unix
  	Gcc is used on all Unix platforms to build the 'common' and
	'cmdline' code.  Both of these subdirectories contain Makefiles
	which you will need to check and configure before you attempt a
	make.  Making in 'common' yields a library, libffy.a.  Running a
	make in 'cmdline' compiles the two executables 'fortify' and 'md5',
	and links these programs against ../common/libffy.a.

  * Windows 95/98/NT
	Microsoft Visual C++ (v5) is used to compile the 'common' and
	'mfc' code.  The Fortify workspace and project control files are
	included to assist you with this.  Note that you will also need
	a Windows port of the Unix Yacc and Lex tools in order to compile
	common/gram.y and common/lex.l.  The Cygnus GnuWin32 distribution
	contains a complete suite of Unix development tools, including
	Yacc and Lex.

  * OS/2
	Under OS/2, the Watcom v10 C compiler is used to build Fortify,
	in combination with the Emx ports of Yacc and Lex.

