# Makefile for general rules # To Change the compile environment to your current system you should set: # -1- ROOT variable to the directory where you found this file # -2- if needed use a different compiler (CC) if gcc is not available # -3- on Solaris system use RANLIB=ranlib which is defined below # the current directory (in vi ":r!pwd") ROOT=/Users/jan/src/OpenSource ######################################################################## # C compiler; change this only if you are using a different C-compiler #GNU #CC = gcc-mp-5 CC = gcc FC = gfortran # Linux gcc version 4.x OPTC = -O3 -ffast-math #to include parallelisation with OpenMP OPTC += -fopenmp # for better performing code you can try: #OPTC = -O3 -fno-trapping-math -ffast-math -funroll-all-loops -mavx -fomit-frame-pointer -mfpmath=sse -ftree-vectorizer-verbose=1 # Linux gcc version 3.x #OPTC = -O3 -ffast-math -funroll-all-loops -mfpmath=sse #for double precision use FFTlib and emmod #OPTC += -DDOUBLE #OPTF += -fdefault-double-8 -fdefault-real-8 #Cray #CC=cc #FC=ftn #OPTC = -O2 #OPTF = -O2 #Intel #CC = icc #FC = ifort ### Linux ##OPTC = -O3 -no-prec-div -qopt-report-phase=vec,openmp ##OPTF = -O3 -no-prec-div -qopt-report-phase=vec,openmp #OPTC = -O3 -no-prec-div -xCORE-AVX2 #OPTF = -O3 -no-prec-div -xCORE-AVX2 ##to include parallelisation with OpenMP #OPTC += -qopenmp # Apple OSX intel 11.1.076 snow leopard 10.6.2 #OPTC = -O3 -msse3 -no-prec-div -vec-report2 -fno-builtin-__sprintf_chk #PGI #CC = pgcc #FC = pgf90 #OPTC = -fast -Minfo=vect -Mvect=simd:256 -Msafeptr #OPTC = -fast -Minfo=vect -Mvect=simd:256 -Msafeptr -Mprof=lines #OPTF = -fast #LDFLAGS = -fast -Minfo=vect -Mvect=simd:256 -Msafeptr #Pathscale #CC = cc #FC = ftn #OPTC = -Ofast -OPT:Ofast -fno-math-errno #OPTF = -Ofast -OPT:Ofast -fno-math-errno #Apple OSX clang/gcc (10.9) llvm #CC = clang #OPTC = -Ofast #LDFLAGS = -Ofast #AMD Open64 #CC = opencc #FC = openf95 #OPTC = -Ofast #OPTF = -Ofast #LDFLAGS = -static -Ofast ############################################################################# # BLAS and LAPACK libraries MKLROOT=/opt/intel/compilers_and_libraries/mac/mkl/ BLAS = ${MKLROOT}/lib/libmkl_intel_lp64.a ${MKLROOT}/lib/libmkl_sequential.a ${MKLROOT}/lib/libmkl_core.a -lpthread -lm -ldl #for intel compilers #BLAS = -mkl ############################################################################# # FOR FFT LIBRARIES #AMD ACML 4.4.0 #AMDROOT = /home/thorbcke/amdsdk/v1.0/acml/open64_64 #OPTC += -DACML440 -I$(AMDROOT)/include #LIBSM = -L$(AMDROOT)/lib -lacml -lfortran -lffio -lrt -lm ############################################################################# # Some convenient abbreviations B = $(ROOT)/bin I = $(ROOT)/include L = $(ROOT)/lib ######################################################################## # standard CFLAGS CFLAGS = -I$I -I. ############################################################################# # the archiver AR = ar ############################################################################# # ar FLAGS ARFLAGS = rv ############################################################################# # ranlib definition RANLIB = ar -s # on Sun SOLARIS use: #RANLIB = ranlib .SUFFIXES : .o .c .cc .f .a .F90 .c.o : $(CC) -c $(CFLAGS) $(OPTC) $< .c.a : $(CC) -c $(CFLAGS) $(OPTC) $< $(AR) $(ARFLAGS) $@ $*.o rm -f $*.o .o.a : $(AR) $(ARFLAGS) $@ $*.o rm -f $*.o .f.o : $(FC) -c $(FFLAGS) $(OPTF) $< .F90.o : $(FC) -c $(FFLAGS) $(OPTF) $< .f.a : $(FC) -c $(FFLAGS) -I$I $< $(AR) $(ARFLAGS) $@ $*.o rm -f $*.o .cc.a : $(C++) -c $(C++FLAGS) -I$I $< $(AR) $(ARFLAGS) $@ $*.o rm -f $*.o .cc.o : $(C++) -c $(C++FLAGS) $<