ALL: SSGPW.DLL TXMLW.DLL tew32.dll DEMO.EXE CTRL.EXE

TER_OBJECTS=TER.OBJ TER1.OBJ TER2.OBJ TER3.OBJ TER4.OBJ TER_DRAW.OBJ TER_INIT.OBJ TER_IO.OBJ TER_PRT.OBJ TER_FRM.OBJ TER_FRM1.OBJ TER_FRM2.OBJ TER_PAGE.OBJ TER_PAG1.OBJ TER_RTF.OBJ TER_RTF1.OBJ TER_RTF2.OBJ TER_RTF3.OBJ TER_RTF4.OBJ TER_BLK.OBJ TER_BLK1.OBJ TER_FMT.OBJ TER_FMT1.OBJ TER_FMT2.OBJ TER_PAR.OBJ TER_CTL.OBJ TER_BAR.OBJ TER_DLG.OBJ TER_OLE.OBJ TER_DRAG.OBJ TER_TBL.OBJ TER_TBL1.OBJ TER_TBL2.OBJ TER_TRK.OBJ TER_IMG.OBJ TER_SPL.OBJ TER_DRG.OBJ TER_WRAP.OBJ TER_MNU.OBJ TER_PDF.OBJ TER_DASH.OBJ TER_XML.OBJ TER_XMO.OBJ TER_DFL.OBJ TER_GP.OBJ TER_MISC.OBJ

# For debugging add -Zi to TER_SWITCHES and /DEBUG to the linker
# Remove /O1 for default optimization (O1=Minimum size)
# REMOVE /DSSEVAL before using this MAKEFILE

# Replace /MT with /MTd to use the _CrtCheckMemory() type of debug functions, also link with the /DEBUG switch - then recompile all 'c' files
# wd4748: supporess /GS can not provide protection when optimization is disabled
# wd4996: deprecated funcion use
# Removed /Zp, global packing using Zp may not work, particularly on x64, because event the windows structure included using the .h files get packed, thus causing problem with unpacked structure sizes used by gdi32 and user32 dlls
TER_SWITCHES=-c /Zi /MT /W3 /wd4996 /wd4748 /Wp64 /O1 /DWIN64 /DINC_OLE2 /DSSEVAL
TER_HEADERS=TER.H TER1.H TER_DEF.H TER_HDR.H TER_CMD.H TER_DLG.DLG TER_PROT.H TER_MSG.H


#****************************************************************************
#             Create the DEMO program using the TER DLL
#****************************************************************************

DEMO.EXE: DEMO.OBJ DEMO.RES DEMO.DEF tew32.DLL
    LINK DEMO.OBJ /DEBUG /OUT:DEMO.EXE /MAP:DEMO.MAP /DEF:DEMO.DEF /MACHINE:X64 KERNEL32.LIB ADVAPI32.LIB USER32.LIB GDI32.LIB COMDLG32.LIB WINSPOOL.LIB SHELL32.LIB tew32.LIB DEMO.RES

DEMO.RES: DEMO.RC DEMO_DLG.DLG DEMO_DLG.H DEMO.H TER.H
    RC -r DEMO.RC $(CAPTURE)

DEMO.OBJ: DEMO.C DEMO.H TER.H
    CL -c -DWIN64 DEMO.C -Zi /wd4748 /wd4996 $(CAPTURE)

#****************************************************************************
#             Create the DEMO program using the TER CUSTOM CONTROL
#****************************************************************************

CTRL.EXE: CTRL.OBJ CTRL.RES CTRL.DEF tew32.DLL
    LINK CTRL.OBJ /OUT:CTRL.EXE /MAP:CTRL.MAP /DEF:CTRL.DEF /MACHINE:X64 USER32.LIB GDI32.LIB WINSPOOL.LIB COMDLG32.LIB ADVAPI32.LIB tew32.LIB CTRL.RES

CTRL.RES: CTRL.RC CTRL_DLG.DLG CTRL_DLG.H CTRL.H TER.H
    RC -r CTRL.RC $(CAPTURE)

CTRL.OBJ: CTRL.C CTRL.H TER.H
    CL -c -DWIN64 CTRL.C  /wd4748 /wd4996 $(CAPTURE)

#****************************************************************************
#                      Create the TXML2 DLL
#****************************************************************************
TXMLW.DLL: TXML2.OBJ TXML2.RES TXML2.DEF
    LINK /debug -SUBSYSTEM:windows OLE32.LIB UUID.LIB SHELL32.LIB KERNEL32.LIB ADVAPI32.LIB USER32.LIB GDI32.LIB COMDLG32.LIB WINSPOOL.LIB MSXML2.LIB TXML2.OBJ -ENTRY:_DllMainCRTStartup@12 -VERSION:1.5 -DLL -DEF:TXML2.DEF -IMPLIB:TXMLW.LIB -MAP:TXMLW.MAP -OUT:TXMLW.DLL -MACHINE:X64 -ENTRY:_DllMainCRTStartup TXML2.RES

TXML2.RES: TXML2.RC 
    rc -r TXML2.RC

TXML2.OBJ: TXML2.C $(TXML2_HEADERS)
    CL $(TER_SWITCHES) TXML2.C   $(CAPTURE)

#****************************************************************************
#                      Create the SSGP DLL
#****************************************************************************
SSGPW.DLL: SSGP.OBJ SSGP.RES SSGP.DEF
    LINK /DEBUG -SUBSYSTEM:windows OLE32.LIB UUID.LIB SHELL32.LIB KERNEL32.LIB ADVAPI32.LIB USER32.LIB GDI32.LIB COMDLG32.LIB WINSPOOL.LIB GDIPLUS.LIB SSGP.OBJ -ENTRY:_DllMainCRTStartup@12 -VERSION:1.5 -DLL -DEF:SSGP.DEF -IMPLIB:SSGPW.LIB -MAP:SSGPW.MAP -OUT:SSGPW.DLL -MACHINE:X64 -ENTRY:_DllMainCRTStartup SSGP.RES

SSGP.RES: SSGP.RC 
    rc -r SSGP.RC

SSGP.OBJ: SSGP.CPP $(SSGP_HEADERS)
    CL $(TER_SWITCHES) SSGP.CPP   $(CAPTURE)


#****************************************************************************
#                      Create the TER DLL
#    The /DTERDLL instructs the modules to take actions specific to DLL.
#    Remove this switch if you are not building a DLL.
#****************************************************************************

tew32.dll: $(TER_OBJECTS) TER.RES TER.DEF
    LINK @MLINK.ANS

TER.RES: TER.RC TER1.H TER_CMD.H TER_DLG.DLG TER_DLG.H TER_*.BMP TER_*.CUR
    rc -r TER.RC

TER.OBJ: TER.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER.C   $(CAPTURE)

TER1.OBJ: TER1.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER1.C   $(CAPTURE)

TER2.OBJ: TER2.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER2.C   $(CAPTURE)

TER3.OBJ: TER3.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER3.C   $(CAPTURE)

TER4.OBJ: TER4.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER4.C   $(CAPTURE)

TER_DRAW.OBJ: TER_DRAW.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_DRAW.C   $(CAPTURE)

TER_INIT.OBJ: TER_INIT.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_INIT.C   $(CAPTURE)

TER_FRM.OBJ: TER_FRM.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_FRM.C   $(CAPTURE)

TER_FRM1.OBJ: TER_FRM1.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_FRM1.C   $(CAPTURE)

TER_FRM2.OBJ: TER_FRM2.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_FRM2.C   $(CAPTURE)

TER_PAGE.OBJ: TER_PAGE.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_PAGE.C   $(CAPTURE)

TER_PAG1.OBJ: TER_PAG1.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_PAG1.C   $(CAPTURE)

TER_IO.OBJ: TER_IO.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_IO.C   $(CAPTURE)

TER_PRT.OBJ: TER_PRT.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_PRT.C   $(CAPTURE)

TER_RTF.OBJ: TER_RTF.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_RTF.C   $(CAPTURE)

TER_RTF1.OBJ: TER_RTF1.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_RTF1.C   $(CAPTURE)

TER_RTF2.OBJ: TER_RTF2.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_RTF2.C   $(CAPTURE)

TER_RTF3.OBJ: TER_RTF3.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_RTF3.C   $(CAPTURE)

TER_RTF4.OBJ: TER_RTF4.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_RTF4.C   $(CAPTURE)

TER_BLK.OBJ: TER_BLK.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_BLK.C   $(CAPTURE)

TER_BLK1.OBJ: TER_BLK1.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_BLK1.C   $(CAPTURE)

TER_FMT.OBJ: TER_FMT.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_FMT.C   $(CAPTURE)

TER_FMT1.OBJ: TER_FMT1.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_FMT1.C   $(CAPTURE)

TER_FMT2.OBJ: TER_FMT2.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_FMT2.C   $(CAPTURE)

TER_PAR.OBJ: TER_PAR.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_PAR.C   $(CAPTURE)

TER_CTL.OBJ: TER_CTL.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_CTL.C   $(CAPTURE)

TER_BAR.OBJ: TER_BAR.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_BAR.C   $(CAPTURE)

TER_DLG.OBJ: TER_DLG.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_DLG.C   $(CAPTURE)

TER_OLE.OBJ: TER_OLE.C $(TER_HEADERS)  
    CL $(TER_SWITCHES) TER_OLE.C   $(CAPTURE)

TER_DRAG.OBJ: TER_DRAG.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_DRAG.C   $(CAPTURE)

TER_TBL.OBJ: TER_TBL.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_TBL.C   $(CAPTURE)

TER_TBL1.OBJ: TER_TBL1.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_TBL1.C   $(CAPTURE)

TER_TBL2.OBJ: TER_TBL2.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_TBL2.C   $(CAPTURE)

TER_TRK.OBJ: TER_TRK.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_TRK.C   $(CAPTURE)

TER_IMG.OBJ: TER_IMG.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_IMG.C   $(CAPTURE)

TER_DRG.OBJ: TER_DRG.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_DRG.C   $(CAPTURE)

TER_WRAP.OBJ: TER_WRAP.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_WRAP.C   $(CAPTURE)

TER_MNU.OBJ: TER_MNU.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_MNU.C   $(CAPTURE)

TER_SPL.OBJ: TER_SPL.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_SPL.C   $(CAPTURE)

TER_PDF.OBJ: TER_PDF.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_PDF.C   $(CAPTURE)

TER_DASH.OBJ: TER_DASH.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_DASH.C   $(CAPTURE)

TER_XML.OBJ: TER_XML.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_XML.C   $(CAPTURE)

TER_XMO.OBJ: TER_XMO.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_XMO.C   $(CAPTURE)

TER_DFL.OBJ: TER_DFL.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_DFL.C   $(CAPTURE)

TER_GP.OBJ: TER_GP.CPP $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_GP.CPP   $(CAPTURE)

TER_MISC.OBJ: TER_MISC.C $(TER_HEADERS)
    CL $(TER_SWITCHES) TER_MISC.C   $(CAPTURE)

