#===================================================================
#
#   DDE manager DLL make file
#
#===================================================================
# International mods
# NOTE: INTL_SRC, INTL_EXE and LANG are macros set by international

!INCLUDE ..\makefile.inc

WINLIB=..\lib
INCLUDE=-I..\inc -I..\..\inc
CC=$(CL)
RC=$(RC) $(INCLUDE)

RES_DIR=.\messages\$(ALT_PROJECT)

APP = ddeml

!if !$(FREEBUILD)
DBG=1
CDEBUG=/Odi /Zd
ADEBUG=-Zd
LDEBUG=/LI
!endif

!IFDEF DBG
CFLAGS=-DDEBUG -Ocilgtn -Zep $(CDEBUG)
CVLINK=$(LDEBUG)
AFLAGS=-Zi -DDEBUG $(INCLUDE) $(ADEBUG)

!IFDEF DBGHEAPS
CFLAGS=-DWATCHHEAPS -DDEBUG -Ziep -Od $(CDEBUG)
!ENDIF

!ELSE

CFLAGS=-Ocilgtn -Zep
CVLINK=
AFLAGS=$(INCLUDE)

!ENDIF

CCL  = $(CC) $(CFLAGS) -W3 -c -u -ASw -G2swc -Fo$*.obj

OBJ1 = $(DEST)\ddeml.obj $(DEST)\dmgdb.obj $(DEST)\dmghsz.obj $(DEST)\dmgmon.obj $(DEST)\heapwach.obj $(DEST)\stdptcl.obj
OBJ2 = $(DEST)\dmgwndp.obj $(DEST)\dmgdde.obj $(DEST)\dmgq.obj $(DEST)\dmgmem.obj $(DEST)\hdata.obj $(DEST)\stdinit.obj $(DEST)\register.obj
ASMOBJ = $(DEST)\libentry.obj $(DEST)\dmgutil.obj

#===================================================================
#
# Dependencies
#
#===================================================================

all: $(DEST)\ddeml.dll $(DEST)\ddeml.lib
    @echo -------- $(DEST) BUILD COMPLETE --------

$(OBJ1) $(OBJ2): $(@B).c ddemlp.h
    @set include=$(ENVINCS);$(INCLUDE)
    $(CCL) $(@B).c

$(ASMOBJ): $(@B).asm
    $(ASM) $(AFLAGS) $(@B).asm, $*.obj;

$(DEST)\ddeml.lib: ddeml.def
    $(MKPUB) ddeml.def $(DEST)\stripped.def
    $(IMPLIB) $(DEST)\ddeml.lib $(DEST)\stripped.def

$(DEST)\ddeml.rc: $(RES_DIR)\ddeml.rc
    copy $? $@

$(DEST)\ddeml.rcv: $(RES_DIR)\ddeml.rcv
    copy $? $@

$(DEST)\ddeml.dlg: $(RES_DIR)\ddeml.dlg
    copy $? $@

$(DEST)\ddeml.res: $(DEST)\ddeml.rc ddemlp.h  $(DEST)\ddeml.rcv $(DEST)\ddeml.dlg ..\inc\common.ver ..\inc\version.h
        $(RC) -r $(DEST)\ddeml.rc

$(DEST)\ddeml.dll: $(OBJ1) $(OBJ2) $(ASMOBJ) ddeml.def $(DEST)\ddeml.res
        $(LINK) @<<
        $(OBJ1) +
        $(OBJ2) +
        $(ASMOBJ)
        $(DEST)\ddeml.dll /FAR $(CVLINK)
        $(DEST)\ddeml /map
        $(WINLIB)\$(ALT_PROJECT)\libw.lib $(WINLIB)\sdllcew.lib /nod /noe
        ddeml.def
<<
        $(MAPSYM) $(DEST)\ddeml
        copy ddeml.sym $(DEST)
        del ddeml.sym
        $(RC) -30 -t $(DEST)\ddeml.res $(DEST)\ddeml.dll
        cd $(DEST)
        binplace -o $(ALT_PROJECT_TARGET) ddeml.dll ddeml.map ddeml.sym
        cd ..\..\..

#
# clean target
#
clean: cleanup all

cleanup:
   if exist $(DEST)\*.obj  del $(DEST)\*.obj
   if exist $(DEST)\*.sym  del $(DEST)\*.sym
   if exist $(DEST)\*.dll  del $(DEST)\*.dll
   if exist $(DEST)\*.obj del $(DEST)\*.obj
   if exist $(DEST)\*.sym del $(DEST)\*.sym
   if exist $(DEST)\*.dll del $(DEST)\*.dll
   if exist *.rc         del *.rc
   if exist *.res        del *.res
   if exist *.lib        del *.lib