# Makefile.vc # # This makefile builds tnm.dll as a dynamically loadable Tcl extension. # This makefile is suitable for use with Microsoft Visual C++ 2.x and 4.0 # and is derived from the example provided by Sun Microsystems. # TNM_VERSION = 3.0.0 TNM_DLL_VERSION = 300 TKI_VERSION = 1.5.0 TKI_DLL_VERSION = 150 TCL_DLL_VERSION = 82 TK_DLL_VERSION = 82 TCL_SH_VERSION = 82 # # Project directories -- these may need to be customized for your site # # ROOT -- top of the source tree. # TMPDIR -- location for .obj files. # TOOLS32 -- location of VC++ compiler installation. # SYSTEM32 -- location where .dll files are installed. # TCL -- location where Tcl is installed. # TNM -- location where Tnm will be installed. # TKI -- location where Tkined will be installed. # ROOT = .\.. TMPDIR = . TOOLS32 = c:\msdev #SYSTEM32= c:\winnt\system32 SYSTEM32= c:\windows BCPRONT = c:\BCProNT TCL = c:\tcl TCLP = c:/tcl TNM = $(TCL)\lib\tnm$(TNM_VERSION) TNMP = $(TCLP)/lib/tnm$(TNM_VERSION) TKI = $(TCL)\lib\tkined$(TKI_VERSION) TKIP = $(TCLP)/lib/tkined$(TKI_VERSION) # comment the following line to compile with symbols NODEBUG=1 # # Visual C++ tools # PATH=$(TOOLS32)\bin;$(PATH) cc32 = $(TOOLS32)\bin\cl -I$(TOOLS32)\include CP = copy RM = del INCLUDES = -I $(ROOT)\tnm\generic -I$(ROOT)\tnm\snmp -I$(ROOT)\compat -I$(ROOT)\compat\res -I$(ROOT)\tkined\generic -I$(TOOLS32)\include -I$(TCL)\include -I(ROOT)\win DEFINES = -nologo $(DEBUGDEFINES) -Di386 -DBUILD_tnm -DTKINEDLIB=\"$(TKIP)\" -DTNMLIB=\"$(TNMP)\" !include # # BoundsChecker tools -- uncomment only to run BoundsChecker! # #PATH=$(BCPRONT);$(PATH) #cc32 = $(BCPRONT)\BCOMPILE #link = $(BCPRONT)\BCLINK # # Global makefile settings # TNMOBJS = \ $(TMPDIR)\tnmDns.obj \ $(TMPDIR)\tnmIcmp.obj \ $(TMPDIR)\tnmIned.obj \ $(TMPDIR)\tnmInit.obj \ $(TMPDIR)\tnmJob.obj \ $(TMPDIR)\tnmMap.obj \ $(TMPDIR)\tnmMapUtil.obj \ $(TMPDIR)\tnmMapEvent.obj \ $(TMPDIR)\tnmMapNode.obj \ $(TMPDIR)\tnmMapNet.obj \ $(TMPDIR)\tnmMapLink.obj \ $(TMPDIR)\tnmMapPort.obj \ $(TMPDIR)\tnmMapGroup.obj \ $(TMPDIR)\tnmNetdb.obj \ $(TMPDIR)\tnmNtp.obj \ $(TMPDIR)\tnmSunrpc.obj \ $(TMPDIR)\tnmSyslog.obj \ $(TMPDIR)\tnmUdp.obj \ $(TMPDIR)\tnmUtil.obj \ $(TMPDIR)\tnmAsn1.obj \ $(TMPDIR)\tnmMD5.obj \ $(TMPDIR)\tnmOidObj.obj \ $(TMPDIR)\tnmObj.obj \ $(TMPDIR)\tnmSHA.obj \ $(TMPDIR)\tnmSnmpAgent.obj \ $(TMPDIR)\tnmSnmpInst.obj \ $(TMPDIR)\tnmSnmpNet.obj \ $(TMPDIR)\tnmSnmpRecv.obj \ $(TMPDIR)\tnmSnmpSend.obj \ $(TMPDIR)\tnmSnmpTcl.obj \ $(TMPDIR)\tnmSnmpUsm.obj \ $(TMPDIR)\tnmSnmpUtil.obj \ $(TMPDIR)\tnmMibFrozen.obj \ $(TMPDIR)\tnmMibParser.obj \ $(TMPDIR)\tnmMibUtil.obj \ $(TMPDIR)\tnmMibTcl.obj \ $(TMPDIR)\tnmMibTree.obj \ $(TMPDIR)\tnmWinIcmp.obj \ $(TMPDIR)\tnmWinInit.obj \ $(TMPDIR)\tnmWinLog.obj \ $(TMPDIR)\tnmWinSocket.obj \ $(TMPDIR)\tnmWinSnmp.obj \ $(TMPDIR)\ether_xdr.obj \ $(TMPDIR)\ether_clnt.obj \ $(TMPDIR)\mount_xdr.obj \ $(TMPDIR)\mount_clnt.obj \ $(TMPDIR)\rstat_xdr.obj \ $(TMPDIR)\rstat_clnt.obj \ $(TMPDIR)\pcnfsd_clnt.obj \ $(TMPDIR)\pcnfsd_xdr.obj TKIOBJS = \ $(TMPDIR)\tkiEditor.obj \ $(TMPDIR)\tkiObjects.obj \ $(TMPDIR)\tkiMethods.obj \ $(TMPDIR)\tkiMisc.obj \ $(TMPDIR)\tkiFlash.obj \ $(TMPDIR)\tkiStripchart.obj \ $(TMPDIR)\tkiBarchart.obj \ $(TMPDIR)\tkiUtil.obj \ $(TMPDIR)\tkiInit.obj \ $(TMPDIR)\tkiWinInit.obj # Targets all: tnm.dll tkined.dll tnm.dll: $(TNMOBJS) oncrpc.lib resolv.lib $(link) $(linkdebug) $(dlllflags) \ $(TCLP)/lib/tcl$(TCL_DLL_VERSION).lib \ oncrpc.lib resolv.lib wsock32.lib \ $(guilibsdll) -out:tnm.dll $(TNMOBJS) tkined.dll: $(TKIOBJS) $(link) $(linkdebug) $(dlllflags) \ $(TCLP)/lib/tcl$(TCL_DLL_VERSION).lib \ $(TCLP)/lib/tk$(TK_DLL_VERSION).lib $(guilibsdll) \ -out:tkined.dll $(TKIOBJS) # Implicit Targets .c.obj: $(cc32) $(cdebug) $(cflags) $(cvarsdll) $(INCLUDES) \ $(DEFINES) -Fo$(TMPDIR)\ $< {$(ROOT)\tnm\generic}.c{$(TMPDIR)}.obj: $(cc32) $(cdebug) $(cflags) $(cvarsdll) $(INCLUDES) \ $(DEFINES) -Fo$(TMPDIR)\ $< {$(ROOT)\tnm\snmp}.c{$(TMPDIR)}.obj: $(cc32) $(cdebug) $(cflags) $(cvarsdll) $(INCLUDES) \ $(DEFINES) -Fo$(TMPDIR)\ $< {$(ROOT)\compat}.c{$(TMPDIR)}.obj: $(cc32) $(cdebug) $(cflags) $(cvarsdll) $(INCLUDES) \ $(DEFINES) -Fo$(TMPDIR)\ $< {$(ROOT)\tkined\generic}.c{$(TMPDIR)}.obj: $(cc32) $(cdebug) $(cflags) $(cvarsdll) $(INCLUDES) \ $(DEFINES) -Fo$(TMPDIR)\ $< # # Lots of installation targets. # install: tnm-install tki-install tnm-install: tnm-install-bin tnm-install-library tnm-install-mibs tnm-install-agents tnm-install-examples tnm-install-bin: tnm.dll -mkdir $(TNM) copy tnm.dll $(SYSTEM32)\tnm$(TNM_DLL_VERSION).dll echo package ifneeded Tnm $(TNM_VERSION) {load tnm$(TNM_DLL_VERSION).dll} > $(TNM)\pkgIndex.tcl tnm-install-library: -mkdir $(TNM)\library copy $(ROOT)\tnm\library\* $(TNM)\library tnm-install-mibs: -mkdir $(TNM)\mibs copy $(ROOT)\tnm\mibs\*-SMI $(TNM)\mibs copy $(ROOT)\tnm\mibs\*-TC $(TNM)\mibs copy $(ROOT)\tnm\mibs\*-TM $(TNM)\mibs copy $(ROOT)\tnm\mibs\*-MIB $(TNM)\mibs copy $(ROOT)\tnm\mibs\*-CONF $(TNM)\mibs copy $(ROOT)\tnm\mibs\*-COMPAT $(TNM)\mibs tnm-install-agents: -mkdir $(TNM)\agents copy $(ROOT)\tnm\agents\* $(TNM)\agents tnm-install-examples: -mkdir $(TNM)\examples copy $(ROOT)\tnm\examples\* $(TNM)\examples tki-install: tki-install-bin tki-install-library tki-install-bitmaps tki-install-apps tki-install-bin: tkined.dll -mkdir $(TKI) copy tkined.dll $(SYSTEM32)\tkined$(TKI_DLL_VERSION).dll copy tkined $(TCL)\bin\tkined$(TKI_DLL_VERSION) copy $(ROOT)\tkined\tkined.defaults $(TKI) echo package ifneeded Tkined $(TKI_VERSION) {load tkined$(TKI_DLL_VERSION).dll} > $(TKI)\pkgIndex.tcl tki-install-library: -mkdir $(TKI)\library copy $(ROOT)\tkined\library\* $(TKI)\library tki-install-bitmaps: -mkdir $(TKI)\bitmaps copy $(ROOT)\tkined\bitmaps\* $(TKI)\bitmaps tki-install-apps: -mkdir $(TKI)\apps copy $(ROOT)\tkined\apps $(TKI)\apps check: tnm-check tnm-check: cd $(ROOT)\tnm\tests $(TCL)\bin\tclsh$(TCL_SH_VERSION) all clean: -$(RM) $(TMPDIR)\*.obj -$(RM) $(TMPDIR)\tnm.dll -$(RM) $(TMPDIR)\tkined.dll -$(RM) $(TMPDIR)\*.lib -$(RM) $(TMPDIR)\*.exp -$(RM) $(TMPDIR)\bcc32.cfg