# template makefile for 386 kernel for creating PE dlls
# dont forget to SET KERNEL=C:\KERNEL\ (for example)
# here we define our target replace it with name of your current project
target = template

# assembler switches
ASWITCH = /m2 /z /i$(KERNEL)SYS /i$(KERNEL)SND
# m2 - 2 passes
# z - display line with error
AS = tasm32.exe $(ASWITCH) /d__DLL

#LSWITCH = -r -Tpd -m -s
# -r verbose link
# -Tpd PE dll
# -m map file with publics
# -s detailed segment map
#LD = tlink32.exe $(LSWITCH)
LSWITCH = FORM WIN NT DLL
LD = WLINK.EXE $(LSWITCH)

# kernel interface dependencies
kideps = $(KERNEL)sys\krnl386.inc \
         $(KERNEL)sys\krnl386.def \
         $(KERNEL)sys\common.def

all: $(target).dll

# when to link target file ?
$(target).dll: $(target).obj kernel.lib
        $(LD) F $(target).obj N $(target).dll L kernel.lib

#when to recompile target file ?
$(target).obj: $(target).asm $(kideps)
        $(AS) $(target).asm


# kernel stub
kernel.obj: $(KERNEL)sys\kernel.asm
        $(AS) $(KERNEL)sys\kernel.asm

kernel.dll: kernel.obj
        $(LD) F kernel.obj N kernel.dll

kernel.lib: kernel.dll
        implib.exe -f kernel.lib kernel.dll

# /d_MIXCH=10
# /dSND_DOAMP=0
# /d_AMPL=1
# /dSND_FILTER=0
sset =

# sound library interface dependencies
sideps = $(KERNEL)snd\snd.inc

# sound library dependencies
sdeps = $(KERNEL)snd\snd.asm \
        $(KERNEL)snd\common.inc \
        $(KERNEL)snd\config.inc \
        $(KERNEL)snd\sbhw.inc \
        $(KERNEL)snd\sbphw.inc \
        $(KERNEL)snd\sb16hw.inc \
        $(KERNEL)snd\gushw.inc \
        $(KERNEL)snd\sbmod.inc \
        $(KERNEL)snd\sbpmod.inc \
        $(KERNEL)snd\sb16mod.inc \
        $(KERNEL)snd\gusmod.inc

# /d_MIXCH=10
# /dSND_DOAMP=0
# /d_AMPL=1
# /dSND_FILTER=0
sset =

#when to recompile sound library
snd.obj: $(sdeps) $(kideps) $(sideps)
        $(AS) $(sset) $(KERNEL)snd\snd.asm

clean:
        del *.bak
        del *.map

