This is ftnchek, version 2.9.4, compiled for OS/2 2.x and above.
It has been compiled with a minor modification using the makefiles
and the configure_os2.cmd script supplied in the distribution.

Robert Moniot (the author of ftncheck) wrote it in a portable fashion,
so that it just recompiles under Eberhard Mattes' emx environment w/o any
complaints. See the original 'readme' file.


The OS/2 2.x recompile can be found on the original ftnchek site 

ftp://ftp.dsm.fordham.edu/pub/ftnchek2.9/fchk294b.zip
ftp://ftp.dsm.fordham.edu/pub/ftnchek2.9/fchk294s.zip

as well as on the usual OS/2 sites:


fchk294s.zip          --- sources
fchk294b.zip          --- binaries

ftp-os2.cdrom.com: (CD-ROM)

now:        /os2/incoming/
move to:    /os2/dev32/

ftp-os2.nmsu.edu:  (HOBBES --- if this works again)

now:        /incoming/
move to:    /os2/dev32/


ftp.leo.org: (LEO)

now:       /incoming/os2
move to:   /pub/comp/os/os2/devtools/utils


A brief intro:
==============

ftnchek is a free Fortran syntax checker. Some say, it is similar to
a commercial product called FLINT, which I don't know. It allows
to catch all kinds of problems Fortran is (in)famouse for: unassigned
variables, type casts, too long lines, wrong number / type of arguments
in calles to functions/subroutines etc. It can catch lots of problems
many Fortran compilers seem to fail finding.
To cut it short, it helps do what a normal Pascal compiler would do 
by itself on Pascal, for those of us who (still) need to use Fortran.
Read the docs to learn more.


New in version 2.9.4
====================

Some bug fixes and a few other things, see the PATCHES file of the 
original distribution.


The OS/2 port:
==============

It is now not a port anymore since OS/2 is a supported target in the
original distribution.  The original sources have been obtained
from ftp://ftp.dsm.fordham.edu/pub/ on 04-Oct-96 as a *.tar.gz file.

The first archive, fchk294s.zip, contains the sources.
I took the liberty to repackage them in a *.zip file for the people
without tar / gzip on their machines, or even for the last few people
still using the silly DOS 8.3 FAT file system under OS/2 instead of HPFS.



The second archive, fchk294b.zip, includes the necessary documentation,
test files, and the two binaries, 'ftnchek.exe' and 'ftnchekS.exe'. 
If you don't plan to recompile it you should be fine with only this archive.

* 'ftnchek.exe' needs the 'emx09b / emxfix05' runtime system to work  
  (can be found as emxrt.zip on many ftp sites, including hobbes 
  (ftp-os2.nmsu.edu) and cdrom (ftp-os2.cdrom.com)). Make sure to have 
  emx.dll in a directory in your LIBPATH. Any newer version of emx should do,
  too.
* 'ftnchekS.exe' can be used w/o having emxrt installed. This binary is 
  slightly smaller this time.

All I did was: 
0) * Minor patch to ftnchek.c (patchfile included): UNIX allows removal
     of open files, OS/2 does not. So I had to close empty files before 
     calling unlink(), otherwise they'd just sit there.
   * Extended configure_os2.cmd to generate also test/Makefile and
     test/Compare.sh, for this I had to create test/Compare.in.

1) compiled it with gcc 2.7.2 / emx09b + emxfix05, using

    configure_os2 -f aout -l dynamic
    make
    cp ftnchek.exe ftnchek.exe.dyn
    configure_os2 -f omf -l static
    make
    mv ftnchek.exe ftnchekS.exe
    mv ftnchek.exe.dyn ftnchek.exe

   Alternatively, one can also generate the  executables using the
   makefile.os2, especially when you don't have all the stuff that
   the configure_os2.cmd script calls.
   The configure_os2.cmd script written by Christian Bartels to provide
   the functionality of the UNIX shell script configure to OS/2. It generates
   the Makefile.

   Since the makefile.os2 is still supplied but not supported anymore, the
   configure script seems the better bet in the long run.
   
2) put the binaries, makefile, some docs in this archive
3) upload the whole thing due to request in two packages, the
   sources and the binaries with docs.

Installation: 
=============

1) If you are using an older version of ftnchek make a backup copy first!
   Now put the binary 'ftnchek.exe' or 'ftnchekS.exe' in a directory in
   your PATH. Of course, you can rename 'ftnchekS.exe' to 'ftnchek.exe'
   if you wish. I fyou use the original 'ftnchek.exe' make sure to have
   emx.dll installed as discussed above.

2) If you have a postscript printer you may wish to print the file 
   'ftnchek.ps'.  If you have GNU man installed, you may wish to move the 
   file 'ftnchek.man' onto a file 'ftnchek.1' in your man/man1
   directory. If you have neither nor read the file 'ftnchek.doc'

3) If you wish to also use 'dcl2inc.cmd' to generate declarations 
   automatically you need to put the file 'dcl2inc.awk' somewhere,
   then edit 'dcl2inc.cmd' such that it can find the '*awk' file, and you
   will need to have awk (gawk, nawk) installed.

4) Use it.

As always: The progamme is distributed as is, no warranties are given or
implied in any way. Use at your own risk; if it kills your cat -- too bad. 
All the copyrights or -lefts of the original distribution apply. Check there.

You can now also run the makefile target 'check' under OS/2. You will need
a good load of GNU utilities to be installed (bc, gawk, cat, diff, etc.)
and a copy of sh.exe in your path. Cooking up a plain REXX solution is
probably possible but seems like a waste of time when the other things work.

In the test subdirectory you will find a Makefile (which should be the same
as the Makefile.os2 in the same directory) and a Compare.sh (the same as 
Compare.sh.os2). The orignal files (Makefile.in, Compare.sh.distrbution)
are still there.
Next, in the test/Okay subdirectory, you will have to make sure that 
your diff programme is clever enough (mine is) or that the
test files have lines ending in CR+LF (the original UNIX distribution
has only CR or only LF and hence cmp moans about differences).
You can do this with a quick and dirty
  zip -0 test *
  unzip -o -aa test.zip
but is shouldn't be needed. The check now works
w/o a hitch (see file check.log), it just takes ages on a 486dx33.

Bug reports to the original author, please, unless they are clearly
a 'feature' of the os/2 port. (I don't know what I can do then, since all
I did was a re-compile anyway).

Chocolates to Robert Moniot (ftnchek), Eberhard Mattes (emx) and the other
gcc people, Christian Bartels (configure_os2.cmd), and if some are left,
as always, I'll take a bite.

Read the files 'README', 'readme.os2', and of course
the documention of 'ftnchek' for more information.

That's it. Have fun.            Stefan A. Deutscher ,  04-Oct-1996

                          sad@utk.edu / stefand@elphy.irz.hu-berlin.de


