#------------------
#   Compiler
#------------------

CC = g++

#------------------
#   Libraries
#------------------

ITINCLUDE3  =   #-I/... # when include files are requested
ITINCLUDE   = ${ITINCLUDE3}
ITLIB       = -L/usr/lib/ # directory where the required libraries are

#----------------------------
#   Compilation options
#----------------------------

INCLUDE_PATH = -I./ ${ITINCLUDE}
LDFLAGS      = ${ITLIB}
LIBRARY      = -lstdc++ -lc -lm 
WARN         = -Wno-deprecated 
CPPFLAGS     = -ffast-math -funroll-loops ${WARN} ${INCLUDE_PATH}
DEFINES      = -Wall

.cpp.o: ; ${CC} ${DEFINES} ${INCLUDE_PATH} ${WARN} -g -c $*.cpp

#----------------------------
#   Files to be compiled
#----------------------------

OBJsa  = gaussian.o input_sampling.o matrix.o vector.o hamiltonian.o sampling.o              main.o
OBJti  = gaussian.o input_TI.o       matrix.o vector.o hamiltonian.o TI.o                    main.o
OBJfep = gaussian.o input_FEP.o      matrix.o vector.o hamiltonian.o FEP.o                   main.o
OBJjz  = gaussian.o input_jarz.o     matrix.o vector.o hamiltonian.o jarz.o                  main.o
OBJBjz = gaussian.o input_jarz.o     matrix.o vector.o hamiltonian.o BAR_jarz.o              main.o
OBJpth = gaussian.o input_path.o     matrix.o vector.o hamiltonian.o path.o                  main.o
OBJus  = gaussian.o input_FEP.o      matrix.o vector.o hamiltonian.o Umbrella_Sampling_FEP.o main.o


sampling:	${OBJsa}
		${CC} ${CPPFLAGS} ${DEFINES} ${OBJsa}  -o sampling++ ${LDFLAGS} ${LIBRARY}

ti:		${OBJti}
		${CC} ${CPPFLAGS} ${DEFINES} ${OBJti}  -o TI++       ${LDFLAGS} ${LIBRARY}

fep:		${OBJfep}
		${CC} ${CPPFLAGS} ${DEFINES} ${OBJfep} -o FEP++      ${LDFLAGS} ${LIBRARY}

us:		${OBJus}
		${CC} ${CPPFLAGS} ${DEFINES} ${OBJus}  -o US++     ${LDFLAGS} ${LIBRARY}

jarz:		${OBJjz}
		${CC} ${CPPFLAGS} ${DEFINES} ${OBJjz}  -o jarz++     ${LDFLAGS} ${LIBRARY}

Bjarz:		${OBJBjz}
		${CC} ${CPPFLAGS} ${DEFINES} ${OBJBjz} -o Bjarz++   ${LDFLAGS} ${LIBRARY}

path:		${OBJpth}
		${CC} ${CPPFLAGS} ${DEFINES} ${OBJpth} -o path++    ${LDFLAGS} ${LIBRARY}


clean:
	/bin/rm -rf *.o *.exe *~ *++ ../output/* ../input/*~


