#
# Configuration items.
#
# If WIN32, either define the environment variable CPU or WIN32
# If DEBUG, define the environment variable DEBUG
#
WIN32=1
#DEBUG=1

PROJ=AppKey

OBJS = $(INTDIR)\$(PROJ).obj

#ALT_VAR =
#ALT_FILT=
#ALT_INC =
#ALT_RC  =
#ALT_LINK=
#ALT_LIB =
!if exist(..\include\cwmkopts.mak)
include ..\include\cwmkopts.mak
!endif
!IF "$(OS)" == "Windows_NT"
NULL=
!ELSE 
NULL=nul
!ENDIF 

!ifdef DBC_ABLE
ALT_VAR =-DDBC_ABLE $(DBC_OPTS) $(ALT_VAR)
!endif

!ifndef PDBDIR
!ifdef DEBUG
PDBDIR = .\Debug
!else
PDBDIR = .\Release
!endif
!endif

INCDEF  =-I..\cwstart -I..\include
CWSTART =..\cwstart\cwstart.h
EXPORTS =..\include\exports.h

!ifdef BSC 
BSCFILE =$(OUTDIR)\$(PROJ).bsc
BSC_FLAGS=/NOLOGO -v -Es
!endif

!if Defined(CPU) || Defined(WIN32)

WIN32   =1
DWIN32  =-DWIN32

!ifdef DEBUG
CCOPT   =/Od /Zi /DDEBUG /D_DEBUG /Fd"$(PDBDIR)\$(PROJ).pdb"
LINKDBG =/DEBUG /DEBUGTYPE:BOTH /PDB:"$(PDBDIR)\$(PROJ).pdb"
OUTDIR  =.\Debug
INTDIR  =.\Debug
PCHDIR  =..\include\Debug
!else
!ifdef PDB
CCOPT   =/Ows /Ob1 /Oy- /DNDEBUG /Fd"$(PDBDIR)\$(PROJ).pdb" /Zi
LINKDBG =/DEBUG /DEBUGTYPE:CV /PDB:"$(PDBDIR)\$(PROJ).pdb" /OPT:REF
!else
CCOPT   =/Ows /Ob1 /Oy- /DNDEBUG
LINKDBG =
!endif
OUTDIR  =.\Release
INTDIR  =.\Release
PCHDIR  =..\include\Release
!endif
CC      =@cl /nologo /ML /W3 /c $(INCDEF) $(ALT_INC) /DSTRICT /G3 /Zp1 $(CCOPT) $(ALT_VAR) /D_X86_ /D_WINDOWS /DWIN32 /Fp$(PROJ).pch
!ifdef BSC 
CC_BSC  =@cl /nologo /ML /W3 /c $(INCDEF) $(ALT_INC) /DSTRICT /G3 /Zp1 $(ALT_VAR) /DNDEBUG /D_X86_ /D_WINDOWS /DWIN32 /Fp$(PROJ).pch
!endif
#BASE    =/BASE:@..\include\coffbase.txt,$(PROJ)
LINKLIBS=oldnames.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib $(LIBDIR)\cwdll32.lib $(LIBDIR)\cwstart.lib $(ALT_LIB)
LFLAGS  =/NOLOGO $(LINKDBG) $(ALT_LINK) /MAP:$(INTDIR)\$(PROJ).map /DLL /DEF:$(PROJ).def /ENTRY:DLLEntry@12 /SUBSYSTEM:windows /implib:$(LIBDIR)\$(PROJ).lib /OUT:$(OUTDIR)\$(PROJ).dll $(BASE)
DEF_FILT=-kWIN32 $(ALT_FILT) -s/RESIDENTNAME// -t -q
LIBDIR  =..\lib\WIN32

!else

!ifdef DEBUG
CCOPT   =/Od /G2s /Z7 /DDEBUG /D_DEBUG
LINKDBG =/co/li
OUTDIR  =.\Dbg
INTDIR  =.\Dbg
PCHDIR  =..\include\Dbg
!else
CCOPT   =/Ows /G3s
LINKDBG =
OUTDIR  =.\Rel
INTDIR  =.\Rel
PCHDIR  =..\include\Rel
!endif
CC      =@cl /nologo /W3 /c $(INCDEF) $(ALT_INC) $(ALT_VAR) /DSTRICT /DMT /Alfw $(CCOPT) /Zp1 /Fp$(PROJ).pch
!ifdef BSC 
CC_BSC  =@cl /nologo /W3 /c $(INCDEF) $(ALT_INC) $(ALT_VAR) /DSTRICT /DMT /Alfw /G3s /Zp1 /Fp$(PROJ).pch
!endif
LINKLIBS=libw.lib ldllcew.lib oldnames $(LIBDIR)\cwright.lib $(LIBDIR)\cwstart.lib $(ALT_LIB)
LFLAGS  =/NOLOGO /map/NOD/NOE $(LINKDBG) $(ALT_LINK)
INVOKE_RC=@rc -nologo -t $(INCDEF) $(ALT_INC) $(INTDIR)\$(PROJ).res $(OUTDIR)\$(PROJ).dll
INVOKE_IMPLIB=
DEF_FILT=-kWIN16 $(ALT_FILT) -t -q
LIBDIR  =..\lib\WIN16

!endif

#CWPCHSRC=..\include\cwstdinc.c
#CWPCH   =$(PROJ).pch
#CWPCHOBJ=

# STABLEHDRS are used in PCH.
STABLEHDRS = $(EXPORTS) $(CWSTART)
BOUNDRY = cwstart.h

!if [@echo Creating:  $(OUTDIR)\$(PROJ).dll]
!endif
!if [if exist $(PROJ).rs if exist $(PROJ).rc erase $(PROJ).rc]
!endif
!if [if exist $(PROJ).rs if exist $(INTDIR)\$(PROJ).rc copy $(INTDIR)\$(PROJ).rc $(PROJ).rc > nul]
!endif

!if [if exist $(PROJ).fd if exist $(PROJ).def erase $(PROJ).def]
!endif
!if [if exist $(PROJ).fd if exist $(INTDIR)\$(PROJ).def copy $(INTDIR)\$(PROJ).def $(PROJ).def > nul]
!endif


all: $(OUTDIR)\$(PROJ).dll $(BSCFILE)


$(INTDIR)\$(PROJ).res: $(PROJ).rc $(EXPORTS) $(RES_DEPS)
!ifdef WIN32
   @rc $(ALT_RC) $(INCDEF) $(ALT_INC) $(DWIN32) -r -fo $@ $(PROJ).rc
!else
   @rc -nologo $(ALT_RC) $(INCDEF) $(ALT_INC) $(DWIN32) -r -fo $@ $(PROJ).rc
!endif
   @echo $(PROJ).rc

!if exist($(PROJ).rs)
.SUFFIXES: .rs
.rs.rc:
   @if exist $@ erase $@
   @rsc -q $(ALT_VAR) $(INCDEF) $(ALT_INC) $(DWIN32) $(PROJ).rs $@
	@echo $(PROJ).rs
   @copy $@ $(INTDIR)\$@
!endif

!if exist($(PROJ).fd)
.SUFFIXES: .fd
.fd.def:
   @if exist $@ erase $@
   @rsc -q $(DEF_FILT) $(PROJ).fd $@
	@echo $(PROJ).fd
   @copy $@ $(INTDIR)\$@
!endif

#$(CWPCH): $(STABLEHDRS)
#   $(CC) /Yc$(BOUNDRY) /Fo$(CWPCHOBJ) $(CWPCHSRC)

$(OUTDIR)\$(PROJ).dll: $(OUTDIR) $(INTDIR) \
      $(OBJS) \
      $(PROJ).def           \
      $(INTDIR)\$(PROJ).res 
   @link $(LFLAGS) @<<$(PROJ).crf
!ifdef WIN32
      $(OBJS)
      $(LINKLIBS)
      $(INTDIR)\$(PROJ).res
!else
      $(OBJS:.obj=.obj +^
      ) 
      $(OUTDIR)\$(PROJ).dll
      $(INTDIR)\$(PROJ).map
      $(LINKLIBS)
      $(PROJ).def
!endif
<<
!ifndef WIN32
   $(INVOKE_RC)
   $(INVOKE_IMPLIB)
!endif

.c{$(INTDIR)}.obj:
   $(CC) /YX$(BOUNDRY) /Fo$@ $<
   @if exist $(PROJ).pch erase $(PROJ).pch

{}.c{$(INTDIR)}.sbr:
   @echo Creating browser information file $@
   $(CC_BSC) /Zs /FR$@ $?

!ifdef BSC
$(BSCFILE): $(OBJS:.obj=.sbr)
   @bscmake $(BSC_FLAGS) -o $@ @<<
$(?:.sbr=.sbr ^
)
<<
!endif

$(OUTDIR) $(INTDIR) $(PCHDIR) ::
!ifdef WIN32
    @if not exist "$@/$(NULL)" mkdir "$@"
!else
    @if not exist "$@/$(NULL)" mkdir $@
!endif

# Dependencies
$(INTDIR)\$(PROJ).obj: $(PROJ).c $(CWPCH)
