# File Name
MAKEFILENAME = CADCreoParametricComputeMetrics_make

# Machine Type
PRO_MACHINE_TYPE = x86e_win64

# Executable names
EXE = CADCreoParametricComputeMetrics.exe

# Pro/Toolkit Source & Machine Loadpoint  (EXTERNAL USE - DEFAULT)
PROTOOL_SRC = $(CREO_PARAMETRIC_TOOLKIT_PARENT_DIR)\protoolkit
PROTOOL_SYS = $(PROTOOL_SRC)/$(PRO_MACHINE_TYPE)
PRODEV_SRC = $(CREO_PARAMETRIC_TOOLKIT_PARENT_DIR)\prodevelop
PRODEV_SYS = $(PRODEV_SRC)/$(PRO_MACHINE_TYPE)

CODE_SYNTHESIS_DIR = "C:\Program Files (x86)\CodeSynthesis XSD 3.3"
CODE_SYNTHESIS_INCLUDE_PATH = $(CODE_SYNTHESIS_DIR)\include

ISIS_PTC_TOOLKIT_FUNCTIONS_LIB_PATH = ..\CADCreoParametricToolkitFunctions
ISIS_PTC_TOOLKIT_FUNCTIONS_INCLUDE_PATH = ..\CADCreoParametricToolkitFunctions
ISIS_PTC_COMMON_FUNCTIONS_LIB_PATH =..\CADCreoParametricCommonFunctions
ISIS_PTC_COMMON_FUNCTIONS_INCLUDE_PATH = ..\CADCreoParametricCommonFunctions

RESOURCE_COMPILER = "C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\rc.exe"
RESOURCE_COMPILER_INCLUDE =	"C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include"
RESOURCE_COMPILER_INCLUDE_SAL_H = "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include"

# Application Definitions
PROTK_EXAMP = $(PROTOOL_SRC)/protk_appls/pt_examples

# Include File Paths
INCS = -I. -I$(PROTOOL_SRC)/protk_appls/includes -I$(PROTOOL_SRC)/includes \
	-I$(ISIS_PTC_TOOLKIT_FUNCTIONS_INCLUDE_PATH)  -I$(ISIS_PTC_COMMON_FUNCTIONS_INCLUDE_PATH) \
	-I$(CODE_SYNTHESIS_INCLUDE_PATH)


# Compiler Flags
CC = cl
DEBUG =
#DEBUG = /Od /Z7 -DDEBUG
MACH = -DPRO_MACHINE=36 -DPRO_OS=4


# exception handler used, but unwind semantics are not enabled. Specify /EHsc
# CCFLAGS =  -c  -GS  -fp:precise  -D_WSTDIO_DEFINED $(DEBUG)
# Note, in the following line, -D_WSTDIO_DEFINED causes errors when including <fstream>
# CCFLAGS =  -c  -GS -EHsc -fp:precise  -D_WSTDIO_DEFINED $(DEBUG)
CCFLAGS =  -c  -GS -EHsc -fp:precise  $(DEBUG)
CFLAGS = $(CCFLAGS) $(INCS) $(MACH)

# Link flags
LINK = link
#Executable applications compiled using WinMain() instead of main() should set the subsystem to windows instead of console.
LINKFLAGS = /subsystem:console /debug:none /machine:amd64

# Libraries
LIBS = libcmt.lib kernel32.lib user32.lib wsock32.lib advapi32.lib mpr.lib winspool.lib netapi32.lib psapi.lib gdi32.lib shell32.lib comdlg32.lib ole32.lib ws2_32.lib
PTCLIBS = $(PRODEV_SYS)/obj/prodevelop.lib $(PROTOOL_SYS)/obj/protoolkit.lib
ISIS_LIBS = $(ISIS_PTC_TOOLKIT_FUNCTIONS_LIB_PATH)/CADCreoParametricToolkitFunctions.lib  $(ISIS_PTC_COMMON_FUNCTIONS_LIB_PATH)/CADCreoParametricCommonFunctions.lib

CODE_SYNTHESIS_LIB64 = $(CODE_SYNTHESIS_DIR)\lib64\vc-9.0\xerces-c_3.lib"

# Object files

OBJS = CADCreoParametricComputeMetrics.obj pt_utils.obj ComputeMetricsXML.obj ISISConstants.obj  \
	DiagnosticUtilities.obj SetCADModelParamters.obj CADCreoParametricComputeMetrics.res

$(EXE) :  $(OBJS) $(PTCLIBS)
	@echo Start at `date`
	@echo PROTOOL_SRC = $(PROTOOL_SRC)
	@echo PROTOOL_SYS = $(PROTOOL_SYS)
	$(LINK) -out:$(EXE) $(LINKFLAGS) $(OBJS) $(PTCLIBS) $(LIBS) $(ISIS_LIBS)  $(CODE_SYNTHESIS_LIB64)
	@echo Finished at `date`
	del $(OBJS)

# object dependencies


CADCreoParametricComputeMetrics.res:  CADCreoParametricComputeMetrics.rc
	$(RESOURCE_COMPILER) /i $(RESOURCE_COMPILER_INCLUDE)  /i $(RESOURCE_COMPILER_INCLUDE_SAL_H)  $?

CADCreoParametricComputeMetrics.obj:  CADCreoParametricComputeMetrics.cpp
	$(CC) $(CFLAGS) $?


ComputeMetricsXML.obj:  ComputeMetricsXML.cxx
	$(CC) $(CFLAGS) $?	


DiagnosticUtilities.obj:  DiagnosticUtilities.cpp
	$(CC) $(CFLAGS) $?


pt_utils.obj:  $(PROTK_EXAMP)/pt_utils/pt_utils.c
	$(CC) $(CFLAGS) $?

	
#StringToEnumConversions.obj:  StringToEnumConversions.cpp
#	$(CC) $(CFLAGS) $?		
	
	
#CommonUtilities.obj:  CommonUtilities.cpp
#	$(CC) $(CFLAGS) $?	
	
ISISConstants.obj:  ISISConstants.cpp
	$(CC) $(CFLAGS) $?		
				

SetCADModelParamters.obj:  SetCADModelParamters.cpp
	$(CC) $(CFLAGS) $?	
	

#ParametricParameters.obj:  ParametricParameters.cpp
#	$(CC) $(CFLAGS) $?		

# useful targets

clean :
	del $(OBJS)
	del $(EXE)
	nmake -f $(MAKEFILENAME)