# Makefile for Windows SCARE

VERSION = 1.3.9

# Set up compiler
MINGW = i686-w64-mingw32
CC = $(MINGW)-gcc

# Set up paths
GLKPATH  = ../..
LIBPATH  = ../../../../Libraries

# Set up Glk link libraries
GLKLIBS	= -L. -lwinglk

# GCC compiler flags
CFLAGS	= -O1 -ansi -Wall -I$(GLKPATH)/include -I$(LIBPATH)/zlib -I../win32
LDFLAGS	= -s -mwindows
VPATH   = ../source:$(LIBPATH)/zlib

# SCARE objects and headers
OBJECTS	= sctafpar.o sctaffil.o scprops.o scvars.o scexpr.o scprintf.o	\
	  scinterf.o scparser.o sclibrar.o scevents.o scnpcs.o		\
	  scobjcts.o sctasks.o screstrs.o scgamest.o scserial.o		\
	  scresour.o scutils.o scdebug.o scrunner.o scmemos.o		\
	  sclocale.o
HEADERS	= scare.h scprotos.h scgamest.h

# Zlib components used by SCARE
ZOBJECTS= crc32.o inffast.o inflate.o inftrees.o zutil.o compress.o	\
	  adler32.o deflate.o trees.o
ZHEADERS= crc32.h inffast.h inflate.h inftrees.h inffixed.h zutil.h	\
	  zconf.h deflate.h trees.h zlib.h

# Default make target is the Windows interpreter
all:	Scare

os_glk.o: os_glk.c $(HEADERS)
	$(CC) $(CFLAGS) -c -o $@ $<

winres.o: ../win32/scare.rc
	$(MINGW)-windres -I../win32 $^ $@

libwinglk.a:
	$(MINGW)-dlltool --dllname=Glk.dll --def=$(GLKPATH)/GlkDll/Glk.def --output-lib=libwinglk.a

Scare:	$(ZOBJECTS) $(OBJECTS) os_glk.o winres.o libwinglk.a
	$(CC) $(LDFLAGS) -o Scare $(OBJECTS) $(ZOBJECTS) os_glk.o winres.o $(GLKLIBS)
	cp Scare.exe $(GLKPATH)/Executables/Release

ScareCons:	$(ZOBJECTS) $(OBJECTS) os_ansi_win.o
		$(CC) -s -o ScareCons $(OBJECTS) $(ZOBJECTS) os_ansi_win.o

clean:
	rm -f *.o *.a *.exe
