# makefile: Build Windows application WREPLACE
#
# Usage:
#   nmake [RELASE=1] [WIN32=1]   for creating Windows application
#     * specify RELEASE=1  for generating release instead debugging variant
#     * specify WIN32=1    for generating Win32 instead Windows 3.1 variant
#
#   nmake clean    erase all generated file except target WREPLACE.EXE

HD   = wreplace.h defs.h   # project specific header files
XLIB = commdlg+ver+shell   # needed extended libraries

!IFDEF WIN32

DSYS = /DWIN32=1 /Di386=1 /D_NTWIN /D_WINDOWS /DWINVER=0x30a
CC   = cl386
COPT = /c $(DSYS) /G3 /Gs /W3
LOPT = /Link /Subsystem:Windows
LIBS = libc.lib ntdll.lib kernel32.lib user32.lib gdi32.lib \
       comdlg32.lib version.lib shell32.lib

!IFDEF RELEASE
LIBS = nAfxCW.lib $(LIBS
!ELSE
LOPT = $(LOPT) /Debug:Full /DebugType:CV
LIBS = nAfxCWD.lib $(LIBS)
!ENDIF

!ELSE

DSYS = /DWIN16=1
CC   = cl
COPT = /c $(DSYS) /AM /GA /G2 /GEs /W4
LOPT = /Align:16/NoD
LIBS = mLibCeW+LibW

!IFDEF RELEASE
LIBS = mAfxCW+$(LIBS)
!ELSE
LOPT = $(LOPT)/CodeView
LIBS = mAfxCWd+$(LIBS)
!ENDIF

!ENDIF

!IFDEF RELEASE

DOPT = /DNDEBUG
COPT = $(COPT) /Owxz
COPT2 =
HD2  = $(HD)

!ELSE

DOPT = /D_DEBUG
COPT = $(COPT) /Od /WX /Zi
!IFDEF WIN32
COPT2 =
!ELSE
COPT2 = /Yu
!ENDIF
HD2  = WREPLACE.PCH

!ENDIF

COPT = $(DOPT) $(COPT)

!IFDEF RELEASE
wreplace: $*.exe
!ELSE
!IFDEF WIN32
# Prerelease of CL386 doesn't like precompiled headers
wreplace: $*.exe
!ELSE
wreplace: $*.pch $*.exe
!ENDIF
!ENDIF

wreplace.exe: main.obj qver.obj wreplace.res $*.def
!IFDEF WIN32
 coff $(LOPT) /out:$@ main.obj qver.obj $*.res $(LIBS)
!ELSE
 link $(LOPT) main+qver, $@, , $(LIBS)+$(XLIB), $*;
 rc -31 -t $*.res
!ENDIF
!IFDEF RELEASE
 touch /dsmabu $@
!ENDIF

wreplace.res: $*.rc defs.h
!IFNDEF WIN32
 rc $(DOPT) $(DSYS) -r $*
!ELSE
 rc $(DOPT) $(DSYS) -fo $*.tmp $*
 cvtres -i386 $*.tmp -o $*.res
 del $*.tmp
!ENDIF

wreplace.pch: $(HD)
 $(CC) >main.err $(COPT) /Yc /Yd main.cpp

# macro for standard c compiler calls
CC = $(CC) >$*.err $(COPT) $(COPT2) $*.cpp

main.obj: $*.cpp $(HD2)
 $(CC)

qver.obj: $*.cpp $(HD2)
 $(CC)

clean:
 -erase wreplace.pch
 -erase wreplace.res
 -erase main.obj
 -erase qver.obj
