#-------------------------------------------------------------------------------
# Define Program, Program Directory, Program Version, Install Directories, and
# Target Names ... set mode to default (empty)
#-------------------------------------------------------------------------------
PROGRAM			= libslbm
PROG_NAM		= SLBM

SOURCES	= src/Brents.cc \
	src/CrustalProfile.cc \
	src/CrustalProfileStore.cc \
	src/DataBuffer.cc \
	src/GeoStack.cc \
	src/GreatCircle.cc \
	src/GreatCircle_Xg.cc \
	src/GreatCircle_Xn.cc \
	src/GreatCircleFactory.cc \
	src/Grid.cc \
	src/GridProfile.cc \
	src/IntegrateFunction.cc \
	src/InterpolatedProfile.cc \
	src/LayerProfile.cc \
	src/LayerProfileG.cc \
	src/Location.cc \
	src/MD50.cc \
	src/QueryProfile.cc \
	src/SlbmInterface.cc \
	src/SlbmInterfaceToJNI.cc \
	src/TauPSite.cc \
	src/TauPSiteFunctionals.cc \
	src/TPVelocityModels.cc \
	src/Triangle.cc \
	src/Uncertainty.cc \

OBJECTS	= Brents.o \
	CrustalProfile.o \
	CrustalProfileStore.o \
	DataBuffer.o \
	GeoStack.o \
	GreatCircle.o \
	GreatCircle_Xg.o \
	GreatCircle_Xn.o \
	GreatCircleFactory.o \
	Grid.o \
	GridProfile.o \
	IntegrateFunction.o \
	InterpolatedProfile.o \
	LayerProfile.o \
	LayerProfileG.o \
	Location.o \
	MD50.o \
	QueryProfile.o \
	SlbmInterface.o \
	SlbmInterfaceToJNI.o \
	TauPSite.o \
	TauPSiteFunctionals.o \
	TPVelocityModels.o \
	Triangle.o \
	Uncertainty.o \

INCLUDE_DIR	= include/
CV = @



CC = cl
RM = del
CCFLAGS = /MT /Gm /Zi /D "_USRDLL" /D "_WINDOWS" /D "SLBM_EXPORTS" /D "TAUP_EXPORTS" /RTC1 /W1 /errorReport:prompt \
	/D "UTIL_EXPORTS" /D "_CRT_SECURE_NO_DEPRECATE" /D "_WINDLL" /D "_UNICODE" /D "UNICODE"  /I"{$INCLUDE_DIR}" /I"${INCLUDE}" /EHsc /nologo /Fo"$@"
COMMAND = ${CV} ${CC} ${CCFLAGS} ${OBJECTS} -link -dll -out:"../lib/libslbm.dll" /MACHINE:X64 /MANIFEST && cd ..\lib && mt /nologo -manifest libslbm.dll.manifest -outputresource:libslbm.dll;2
VERSION_FLAG =


#-------------------------------------------------------------------------------
# targets
#-------------------------------------------------------------------------------


all : info slbm cleanobjs done

Brents.o:
	@ echo "Brents.cc"
	${CV} ${CC} ${CCFLAGS} -I${INCLUDE_DIR}  -c src/Brents.cc

CrustalProfile.o:
	@ echo "CrustalProfile.cc"
	${CV} ${CC} ${CCFLAGS} -I${INCLUDE_DIR}  -c src/CrustalProfile.cc

CrustalProfileStore.o:
	@ echo "CrustalProfileStore.cc"
	${CV} ${CC} ${CCFLAGS} -I${INCLUDE_DIR}  -c src/CrustalProfileStore.cc

DataBuffer.o:
	@ echo "DataBuffer.cc"
	${CV} ${CC} ${CCFLAGS} -I${INCLUDE_DIR}  -c src/DataBuffer.cc

GeoStack.o:
	@ echo "GeoStack.cc"
	${CV} ${CC} ${CCFLAGS} -I${INCLUDE_DIR}  -c src/GeoStack.cc

GreatCircle.o:
	@ echo "GreatCircle.cc"
	${CV} ${CC} ${CCFLAGS} -I${INCLUDE_DIR}  -c src/GreatCircle.cc

GreatCircle_Xg.o:
	@ echo "GreatCircle_Xg.cc"
	${CV} ${CC} ${CCFLAGS} -I${INCLUDE_DIR}  -c src/GreatCircle_Xg.cc

GreatCircle_Xn.o:
	@ echo "GreatCircle_Xn.cc"
	${CV} ${CC} ${CCFLAGS} -I${INCLUDE_DIR}  -c src/GreatCircle_Xn.cc

GreatCircleFactory.o:
	@ echo "GreatCircleFactory.cc"
	${CV} ${CC} ${CCFLAGS} -I${INCLUDE_DIR}  -c src/GreatCircleFactory.cc

Grid.o:
	@ echo "Grid.cc"
	${CV} ${CC} ${CCFLAGS} -I${INCLUDE_DIR}  -c src/Grid.cc

GridProfile.o:
	@ echo "GridProfile.cc"
	${CV} ${CC} ${CCFLAGS} -I${INCLUDE_DIR}  -c src/GridProfile.cc

IntegrateFunction.o:
	@ echo "IntegrateFunction.cc"
	${CV} ${CC} ${CCFLAGS} -I${INCLUDE_DIR}  -c src/IntegrateFunction.cc

InterpolatedProfile.o:
	@ echo "InterpolatedProfile.cc"
	${CV} ${CC} ${CCFLAGS} -I${INCLUDE_DIR}  -c src/InterpolatedProfile.cc

LayerProfile.o:
	@ echo "LayerProfile.cc"
	${CV} ${CC} ${CCFLAGS} -I${INCLUDE_DIR}  -c src/LayerProfile.cc

LayerProfileG.o:
	@ echo "LayerProfileG.cc"
	${CV} ${CC} ${CCFLAGS} -I${INCLUDE_DIR}  -c src/LayerProfileG.cc

Location.o:
	@ echo "Location.cc"
	${CV} ${CC} ${CCFLAGS} -I${INCLUDE_DIR}  -c src/Location.cc

MD50.o:
	@ echo "MD50.cc"
	${CV} ${CC} ${CCFLAGS} -I${INCLUDE_DIR}  -c src/MD50.cc

QueryProfile.o:
	@ echo "QueryProfile.cc"
	${CV} ${CC} ${CCFLAGS} -I${INCLUDE_DIR}  -c src/QueryProfile.cc

SlbmInterface.o:
	@ echo "SlbmInterface.cc"
	${CV} ${CC} ${CCFLAGS} -I${INCLUDE_DIR}  -c src/SlbmInterface.cc

SlbmInterfaceToJNI.o:
	@ echo "SlbmInterfaceToJNI.cc"
	${CV} ${CC} ${CCFLAGS} -I${INCLUDE_DIR}  -c src/SlbmInterfaceToJNI.cc

TauPSite.o:
	@ echo "TauPSite.cc"
	${CV} ${CC} ${CCFLAGS} -I${INCLUDE_DIR}  -c src/TauPSite.cc

TauPSiteFunctionals.o:
	@ echo "TauPSiteFunctionals.cc"
	${CV} ${CC} ${CCFLAGS} -I${INCLUDE_DIR}  -c src/TauPSiteFunctionals.cc

TPVelocityModels.o:
	@ echo "TPVelocityModels.cc"
	${CV} ${CC} ${CCFLAGS} -I${INCLUDE_DIR}  -c src/TPVelocityModels.cc

Triangle.o:
	@ echo "Triangle.cc"
	${CV} ${CC} ${CCFLAGS} -I${INCLUDE_DIR}  -c src/Triangle.cc

Uncertainty.o:
	@ echo "Uncertainty.cc"
	${CV} ${CC} ${CCFLAGS} -I${INCLUDE_DIR}  -c src/Uncertainty.cc
	@ echo ""

slbm : slbmlib cleanobjs

slbmlib: ${OBJECTS}
	${CV} echo "building shared library slbm.so"
	${COMMAND}
	@ echo ""

cleanobjs :
	${CV} echo "removing object files"
	$(RM) Brents.o
	$(RM) CrustalProfile.o
	$(RM) CrustalProfileStore.o
	$(RM) DataBuffer.o
	$(RM) GreatCircle.o
	$(RM) GreatCircle_Xg.o
	$(RM) GreatCircle_Xn.o
	$(RM) GreatCircleFactory.o
	$(RM) Grid.o
	$(RM) GridProfile.o
	$(RM) IntegrateFunction.o
	$(RM) InterpolatedProfile.o
	$(RM) LayerProfile.o
	$(RM) LayerProfileG.o
	$(RM) Location.o
	$(RM) QueryProfile.o
	$(RM) SlbmInterface.o
	$(RM) SlbmInterfaceToJNI.o
	$(RM) TauPSite.o
	$(RM) TauPSiteFunctionals.o
	$(RM) TPVelocityModels.o
	$(RM) Triangle.o
	$(RM) GeoStack.o
	$(RM) MD50.o
	$(RM) Uncertainty.o
	@ echo ""

info :
	@ echo "========================================="
	@ echo "Building" $(PROG_NAM) "on" $(OS)
	$(CC) $(VERSION_FLAG)

done :
	@echo "Done building" $(PROG_NAM)
	@ echo ""
