#1. Compliers and linker FC =ifort LINKER =ifort #2. Compiling options Default value CFLAGS = -O3 FFLAGS = -O3 #3. TARGET and OBJECT LIST TARGET = fmm OBJS = dgemv.o splib.o initial.o main.o hetrfm.o split.o #4.Library and include directory ifeq ($(cluster),0) MKL_LIB=$(MKLROOT)/lib/ia32 MKL_INCLUDE=$(MKLROOT)/include/ia32 else MKL_LIB=$(MKLROOT)/lib/intel64 MKL_INCLUDE=$(MKLROOT)/include/intel64/lp64 endif #5. LINK LIST $(TARGET): $(OBJS) ifeq ($(cluster),0) $(LINKER) $(FFLAGS) $(OBJS) -limf -lm -L $(HOME)/lib -lhermite -o $(TARGET) else $(LINKER) $(FFLAGS) $(OBJS) -o $(TARGET) endif #6. Debug TARGET debug:CFLAGS=-g debug:FFLAGS=-g debug:$(OBJS) @rm -f $(TARGET) core ifeq ($(cluster),0) $(LINKER) $(FFLAGS) $(OBJS) -o $(TARGET) else $(LINKER) $(FFLAGS) $(OBJS) -o $(TARGET) endif #6. SUFFIX RULE .f.o: $(FC) $(FFLAGS) -c $*.f .f90.o: $(FC) $(FFLAGS) -c $*.f90 #7. make clean clean: rm -f *.o rm -f $(TARGET) rm -f fort.* rm -f *mod* #8. SUFFIX LIST .SUFFIXES: .o .f .f90 .c .m .KEEP_STATE: