Makefile with different source types

fortran, makefile

Solution

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.

Problem

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?

Original source