user1160480
user1160480

Reputation: 53

Makefile with different source types

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

Answers (1)

Chris
Chris

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

Related Questions