# (-*-makefile-*-)
#
# This makefile is included from 'makefile'.  It defines the
# various machine dependent things such as compiler commands,
# directories, libraries, etc.
#

#
# FFTW directories
#
FFTW_LIB_OPTS = -lfftw
FFTW_DIR = /afs/msc.cornell.edu/home/arias/daykov/LIB/fftw
FFTW_INCL_OPTS = -I${FFTW_DIR}/include
FFTW_LIB_DIR = -L${FFTW_DIR}/lib
BASIS_INCL_OPTS = ${FFTW_INCL_OPTS}

#
# The matrix diagonalization libraries, object, and and compile options
# (LAPACK, ESSL, or the in-house supplied Jacobi diagonalizer).
# 
# MATDIAG_OBJ must be either matdiagC.o or jacobi.o
# depending on which library you are going to use.
#
# MATDIAG_OPTS tells the system which library you will be using.
# Set it to one of -DDFT_USE_LAPACK or -DDFT_USE_JACOBI
# jacobi.o is self contained diag library, which may be somewhat slower
# If you are going to use LAPACK include the interface files 
# matdiagC.o

#
# MATDIAG_LIB_DIR is the directory where the lapack library lives
#                 (needed if the complier can't find it automatically)
#                 If using jacobi.o, set it to ".".
#
#
MATDIAG_OBJ = jacobi.o
MATDIAG_OPTS = -DDFT_USE_JACOBI
MATDIAG_LIB_DIR = -L.


#
# Parallelization options: machine dependent ones go here, **PLUS**
#
#    put -DDFT_THREAD to use POSIX threads (SMP)
#    put -DDFT_MPI to use MPI (DMP)
# (you can specify both if needed)
#
PARALLEL_OPTS = -DDFT_THREAD 
PARALLEL_LIBS = -lpthread


#
# Our libraries:  FFTW, math library, and possible LAPACK/BLAS libraries
#
LIBS = ${FFTW_LIB_DIR} ${FFTW_LIB_OPTS} ${MATDIAG_LIB_DIR} $(MATDIAG_LIB)\
       ${PARALLEL_LIBS} -lm
#       -lf77lapack -lf77blas -lfftw -lm -lf2c

#
# Optimization options for all compilers
#
OPTIM_OPTS = -O3 -Ofast=ip25

#
# Compiler flags for all compilers
#
COMPILE_OPTS = -LANG: ansi-for-init-scope=ON -64 -I. -Icommands -I${FFTW_DIR} ${BASIS_INCL_OPTS} \
        ${MATDIAG_OPTS} \
	${OPTIM_OPTS} ${PARALLEL_INCDIR} ${PARALLEL_OPTS}  -DDFT_PROFILING

#
# SUFFIXES for the files
#
.SUFFIXES: .cpp

#
# C++ compiler and options
#
CPLUSPLUS = CC
CPLUSPLUSOPTS = ${COMPILE_OPTS}

#
# Linker to use
#
# Note:  on some linux platforms, using ${F77} as the linker works
# better (then you exclude any -lf2c libraries).
#
LINKER = ${CPLUSPLUS}

#
# Linking options: static/dynamic flags, etc., if any
#
LINKOPTS = ${CPLUSPLUSOPTS}

RM = rm






syntax highlighted by Code2HTML, v. 0.9.1