include ../Rules.make

export CC=i686-w64-mingw32-gcc-win32
export AS=i686-w64-mingw32-as
DLLTOOL=i686-w64-mingw32-dlltool
WINDRES=i686-w64-mingw32-windres
MKBUNDLE=mkbundle
REIMP=reimp.exe
SIGNTOOL=hiperscan-signtool
#SIGNTOOL=./../Installer/dummy-signtool 

CFILE=quickstep.c
RCFILE=quickstep.rc
RESFILE=quickstep.res
MANIFEST=quickstep.manifest
ICOFILE=quickstep.ico
OBJFILE=quickstep.o
MONOLIB=$(MONODIR)/lib/$(LIBMONO).lib
DEFFILE=$(LIBMONO).def
AFILE=$(LIBMONO).a
TARGET=QuickStep.exe

LIBS=-L. -L$(MONODIR)/lib -l$(LIBMONO) -lm -lpthread
INCLUDES=-I$(BUILDDEPS)/Mono/$(MONOVERSION)/include/mono-2.0
CFLAGS=-mwindows -Wl,--large-address-aware -Wall -D_REENTRANT -D_NETVERSION=\"$(NETVERSION)\" -D_ASSEMBLY_SIZE=$(ASMSIZE) -Wformat-overflow=0
#CFLAGS=-Wl,--large-address-aware -Wall -D_REENTRANT -D_NETVERSION=\"$(NETVERSION)\" -D_ASSEMBLY_SIZE=$(ASMSIZE) -Wformat-overflow=0

ifeq ($(DEFINE_ASM_NAMES),yes)
  CFLAGS+= -D_DEFINE_ASM_NAMES
endif

ifeq ($(USE_SYSTEM_CONFIG),yes)
  CFLAGS+= -D_SYSTEM_CONFIG
endif

all: $(TARGET)

$(TARGET): $(CFILE) $(OBJFILE) $(RESFILE) $(AFILE)
	$(CC) $(CFLAGS) -g -o $(TARGET) $(CFILE) $(INCLUDES) $(LIBS) $(OBJFILE) $(RESFILE)
	$(SIGNTOOL) $(TARGET)

$(OBJFILE): $(ASMFILE)
	$(MKBUNDLE) --config $(ASMCONF) --custom --style windows --nodeps -L /usr/lib/mono/4.5 -c -o /tmp/temp.c -oo $(OBJFILE) $(ASMFILE)

$(RESFILE): $(RCFILE) $(MANIFEST) $(ICOFILE)
	$(WINDRES) $(RCFILE) -O coff -o $(RESFILE)

$(AFILE): $(DEFFILE)
	$(DLLTOOL) -k -d $(DEFFILE) -l $(AFILE)

$(DEFFILE): $(MONOLIB)
	$(REIMP) -d $(MONOLIB)

clean:
	rm -rf $(TARGET) $(AFILE) $(DEFFILE) $(RESFILE) $(OBJFILE)
 
