AS=nasm
AFLAGS=-fobj -ikernel/
LINK=alink
LFLAGS=
CC=gcc
CFLAGS=-s -O2 -Wall
RM=erase

.SUFFIXES:
.SUFFIXES: .exe .obj

.obj.exe:
	$(LINK) $(LFLAGS) $<

stubx.exe: d3x1.h d3xd.h d3xw.h
	$(CC) $(CFLAGS) stubx.c -o $@
	upx --best $@
	$@ -s $@

d3x1.h: fix.exe d3x1.exe
	fix.exe d3x1.exe -e > $@

d3xd.h: fix.exe d3xd.exe
	fix.exe d3xd.exe -p -e > $@

d3xw.h: fix.exe d3xw.exe
	fix.exe d3xw.exe -n -e > $@

fix.exe:
	$(CC) $(CFLAGS) fix.c -o $@

d3x1.obj:
	$(AS) $(AFLAGS) -DTARGET=0 kernel/d3x.asm -o $@

d3xd.obj:
	$(AS) $(AFLAGS) -DTARGET=1 kernel/d3x.asm -o $@

d3xw.obj:
	$(AS) $(AFLAGS) -DTARGET=2 -DI21API -DI33API kernel/d3x.asm -o $@

clean:
	$(RM) d3x*.*
	$(RM) fix.exe
