# File Name
MAKEFILENAME = CADCreoParametricDatumEditor_make

# Machine Type
PRO_MACHINE_TYPE = x86e_win64

# Executable names
EXE = CADCreoParametricEditor.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)

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
ISIS_CAD_COMMON_FUNCTIONS_INCLUDE_PATH = ..\CADCommonFunctions

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$(ISIS_CAD_COMMON_FUNCTIONS_INCLUDE_PATH)  -I"$(UDM_PATH)/include"


# Compiler Flags
CC = cl
DEBUG = /MD
#DEBUG = /Od /Z7 -DDEBUG /MDd

MACH = -DPRO_MACHINE=36 -DPRO_OS=4

# exception handler used, but unwind semantics are not enabled. Specify /EHsc
# 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) /D "UDM_DYNAMIC_LINKING"
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
LIBS =  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
PTCLIBS = $(PRODEV_SYS)/obj/prodevmd.lib $(PROTOOL_SYS)/obj/protkmd.lib
ISIS_LIBS = $(ISIS_PTC_TOOLKIT_FUNCTIONS_LIB_PATH)/CADCreoParametricToolkitFunctions.lib  $(ISIS_PTC_COMMON_FUNCTIONS_LIB_PATH)/CADCreoParametricCommonFunctions.lib ../../bin/CADCommonFunctions.lib
UDM_LIB_DIR = "$(UDM_PATH)/lib"


# Object files
OBJS = CADCreoParametricDatumEditor.obj  pt_utils.obj   \
	CADEnvironmentSettings.obj ISISConstants.obj DatumEditorRoutines.obj \
    CoordinateSystemRoutines.obj CADDatumEditor.obj CADCreoParametricDatumEditor.res


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

# object dependencies

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

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

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


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

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


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

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

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

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

# useful targets

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