Makefile with .mod files
FX Coudert
fxcoudert@gmail.com
Sat Nov 3 12:10:00 GMT 2007
> I'm having some problems with a Makefile for a Fortran program, and
> I've tracked it down to the fact that .mod files don't have their
> timestamp updated when compiling if they don't change.
This is a change from 4.2, IIRC, and it was done because users
complained that .mod files had their timestamps updated while not
changing, which triggered massive useless recompilations because of
Makefile dependencies ;-)
> all: a.o b.o
>
> a.mod a.o: a.f90 b.mod
> gfortran -c $<
>
> b.mod b.o: b.f90
> gfortran -c $<
> Now I have to run "make" twice, I guess it's because make does not
> know
> b.mod can change due to a change in b.f90, as it is an order-only
> dependency...
>
> So, is there a solution for this?
Yes, I believe there is; the following Makefile seems to work fine:
all: a.o b.o
a.o: a.f90 b.mod
gfortran -c $<
b.o: b.f90
gfortran -c $<
b.mod: b.f90 b.o
@true
a.mod: a.f90 a.o
@true
I know it's not as easy as one could hope, but I intend to add
options to generate Makefile dependencies (-M options) in gfortran-4.4.
Regards,
FX
More information about the Fortran
mailing list