# ----------------------------------------------------------------------------
# makefile: Build Win32 application MAZE.EXE
# ----------------------------------------------------------------------------
#
# Usage:
#  nmake [RELEASE=1] [OPTIMIZE=1]
#
# Options:
#  OPTIMIZE=1 to build the optimized debugging variant
#  RELEASE=1  to build release instead debug variant
#  UNICODE=1  to build Unicode instead SBCS variant
#
# nmake clean   to delete all built files except EXE target file
# ----------------------------------------------------------------------------

# --- project specific header files
HD = resource.h

# --- target for error output
!IFDEF CMDLINE
COUT = >>proj.err
!ENDIF

# --- set optimization option
!IFDEF RELEASE
OPTIMIZE = 1
!ENDIF

DSYS = /D_WIN32 /D_WINDOWS
COPT = /c /G3 /Gf /Gs /Gy /YX
LIBS = user32.lib gdi32.lib comdlg32.lib advapi32.lib shell32.lib kernel32.lib
LIBS = $(LIBS) LibC.lib
LOPT = /NoDefaultLib /Machine:IX86 /Subsystem:Windows /Map

!IFDEF UNICODE
DSYS = $(DSYS) /D_UNICODE
!ENDIF

!IFDEF OPTIMIZE
COPT = $(COPT) /O2w /W4
!ELSE
COPT = $(COPT) /Od /W3 /WX
DSYS = /D_DEBUG $(DSYS)
!ENDIF

!IFNDEF RELEASE
COPT = $(COPT) /Zi
LOPT = $(LOPT) /Debug /DebugType:CV
!ENDIF

COPT = $(DSYS) $(COPT)
CC = cl $(COUT) $(COPT) $(CDIR)$*.cpp

all: init maze.exe

init:
!IFDEF CMDLINE
 erase proj.err
!ENDIF

OBJS = maze.obj maze.res

maze.exe: $(OBJS)
 link $(LOPT) /out:$@ $(OBJS) $(LIBS)
!IFDEF RELEASE
 @touch /dsmabu $@
!ENDIF

maze.res: $*.rc $*.ico $(HD)
 rc /r $(DSYS) $*

maze.obj: $*.cpp $(HD)
 $(CC)

#
# clean all generated files
#

clean:
 -erase *.bak
 -erase *.pch
 -erase *.res
 -erase *.bsc
 -erase *.obj
 -erase *.err
 -erase *.map
