Pristine Ack-5.5
[Ack-5.5.git] / lang / fortran / comp / README
1 Type "make" to check the validity of the f2c source and compile f2c.
2
3 If (in accordance with what follows) you need to modify the makefile
4 or any of the source files, first issue a "make xsum.out" to check
5 the validity of the f2c source, then make your changes, then type
6 "make f2c".
7
8 The file usignal.h is for the benefit of strictly ANSI include files
9 on a UNIX system -- the ANSI signal.h does not define SIGHUP or SIGQUIT.
10 You may need to modify usignal.h if you are not running f2c on a UNIX
11 system.
12
13 Should you get the message "xsum0.out xsum1.out differ", see what lines
14 are different (`diff xsum0.out xsum1.out`) and ask netlib to send you
15 the files in question "from f2c/src".  For example, if exec.c and
16 expr.c have incorrect check sums, you would send netlib the message
17         send exec.c expr.c from f2c/src
18
19 On some systems, the malloc and free in malloc.c let f2c run faster
20 than do the standard malloc and free.  Other systems cannot tolerate
21 redefinition of malloc and free.  If yours is such a system, you may
22 either modify the makefile appropriately, or simply execute
23         cc -c -DCRAY malloc.c
24 before typing "make".  Still other systems have a -lmalloc that
25 provides performance competitive with that from malloc.c; you may
26 wish to compare the two on your system.
27
28 On some BSD systems, you may need to create a file named "string.h"
29 whose single line is
30 #include <strings.h>
31 you may need to add " -Dstrchr=index" to the "CFLAGS =" assignment
32 in the makefile, and you may need to add " memset.o" to the "OBJECTS ="
33 assignment in the makefile -- see the comments in memset.c .
34
35 For non-UNIX systems, you may need to change some things in sysdep.c,
36 such as the choice of intermediate file names.
37
38 On some systems, you may need to modify parts of sysdep.h (which is
39 included by defs.h).  In particular, for Sun 4.1 systems and perhaps
40 some others, you need to comment out the typedef of size_t.
41
42 Alas, some systems #define __STDC__ but do not provide a true standard
43 (ANSI or ISO) C environment, e.g. do not provide stdlib.h .  If yours
44 is such a system, then (a) you should complain loudly to your vendor
45 about __STDC__ being erroneously defined, and (b) you should insert
46 #undef __STDC__
47 at the beginning of sysdep.h .  You may need to make other adjustments.
48
49 For some non-ANSI versions of stdio, you must change the values given
50 to binread and binwrite in sysdep.c from "rb" and "wb" to "r" and "w".
51 You may need to make this change if you run f2c and get an error
52 message of the form
53         Compiler error ... cannot open intermediate file ...
54
55 On many systems, it is best to combine libF77 and libI77 into a single
56 library, say libf2c, as suggested in "index from f2c".  If you do this,
57 then you should adjust the definition of link_msg in sysdep.c
58 appropriately (e.g., replacing "-lF77 -lI77" by "-lf2c").
59
60 Some older C compilers object to
61         typedef void (*foo)();
62 or to
63         typedef void zap;
64         zap (*foo)();
65 If yours is such a compiler, change the definition of VOID in
66 f2c.h from void to int.
67
68 Please send bug reports to dmg@research.att.com .  The index file
69 ("send index from f2c") will report recent changes in the recent-change
70 log at its end; all changes will be shown in the "fixes" file
71 ("send fixes from f2c").  To keep current source, you will need to
72 request xsum0.out and version.c, in addition to the changed source
73 files.