# $Id: makefile,v 1.9 2003/12/20 11:13:30 root Exp $
#
# Invoke with NMAKE v 1.21 or higher.
#
# COMPILER = CSET2     -> C Set++
# COMPILER = HIGHC     -> MetaWare High C/C++ v 3.xx
# COMPILER = WATCOM    -> OpenWatcom
# LIBC =1              -> use XPG.4 system runtime libraries
# SYSLOG = 1           -> include SYSLOG support
# NEWSTACK = 1         -> (if SYSLOG = 1) link for TCPIP32.DLL

PROJ = smartmon

CSPINCLUDE = ..\MODULES\INCLUDE
CSPMODULES = ..\MODULES

!ifndef TKTPATH
TKTPATH = E:\TOOLKIT
!endif

HPATH=$(TKTPATH)\H
LIBCPATH=$(HPATH)\LIBC
!ifndef NEWSTACK
STACKPATH=$(HPATH)\STACK16
!endif

!ifndef COMPILER
COMPILER = CSET2
!endif

!ifdef RETAIN
RETAIN_ID = /DRETAIN_ID=1
!endif

# C Set++ or VisualAge v 3.65
!if "$(COMPILER)" == "CSET2" || "$(COMPILER)" == "VACPP"
CC = icc.exe
LINKER = link386.exe
!if "$(COMPILER)" == "VACPP"
VACOPT = /qtune=pentium2
LINKLIB = LIBCS+OS2386+VACPP365
!else
VACOPT = /G4
LINKLIB = LIBCS+OS2386
!endif
!ifdef NEWSTACK
STOPTS = -DNEWSTACK
!else
STOPTS = -I$(STACKPATH)
!endif
!ifdef SYSLOG
LOGOPTS = -DUSE_SYSLOG=1 $(STOPTS) -I$(HPATH)
!endif
COPT = /c /Re /Se $(VACOPT) /Gs+ /Gi+ $(LOGOPTS) /I$(LIBCPATH) /DTZ_VAR=1 /I$(CSPINCLUDE) /Icontrib $(RETAIN_ID) /Fo$@
LINKDEF = $(PROJ).DEF
!endif

# MetaWare High C/C++
!if "$(COMPILER)" == "HIGHC"
CC = hc.exe
LINKER = link386.exe
!ifdef LIBC
!ifndef MWPATH
MWPATH = E:\LANG\METAWARE
!endif
ADD_COPT = -I$(LIBCPATH) -DTZ_VAR=1 -D__EXTENDED__
!endif
!ifdef NEWSTACK
STOPTS = -DNEWSTACK
!else
STOPTS = -I$(STACKPATH)
!endif
!ifdef SYSLOG
LOGOPTS = -DUSE_SYSLOG=1 -I$(MWPATH)\INC\OS2 $(STOPTS) -I$(HPATH)
!endif
COPT = -c -O7 -Hpentium $(LOGOPTS) $(ADD_COPT) -Hpragma=Offwarn(553) -Hpragma=Offwarn(257) -Hon=Optimize_FP -Hoff=BEHAVED -I$(CSPINCLUDE) -Icontrib $(RETAIN_ID) -Fo $@
LINKLIB = HCD_OMF+OS2386+LIBCSS+HC
LINKDEF = $(PROJ).DEF
!endif

# OpenWatcom
!if "$(COMPILER)" == "WATCOM"
CC = wcc386.exe
LINKER = link386.exe
!ifdef LIBC
!ifndef MWPATH
MWPATH = E:\LANG\METAWARE
!endif
ADD_COPT = -i=$(LIBCPATH) -zl -DTZ_VAR=1 -D__EXTENDED__ -D_LNK_CONV=_System
!endif
!ifdef NEWSTACK
STOPTS = -DNEWSTACK
!else
STOPTS = -i=$(STACKPATH)
!endif
!ifdef SYSLOG
LOGOPTS = -DUSE_SYSLOG=1 $(STOPTS) -i=$(HPATH)
!endif
COPT = -5s -Ot -fo=$@ $(LOGOPTS) $(ADD_COPT) -wcd=107 -ze -s -i=$(CSPINCLUDE) -i=contrib $(RETAIN_ID)
LINKLIB = OWATCOMS+OS2386+LIBCSS
LINKDEF = $(PROJ).DEF
!endif

.SUFFIXES: .c .asm .obj .exe

!ifdef SYSLOG
LOGOBJS = syslog.obj netstub.obj
# tcp32dll+so32dll/tcpip32 are hooked dynamically
LOGLIBS =
!endif

LINKOPT = /PMTYPE:VIO /NOD /NOE /MAP:FULL

all: $(PROJ).exe
$(PROJ).exe: $(PROJ).obj uniftime.obj csp_lib.obj $(ADDFILES) $(LOGOBJS)
 $(LINKER) $(LINKOPT) $**,$(@B),$(@B).map,$(LINKLIB) $(LOGLIBS),$(LINKDEF);
!ifndef NO_PACK
 lxlite /CS /MF3 /BDX- /ZS $@
 packexe $@
!endif
 mapsym $(@B).map

$(PROJ).obj: $(PROJ).c contrib/idedata.h contrib/attrs.h
 $(CC) $(COPT) $(PROJ).c
csp_lib.obj: $(CSPMODULES)\csp_lib.c
 $(CC) $(COPT) $**
syslog.obj: contrib\syslog.c
 $(CC) $(COPT) $**

.c.obj:
 $(CC) $(COPT) $<
