Reputation: 53
I am trying to write a makefile for compiling a program with source files with both .f
and .f90
extensions. I have the rule to compile the objects:
%.o: %.f90
$(FC) $(FFLAGS) -c $< -o $(OBJ)/$@
How can I extend this to work with the .f
files as well?
Upvotes: 4
Views: 990
Reputation: 46316
You will need to have two separate rules: one for the .f
files and one for the .f90
files. For example:
TARGET := a.out
OBJFILES := foo.f bar.f90
OBJ := ./obj
%.o: %.f90
$(FC) $(FFLAGS) -c $< -o $(OBJ)/$@
%.o: %.f
$(FC) $(FFLAGS) -c $< -o $(OBJ)/$@
%(TARGET): $(OBJFILES)
$(FC) $(FFLAGS) -o $@ $(addprefix $(OBJ)/,$(OBJFILES))
or something similar should do the trick.
Upvotes: 5