#############################################################################
#Makefile for FaSTMM
#
#Copyright (C) 2017 Johannes Markkanen and University of Helsinki
#All rights reserved.
#The new BSD License is applied to this software, see LICENSE.txt
#Version 1.0
#Created: 18th. April. 2017
##############################################################################

FC = gfortran

# flags for debugging or for maximum performance, comment as necessary
FCFLAGS = -O0 -pg -fopenmp -fbacktrace -fcheck=all -ffpe-trap=invalid,overflow,underflow,zero,denormal -pedantic 
#FCFLAGS = -O3 -funroll-loops -mtune=native -fopenmp 

#INCLUDES = -I$(HDF5INCLUDE)
#INCLUDES = -I /cluster/lib/hdf5/special_builds/hdf_5.12.0-gcc-9.3-openmpi-4.0.5/include
INCLUDES = -I /usr/include/hdf5/serial

OBJECTS =  common.o gaussquad.o integration_points.o wigner.o io.o possu.o sfunctions.o translations.o mie.o geometry.o octtree_adaptive.o interpolation.o matvec_adaptive.o solver.o orientation_averaging.o T_matrix.o main.o

#Required libraries: Lapack, HDF5
#LIBS = -L$(HDF5DIR)/lib -lhdf5_fortran -lhdf5 -L$(BLASDIR) -llapack
#LIBS = -L$(LIBRARY_PATH) -lhdf5_fortran -lhdf5 -lopenblas
LIBS = -L/usr/lib/x86_64-linux-gnu/hdf5/serial -lhdf5_fortran -lhdf5 -llapack 
NAME = FaSTMM2

all: ${NAME}

${NAME}: ${OBJECTS}
	 ${FC} ${FCFLAGS} ${OBJECTS} ${LIBS} -o ${NAME}

main.o: main.f90
	 ${FC} ${FCFLAGS} ${INCLUDES} -c main.f90 -o main.o

%.o : %.f90
	 ${FC} ${FCFLAGS} ${INCLUDES} -c $*.f90 -o $*.o 

clean:
	 rm -f ${NAME}
	 rm -f ${OBJECTS}
	 rm -f *.mod
	 rm -f *~

veryclean:

	 rm -f ${NAME}
	 rm -f ${OBJECTS}
	 rm -f *.mod
	 rm -f *~
	 rm -f *.h5
	 rm -f *~
	 rm -f *~


