#=========================================================
#
# nmake         - build DEBUG version (default)
# nmake SHIP=1  - build ship version (nmake clean first!)
#
#=========================================================
#
# Default definitions
#
NAME=makemdi
MODEL=M

!if "$(SHIP)"==""
SHIP=0
!endif

DEFS=-DSTRICT -DWINDOWS

#=========================================================
#
# Debug options
#
!if $(SHIP)==0
#
# CodeView only:
#
DEBUG_CFLAGS=/DDEBUG /Od /Zi -Yd
DEBUG_AFLAGS=/DDEBUG /Zi
DEBUG_LFLAGS=/CO /M /LI
#
# symdeb/wdeb386:
#
# DEBUG_CFLAGS=/DDEBUG /Od
# DEBUG_AFLAGS=/DDEBUG
# DEBUG_LFLAGS=/MAP
# DEBUG_MAPSYM=mapsym $(NAME)
!else
#
# Non-debug options
#
DEBUG_CFLAGS=/DNDEBUG /Oegilt
DEBUG_AFLAGS=
DEBUG_LFLAGS=
DEBUG_MAPSYM=
!endif

#=========================================================
#
# Default compiler, assembler, linker flags
#
CFLAGS=$(DEBUG_CFLAGS) /nologo /W3 /A$(MODEL) /G2swc /Zp $(DEFS)
AFLAGS=$(DEBUG_AFLAGS) /W2 /p $(DEFS)
LFLAGS=$(DEBUG_LFLAGS) /NOD /NOE

#=========================================================
#
# Libraries
#
LIBS=libw $(MODEL)libcew commdlg

#=========================================================
#
# Build rules
#
.SUFFIXES: .c .asm .rc .obj .res

.c.obj:
	@echo Compiling $(@B).c
	@cl -Yu$(NAME).h $(CFLAGS) -c $*.c > $(@B).err

.asm.obj:
	@masm $(AFLAGS) $*.asm;

.rc.res:
	@rc /r $*.rc

#=========================================================
#
# Pseudo targets
#
target: $(NAME).exe

clean:
	-del *.obj
	-del *.pch
	-del $(NAME).exe
	-del $(NAME).res
	-del $(NAME).sym
	-del $(NAME).map

#=========================================================
#
# File dependencies
#
OBJ=			app.obj client.obj
CLASSES=		frame.obj ribbon.obj chart.obj sheet.obj

$(NAME).res:	$(NAME).rc resource.h $(CLASSES:obj=rc)
app.obj:		app.c		$(NAME).h resource.h $(OBJ:obj=h) $(CLASSES:obj=h)
client.obj:		client.c	$(NAME).h resource.h $(OBJ:obj=h) $(CLASSES:obj=h)
frame.obj:		frame.c		$(NAME).h resource.h $(OBJ:obj=h) $(CLASSES:obj=h)
ribbon.obj:		ribbon.c	$(NAME).h resource.h $(OBJ:obj=h) $(CLASSES:obj=h)
chart.obj:		chart.c		$(NAME).h resource.h $(OBJ:obj=h) $(CLASSES:obj=h)
sheet.obj:		sheet.c		$(NAME).h resource.h $(OBJ:obj=h) $(CLASSES:obj=h)

$(NAME).pch:	$(NAME).c	$(NAME).h resource.h $(OBJ:obj=h) $(CLASSES:obj=h)
	@echo Compiling $(@B).c
	@cl -Yc$(NAME).h $(CFLAGS) -c $*.c > $(@B).err

$(NAME).exe:	$(NAME).res $(NAME).pch $(OBJ) $(CLASSES) makefile $(NAME).def
	link /nologo @<<
$(OBJ) $(CLASSES)
$(NAME).exe
$(NAME).map
$(LIBS)
$(NAME).def $(LFLAGS);
<<
	rc $(NAME).res
	mapsym $(NAME)
