# Watcom C++ makefile for ptc dos

!ifeq config debug
cppoption = -xs -bt=dos -zq -d2 -5s
lib = ..\library\debug
!else
config=release
cppoption = -xs -oneatx -bt=dos -zq -5s
lib = ..\library\release
!endif

ASM_FLAGS= -f win32

objs = $(lib)\area.obj $(lib)\clear.obj $(lib)\clip.obj $(lib)\color.obj &
       $(lib)\console.obj $(lib)\copy.obj $(lib)\dpmi.obj $(lib)\error.obj &
       $(lib)\format.obj $(lib)\key.obj $(lib)\palette.obj $(lib)\surface.obj &
       $(lib)\timer.obj $(lib)\vbe.obj $(lib)\vga.obj

!ifeq asm yes
asmfiles = ..\library\release\x86_fake.obj
cppoption += -dX86_ASSEMBLER
!endif

.silent

.cpp.obj :
        wpp386 $[@ $(cppoption) -fo=$@

.asm.obj :
        nasmw $(asm_flags) -o $@ $[@

$(lib) : hello $(objs) $(asmfiles)
!ifeq config debug
        wlib -q -n -b $(lib)\ptc.lib @o_filesd.cmd
!else
        wlib -q -n -b $(lib)\ptc.lib @o_filesr.cmd
!endif
!ifeq asm yes
        wlib -q -b $(lib)\ptc.lib $(asmfiles)
!endif

hello : .SYMBOLIC
        echo Compiling $(config) library..

clean : .SYMBOLIC
        echo deleting library objects..
        if exist ..\library\debug\*.obj del ..\library\debug\*.obj
        if exist ..\library\release\*.obj del ..\library\release\*.obj
        if exist *.err del *.err
        if exist *.bak del *.bak

distclean : .SYMBOLIC
        echo deleting libraries..
        if exist ..\library\debug\ptc.lib del ..\library\debug\ptc.lib
        if exist ..\library\release\ptc.lib del ..\library\release\ptc.lib
        if exist ..\library\debug\hermes.lib del ..\library\debug\hermes.lib
        if exist ..\library\release\hermes.lib del ..\library\release\hermes.lib

$(lib)\area.obj      : area.cpp area.h .AUTODEPEND
$(lib)\clear.obj     : clear.cpp clear.h .AUTODEPEND
$(lib)\clip.obj      : clip.cpp clip.h .AUTODEPEND
$(lib)\color.obj     : color.cpp color.h .AUTODEPEND
$(lib)\console.obj   : console.cpp console.h .AUTODEPEND
$(lib)\copy.obj      : copy.cpp copy.h .AUTODEPEND
$(lib)\dpmi.obj      : dpmi.cpp dpmi.h .AUTODEPEND
$(lib)\error.obj     : error.cpp error.h .AUTODEPEND
$(lib)\format.obj    : format.cpp format.h .AUTODEPEND
$(lib)\key.obj       : key.cpp key.h .AUTODEPEND
$(lib)\palette.obj   : palette.cpp palette.h .AUTODEPEND
$(lib)\surface.obj   : surface.cpp surface.h .AUTODEPEND
$(lib)\timer.obj     : timer.cpp timer.h .AUTODEPEND
$(lib)\vbe.obj       : vbe.cpp vbe.h .AUTODEPEND
$(lib)\vga.obj       : vga.cpp vga.h .AUTODEPEND
..\library\release\x86_fake.obj  : x86_fake.asm .AUTODEPEND

