# Makefile for keyboard sample programs, one using dllPower loader, other
# using idllPower directly

debug     =
ldebug    =
copro     =
optimizations  = -omtile -5r -zp4

complete_options  = $(optimizations) $(debug) $(copro)

cc                = WCC386
cpp               = WPP386
asm               = TASM
Source_Path       = SOURCE\
Obj               = OBJ\
Sample1           = SAMPLE1
Sample2           = SAMPLE2
Compiler_Options  = -w4 -zq -mf $(complete_options) -fo=$(Obj)
Assembler_Options =

# Stack size of 100K, perhaps a little much, but best be sure.
Linker_Options    = op st=100000 op C $(ldebug)
System            = dos4g
#
#

.before
  @set include=$(%watcom)\h;include;..\include

.EXTENSIONS:
.EXTENSIONS: .exe .lib .obj .asm .cpp .c

Sample1_files  =      &
  $(Obj)Sample1.OBJ   &
   ..\..\LIBIDLL\IDPOWER.LIB

Sample2_files  =      &
  $(Obj)Sample2.OBJ
# This one will be linked as a dllPower application
                     
all: bin\$(Sample1).exe bin\$(Sample2).exe

bin\$(Sample1).exe: $(Sample1_files) $(Sample1).lnk .AUTODEPEND
  wlink @$(Sample1).lnk

bin\$(Sample2).exe: $(Sample2_files) $(Sample2).lnk .AUTODEPEND
  wlink @$(Sample2).lnk

.c:   $(Source_Path)
.cpp: $(Source_Path)
.asm: $(Source_Path)

.c.obj:
  $(cc) $(Compiler_Options) $(Source_Path)$^&

.cpp.obj:                
  $(cpp) $(Compiler_Options) $(Source_Path)$^&

.asm.obj:
  $(asm) $(Assembler_Options) $(Source_Path)$^&, $(Obj)

$(Sample1).lnk : $(Sample1_files)
  %create $(Sample1).lnk
  @%append $(Sample1).lnk system $(System)
  @%append $(Sample1).lnk $(Linker_Options)
  @%append $(Sample1).lnk name bin\$(Sample1)
  @%append $(Sample1).lnk op stub=wstub.exe
  @for %i in ($(Sample1_files)) do @%append $(Sample1).lnk file %i

$(Sample2).lnk : $(Sample2_files)
  %create $(Sample2).lnk
  @%append $(Sample2).lnk system powerExe
  @%append $(Sample2).lnk $(Linker_Options)
  @%append $(Sample2).lnk name bin\$(Sample2)
  @for %i in ($(Sample2_files)) do @%append $(Sample2).lnk file %i

clean: .SYMBOLIC
  @if exist *.mbr del *.mbr
  @if exist *.csm del *.csm
  @if exist *.lnk del *.lnk
  @if exist *.err del *.err
  @if exist *.bak del *.bak
  @if exist include\*.bak del include\*.bak
  @if exist lib\*.bak del lib\*.bak
  @if exist source\*.bak del source\*.bak
  @if exist obj\*.obj del obj\*.obj

clean_bak: .SYMBOLIC
  @if exist *.bak del *.bak
  @if exist lib\*.bak del lib\*.bak
  @if exist include\*.bak del include\*.bak
  @if exist source\*.bak del source\*.bak

