# Makefile for the USM player ( WATCOM 'ASM' Version )
# Use Borland MAKE.EXE
#
# (c) 1996 FreddyV/Useless

TARGET = play.exe

# USM play source directory
SRC   = ..\SRC

# USM play include files directory
INC   = ..\SRC

# PMODE/W or DOS4G/W Extender (Change also the ASMPARAM section)
SYSTEM = pmodew
#SYSTEM = dos4g

# Assembler parameters
# --------------------
# /m2           2 passes
# /t            Supress messages if successfull assembly
# /dUsePMODEW_ASM Use PMODE/W and WATCOM
# /dUseDOS4GW_ASM Use DOS4G/W and WATCOM

ASMPARAM = /m2 /t /I$(INC) /dUsePMODEW_ASM
#ASMPARAM = /m2 /t /I$(INC) /dUseDOS4GW_ASM

#-----------------------------------------------------------------------------

ASM      = TASM $(ASMPARAM)
LINK     = WLINK

OBJLIST     = play.obj \
              error.obj usmplay.obj uss.obj ussvar.obj \
              iwdrv.obj gusdrv.obj sbdrv.obj nosnddrv.obj hpdrv.obj mix.obj \
              usmload.obj xmload.obj modload.obj stmload.obj itload.obj loadutil.obj \
              files.obj memory.obj timer.obj hardware.obj utils.obj

#
#                       ** Files link **
#

$(TARGET)   : $(OBJLIST)
                $(LINK) @WATCOM.LNK system $(SYSTEM) name $(TARGET)
#     pmwlite /c4 $(TARGET)

play.obj    : play.asm $(SRC)\utils.inc
		$(ASM) $(ASMOPT) play.asm

#
#                       ** USM Player **
#
                         
usmplay.obj : $(SRC)\usmplay.asm $(SRC)\utils.inc $(SRC)\usm.inc \
              $(SRC)\usmplay.inc setup.inc
		$(ASM) $(SRC)\usmplay.asm

#
#                    ** Useless sound system **
#
                            
uss.obj     : $(SRC)\uss.asm $(SRC)\uss.inc $(SRC)\utils.inc $(SRC)\ussvar.inc \
	      setup.inc
		$(ASM) $(SRC)\uss.asm
	      
ussvar.obj  : $(SRC)\ussvar.asm $(SRC)\utils.inc
		$(ASM) $(SRC)\ussvar.asm

#
#                       ** Error handler ** (Display_Error_ function)
#

error.obj   : $(SRC)\ERROR.ASM
                $(ASM) $(SRC)\error.asm
              
#
#                       ** Sound drivers **
#

iwdrv.obj  : $(SRC)\iwdrv.asm  $(SRC)\gusdrv.inc $(SRC)\utils.inc
		$(ASM) $(SRC)\iwdrv.asm

gusdrv.obj  : $(SRC)\gusdrv.asm  $(SRC)\gusdrv.inc $(SRC)\utils.inc
		$(ASM) $(SRC)\gusdrv.asm

sbdrv.obj  : $(SRC)\sbdrv.asm $(SRC)\utils.inc
		$(ASM) $(SRC)\sbdrv.asm

nosnddrv.obj : $(SRC)\nosnddrv.asm $(SRC)\utils.inc
		$(ASM) $(SRC)\nosnddrv.asm

hpdrv.obj    : $(SRC)\hpdrv.asm $(SRC)\utils.inc $(SRC)\mix.inc
		$(ASM) $(SRC)\hpdrv.asm

mix.obj      : $(SRC)\mix.asm $(SRC)\utils.inc $(SRC)\mix.inc setup.inc
		$(ASM) $(SRC)\mix.asm

#
#                       ** Files loaders **
#

usmload.obj  : $(SRC)\usmload.asm   $(SRC)\usmload.inc $(SRC)\utils.inc \
	       $(SRC)\loadutil.inc $(SRC)\ussvar.inc
		$(ASM) $(SRC)\usmload.asm

xmload.obj   : $(SRC)\xmload.asm   $(SRC)\xmload.inc $(SRC)\utils.inc \
	       $(SRC)\loadutil.inc $(SRC)\ussvar.inc
		$(ASM) $(SRC)\xmload.asm
	      
modload.obj  : $(SRC)\modload.asm  $(SRC)\modload.inc $(SRC)\utils.inc \
	       $(SRC)\loadutil.inc $(SRC)\ussvar.inc
		$(ASM) $(SRC)\modload.asm
	      
stmload.obj  : $(SRC)\stmload.asm  $(SRC)\stmload.inc $(SRC)\utils.inc \
	       $(SRC)\loadutil.inc $(SRC)\ussvar.inc
		$(ASM) $(SRC)\stmload.asm

itload.obj   : $(SRC)\itload.asm  $(SRC)\itload.inc $(SRC)\utils.inc \
	       $(SRC)\loadutil.inc $(SRC)\ussvar.inc
		$(ASM) $(SRC)\itload.asm

loadutil.obj: $(SRC)\loadutil.asm $(SRC)\loadutil.inc $(SRC)\utils.inc
		$(ASM) $(SRC)\loadutil.asm

#
#                       ** Misc files **
#

files.obj   : $(SRC)\files.asm $(SRC)\files.inc $(SRC)\utils.inc
		$(ASM) $(SRC)\files.asm

memory.obj  : $(SRC)\memory.asm $(SRC)\memory.inc $(SRC)\utils.inc setup.inc
		$(ASM) $(SRC)\memory.asm

timer.obj   : $(SRC)\timer.asm $(SRC)\timer.inc $(SRC)\utils.inc setup.inc
		$(ASM) $(SRC)\timer.asm

hardware.obj   : $(SRC)\hardware.asm $(SRC)\hardware.inc $(SRC)\utils.inc
		$(ASM) $(SRC)\hardware.asm

utils.obj   : $(SRC)\utils.asm $(SRC)\utils.inc
		$(ASM) $(SRC)\utils.asm