Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 01 Feb 1999 21:41:08 -0800
From:      Kent Stewart <kstewart@3-cities.com>
To:        Greg Lehey <grog@lemis.com>
Cc:        "freebsd-questions@FreeBSD.org" <freebsd-questions@FreeBSD.ORG>
Subject:   Re: Make File Generator
Message-ID:  <36B68FF4.48331073@3-cities.com>
References:  <36B5FF82.D89176C1@3-cities.com> <19990202094916.R71384@freebie.lemis.com>

next in thread | previous in thread | raw e-mail | index | archive | help
I had thought about gmake. The gmake manual is intimdating. It is easy to
modify something that is generated and works. Creating the makefile from
scratch is something else. I also assumed that I needed to supply parameters
to the veraious steps. Your suggested sequence was so simple that it was
worth it to see what it would do. The problem is that the main program
overwhelms the table and kills the build on the first module and continues
on. The message I get is that I have to supply -Nn802 to f77 for the main
program. I don't think it would matter if the table was extended for all of
the modules. I didn't capture the output; however, the defaults appear to
work for everything else. The other thing is that this process isn't
generating object output and it takes about 45 minutes to compile
everything. That becomes a serious problem because it recompiles everything,
everytime. A make generator should create something that looks like

stuff ...

main.o : main.f
	f77 -? main.f
link1.o : link1.f
	f77 -? link1.f

and etc. for all of the functions and subroutines. This depends on a ".o"
being created for each compiled module, which reduces the recompiles to the
changed module. I haven't seen an object file. The basic process is
complicated because f77 isn't a real compiler. It calls f2c which takes the
FORTRAN code and produces c code. Then, it compiles the c code with gcc.

A simple compile and make with f77 produces nothing but the a.out. I am
really trying to make this program run on a PC where I have to cope with 32
bit floats and integers instead of 64 bit - everythings. Unicos and CFT77
(Cray) and FreeBSD and f77 only appear to have common roots. A much older
version runs on a Sun box and this newer version would be nice.

Kent


Greg Lehey wrote:
> 
> On Monday,  1 February 1999 at 11:24:50 -0800, Kent Stewart wrote:
> > On most of the Unix systems I have used there is a make generator for
> > Fortran. I don't see such a product on FreeBSD for f77. I have a large
> > program, i.e., more than 300 modules, that was last used on a Cray. The
> > sources as provided do not contain a makefile. I would like to try and build
> > it on FreeBSD but would hate to have to create the makefile by hand <grin>.
> > Is there something like mkmf that will generate a makefile.
> 
> Not that I know of.  Have you tried gmake?  It knows about Fortran
> programs.  You probably need very little to make a usable Makefile.
> For example, if you create a single executable out of your 300 .f
> programs, you might do:
> 
>   $ ls *.f | xargs | sed 's/^/PROG:     /' > Makefile
> 
> Substitute the name of your program for PROG.
> 
> Greg
> --
> When replying to this message, please copy the original recipients.
> For more information, see http://www.lemis.com/questions.html
> See complete headers for address, home page and phone numbers
> finger grog@lemis.com for PGP public key

-- 
Kent Stewart
Richland, WA

mailto:kstewart@3-cities.com
http://www.3-cities.com/~kstewart/index.html

Hunting Archibald Stewart, b 1802 in Ballymena, Antrim Co., NIR
http://www.3-cities.com/~kstewart/genealogy/archibald_stewart.html

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?36B68FF4.48331073>