#
# MAKEFILE
# Schmoo Figure Handler Chapter 11
#
# Copyright (c)1993 Microsoft Corporation, All Rights Reserved
#
# Kraig Brockschmidt, Software Design Engineer
# Microsoft Systems Developer Relations
#
# Internet  :  kraigb@microsoft.com
# Compuserve:  >INTERNET:kraigb@microsoft.com
#

#Add '#' to the next line for 'noisy' operation
!CMDSWITCHES +s

#
#Compiler flags
#Use "SET RETAIL=1" from MS-DOS to compile non-debug version.
#
!ifndef RETAIL
CFLAGS  = -c -Od -AS -Zipe -G2s -W3 -GA -GEd -Aw
LINK    = /al:16/ONERROR:NOEXE/CO
DEFS    = -DSTRICT -D_WINDLL -DDEBUG
!else
CFLAGS  = -c -Oat -AS -Zpe -G2s -W3 -GA -GEd -Aw
LINK    = /al:16/ONERROR:NOEXE
DEFS    = -DSTRICT -D_WINDLL
!endif

.SUFFIXES: .h .obj .exe .cpp .res .rc

TARGET  = hschmoo

goal:   precomp.pch $(TARGET).dll

clean:
    del *.pch
    del *.obj
    del *.res
    del *.dll

PCHFLAGS= -Yu$(TARGET).h -Fpprecomp.pch

#CHAPTER5MOD
OLELIBS  = compobj storage ole2
LIBS     = libw sdllcew $(OLELIBS)
#End CHAPTER5MOD


INCLS   = $(TARGET).h
OBJS1   = $(TARGET).obj figure.obj iperstor.obj
OBJS2   = ioleobj.obj iviewobj.obj iadvsink.obj
OBJS    = $(OBJS1) $(OBJS2)
RCFILES =


#####

.cpp.obj:
    echo +++++++++
    echo Compiling $*.cpp
    cl -nologo $(CFLAGS) $(PCHFLAGS) $(DEFS) $*.cpp

.rc.res:
    echo +++++++++
    echo Compiling Resources
    rc -r $(DEFS) $*.rc

precomp.pch : $(TARGET).h
    echo +++++++++
    echo Precompiling $(TARGET).h
    cl $(CFLAGS) $(DEFS) -Yc$(TARGET).h -Fpprecomp.pch -Foprecomp precomp.cpp


#This rule builds a linker response file on the fly depending on debug flags
$(TARGET).dll : $(OBJS) $(TARGET).res $(TARGET).def
    echo ++++++++++
    echo Linking $@
    echo libentry.obj precomp.obj +              > $(TARGET).lrf
    echo $(OBJS1)+                              >> $(TARGET).lrf
    echo $(OBJS2)                               >> $(TARGET).lrf

    echo $(TARGET).dll $(LINK)                  >> $(TARGET).lrf
    echo nul/li                                 >> $(TARGET).lrf
    echo $(LIBS)/NOD/NOE                        >> $(TARGET).lrf
    echo $(TARGET).def                          >> $(TARGET).lrf

    link @$(TARGET).lrf
    rc -v $(TARGET).res $(TARGET).dll
    del $(TARGET).lrf


##### Dependencies #####

#This rule is defined separately to avoid precompiled headers where
#INITGUIDS is defined.

$(TARGET).obj : $(TARGET).cpp   $(INCLS)
    echo +++++++++
    echo Compiling $*.cpp
    cl -nologo $(CFLAGS) $(DEFS) $*.cpp

figure.obj    : figure.cpp    $(INCLS)
iperstor.obj  : iperstor.cpp  $(INCLS)
ioleobj.obj   : ioleobj.cpp   $(INCLS)
iviewobj.obj  : iviewobj.cpp  $(INCLS)
iadvsink.obj  : iadvsink.cpp  $(INCLS)
$(TARGET).res : $(TARGET).rc  $(RCFILES)
