#DEBUG=1

PROJECT = unvbox

OBJS = $(PROJECT).obj
KERNEL_LIB = ../../lib/kernel.lib
DIR_INC = ../../../pd/inc ../../../../common/inc ../../../src/inc

all : $(PROJECT).dll

# Definition of assembler and linker options ****************************
NASMFLAGS = -w+orphan-labels
NASMFLAGS += -f win32
NASMFLAGS += $(foreach i,$(DIR_INC),-i$(i)/)

ifdef DEBUG
NASMFLAGS += -g
endif

LINKFLAGS = /IGNORE:4078 /ignore:4089 /ignore:4108 /nologo /filealign:512
LINKFLAGS += /DLL /EXPORT:UnwrapThunk /MACHINE:i386 /SUBSYSTEM:CONSOLE
LINKFLAGS += /ENTRY:Start /section:.text,ERW /merge:.rdata=.text
LINKFLAGS += /OUT:$(PROJECT).dll /STUB:STUB.EXE

ifdef DEBUG
LINKFLAGS += /DEBUG /DEBUGTYPE:CV /PDB:NONE
endif

# Build rule for executable *********************************************
$(PROJECT).dll:	$(OBJS)
	@echo $(LINKFLAGS) $< $(KERNEL_LIB) > $(PROJECT).lnk
	link @$(PROJECT).lnk
	-rm -f $(PROJECT).exp $(PROJECT).lib $(PROJECT).lnk

# Inference rule for updating object files ******************************
vpath %.asm
vpath %.asm .

%.obj: %.asm
	nasm $(NASMFLAGS) -o $@ $<

# Delete intermediate files *********************************************
clean:
	-rm -f $(OBJS) $(PROJECT).nms
