# -----------------------------------------------------------------------------
# VC binaries & libs
# -----------------------------------------------------------------------------

VCDIR		= "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023"
#VCDIR		= C:\Program Files (x86)\Microsoft Visual Studio .NET 2003\Vc7
TOOLS32		= "$(VCDIR)\bin\Hostx86\x86"
VCLIBDIR	= -libpath:"C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17763.0\um\x86"
VCLIBDIR2	= -libpath:"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\lib\x86"
VCLIBDIR3	= -libpath:"C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17763.0\ucrt\x86"
VCLIBDIR4	= -libpath:"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\lib\x86\store"

# -----------------------------------------------------------------------------
# BuildTools
# -----------------------------------------------------------------------------

CC		= cl.exe -nologo -TC
LIB		= lib.exe -nologo
LINK		= link.exe -nologo /NODEFAULTLIB:MSVCRT
MAKE		= nmake.exe -nologo
CP		= copy
RM		= del
MKDIR		= mkdir

# -----------------------------------------------------------------------------
# Tcl instalation
# -----------------------------------------------------------------------------

TCLDIR		= C:\tcl
TCLVER		= 84
#TCLDIR		= D:\tcl84cvs
#TCLVER		= 84
TCLFLAGS	= -DUSE_TCL_STUBS -DUSE_TK_STUBS
TCLLIBS		= tclstub$(TCLVER).lib tkstub$(TCLVER).lib
TCLINCDIR	= -I$(TCLDIR)\include -I. -ID:\tcl83\src\tcl8.3.1\generic -ID:\tcl83\src\tk8.3.1\win -ID:\tcl83\src\tk8.3.1\generic
# -IZ:\misc\tcl-tk\src\tk\generic
TCLLIBDIR	= -libpath:$(TCLDIR)\lib
TCLSH		= $(TCLDIR)\bin\tclsh$(TCLVER).exe
WISH		= $(TCLDIR)\bin\wish$(TCLVER).exe


LIBS =  glu32.lib opengl32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib

# -----------------------------------------------------------------------------
# Link flags
# -----------------------------------------------------------------------------

# declarations common to all linker options
LIBDIRS	= $(VCLIBDIR) $(TCLLIBDIR) $(VCLIBDIR2) $(VCLIBDIR3) $(VCLIBDIR4)
#LFLAGS	= -nodefaultlib -release -machine:IX86 $(LIBDIRS)
LFLAGS	= -release -machine:IX86 $(LIBDIRS)
# -align:0x1000

# declarations for use on Intel i386, i486, and Pentium systems
DLLENTRY 	= @12
DLLLFLAGS	= $(LFLAGS) -entry:_DllMainCRTStartup$(DLLENTRY) -dll
EXELFLAGS	= $(LFLAGS) -entry:_WinMain
LIBCDLL 	= msvcrt.lib
#CONLIBSDLL	= libc.lib kernel32.lib
#CONLIBSDLL	= libc.lib kernel32.lib libcmt.lib libcmtd.lib kernel32legacylib.lib msvcrt.lib
#CONLIBSDLL	= libc.lib kernel32.lib msvcrt.lib
CONLIBSDLL	= libc.lib kernel32.lib
DLLLIBS		= $(TCLLIBS) $(CONLIBSDLL)

# -----------------------------------------------------------------------------
# Compile flags
# -----------------------------------------------------------------------------

INCDIRS 	= $(TCLINCDIR)
CFLAGS		= $(TCLFLAGS) -Ox -ML -DWIN32 -W3 -DDEBUG -DLOADABLE -DUSE_LOCAL_TK_H $(INCDIRS)

DEMOS	= togl.dll show_body_geometry.dll animate_joint_motion.dll animate_motion.dll

.c.obj:
	$(CC) $(CFLAGS) -c $< -Fo$@

all: $(DEMOS)

togl.dll: togl.obj
	$(LINK) $(DLLLFLAGS) togl.obj -out:$@ $(LIBS) $(DLLLIBS)

show_body_geometry.dll: togl.obj show_body_geometry.obj
	$(LINK) $(DLLLFLAGS) togl.obj show_body_geometry.obj -out:$@ $(LIBS) $(DLLLIBS)

animate_joint_motion.dll: togl.obj animate_joint_motion.obj
	$(LINK) $(DLLLFLAGS) togl.obj animate_joint_motion.obj -out:$@ $(LIBS) $(DLLLIBS)

animate_motion.dll: togl.obj animate_motion.obj
	$(LINK) $(DLLLFLAGS) togl.obj animate_motion.obj -out:$@ $(LIBS) $(DLLLIBS)

load: togl.dll
	echo load togl.dll ; exit | $(WISH)

rundemos: index.dll
	$(WISH) index.tcl
	

pkgIndex.tcl: togl.dll
	echo pkg_mkIndex . togl.dll | $(TCLSH)

clean:
	erase *.obj
	erase *.dll
	erase *.lib
	erase *.exp

#all: togl.dll

