# Makefile in Unix environment: help!

1. May 21, 2006

### nrqed

NEVER MIND! I finally found a good reference explaining all of this. Sorry for the wasted bandwidth!

Patrick

I have this makefile I am trying to understand.

It goes like this:

COMP = ifort
FLAGS = -autodouble etc...
GLOBALS = a bunch of .o files....

glue: gluon_operators.o
$(COMP)$(FLAGS) -o main_program *.o

gluon_operators.o: gluon_operators.f90 loop_functions.o $(GLOBALS)$(COMP) $(FLAGS) -c gluon_operators.f90 and so on... I understand that this is compiling stuff using the Fortran compiler with some flags. What I am confused about are the lines with a ":", for example glue: gluon_operators.o I have no idea what this line does. Also, the line gluon_operators.o: gluon_operators.f90 loop_functions.o$(GLOBALS)

is a mystery to me. What does the ":" do?

Also, I don't understand the line with main_program. It seems to me that the -o says to output the result of the compilation to main_program, but there does not seem to be anything compiled in the first place ?! I would have expected $(COMP)$(FLAGS) program.f90 -o main_program or something similar.

Also, what does the "*.o" mean at the end of that same line? It says something about all files ending with .o but I don't quite understand the whole line. Maybe it says that anything that will be compiled next must
put together in the file main_program??

I would really appreciate help!

Patrick

Last edited: May 21, 2006