!include <$(MSTOOLS)\samples\ole\include\olesampl.mak>

#
#  This makefile will build the library Ole2Ansi.Dll.
#
#
#  To Build:
#
#    Make sure the environment variables Include and Lib are defined and
#    a C++ compiler is in the current path.
#
#    Then just type "nmake"
#
#

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

#
#Compiler flags
#Use "SET NODEBUG=1" to compile non-debug version.
#

!IFDEF NODEBUG
DEFS = -DMAKEDLL -DWIN32 -D_WIN32
!ELSE
DEFS = -DMAKEDLL -DDBG -DWIN32 -D_WIN32
!ENDIF

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

TARGET  = ole2ansi

goal:   $(TARGET).dll

clean:
    del *.obj
    del *.exp
    del *.lib
    del *.dll
    del *.pch

#  String pooling ok for Ole2Ansi.
cflags = -Gf $(cflags)

PCHFLAGS= -Yuole2ansi.h -Fpole2ansi.pch

INCLS    = ole2ansi.h

PRECOMPOBJ = ole2ansi.obj

OBJS1    = AnsiComp.obj WideComp.obj AnsiStor.obj WideStor.obj
OBJS2    = AnsiDvOb.obj WideDvOb.obj AnsiMoni.obj WideMoni.obj
OBJS3    = AnsiOle1.obj WideOle1.obj AnsiOle2.obj WideOle2.obj AnsiOle3.obj
OBJS4    = AnsiCtl.obj WideCtl.obj ConvCtl.obj WrapCtl.obj
OBJS5    = AnsiDisp.obj WideDisp.obj Thunk.obj Globals.obj
OBJS6    = AnsiOA.obj Convert.obj Convert2.obj Wrapper.obj Trace.obj Debug.obj
OBJS     = $(OBJS1) $(OBJS2) $(OBJS3) $(OBJS4) $(OBJS5) $(OBJS6)

LIBS     = ole32.lib oleaut32.lib kernel32.lib user32.lib uuid.lib advapi32.lib $(libcdll)

#####

ole2ansi.pch: ole2ansi.h ole2ansi.cpp
    echo +++++++++
    echo Precompiling ole2ansi.h
    $(cc) $(cflags) $(cdebug) $(DEFS) -Ycole2ansi.h -Fpole2ansi.pch -Foole2ansi ole2ansi.cpp

.cpp.obj:
    echo ++++++++++
    echo Compiling $*.cpp
    $(cc) $(cflags) $(cdebug) $(DEFS) $(PCHFLAGS) $*.cpp

.c.obj:
    echo ++++++++++
    echo Compiling $*.c
    $(cc) $(cflags) $(cdebug) $(DEFS) $*.c

#Build import library
$(TARGET).lib: ole2ansi.pch $(OBJS) ole2ansi.def
    echo ++++++++++
    echo Building Import Library
!IF "$(CPU)" != "i386"
    @copy ole2ansi.rsc ole2ansi.def
!ENDIF
    $(implib) -machine:$(CPU)   \
    -def:ole2ansi.def           \
    $(OBJS)                     \
    $(PRECOMPOBJ)               \
    -out:$(TARGET).lib
    if not exist ..\lib mkdir ..\lib
    copy $(TARGET).lib ..\lib

#Build a linker response file depending on build flags
$(TARGET).dll: ole2ansi.pch $(TARGET).lib $(OBJS) ole2ansi.def
    echo ++++++++++
    echo Linking $@
    $(link) $(ldebug) $(dlllflags) \
        /Out:$(TARGET).dll      \
        $(OBJS)                 \
        $(PRECOMPOBJ)           \
        $(OLELIBS)              \
        $(TARGET).exp           \
        $(LIBS)
    if not exist ..\bin mkdir ..\bin
    copy $(TARGET).dll ..\bin
