# Makefile for GEMGLK for DJGPP
#
CC       = gcc
CXX      = gxx
#
# I had to leave "-pedantic" off the CFLAGS for gi_dispa.c to compile without
# a stream of warnings
#
CFLAGS   = -Wall -g -fno-strength-reduce 
CXXFLAGS = -pedantic $(CFLAGS)
LFLAGS   = -L. -lglk -lgem 

HEADERS = gemglk.h glkimpl.h glkwin.h glkstrm.h glkstyl.h glkfref.h \
          glkpara.h _glk.h
OBJECTS = gemglk.o glkfun.o glkwin.o glkwintb.o glkwintg.o glkwinp.o \
	  glklib.o glkstrm.o glkstrmx.o glkdlg.o glkstyl.o glkpara.o \
	  gestalt.o glkxlt.o glkfref.o glkreg.o popmenu.o \
	  gi_dispa.o gi_blorb.o

%.o:	%.cxx
	$(CXX) $(CXXFLAGS) -c -o $@ $<

all:	libglk.a model.app multiwin.app

dungeon:	all
	cd dungeon
	make
	cd ..

clean:	tidy
	erase libglk.a
	erase model.app

tidy:
	erase *.o
	erase *.bak
	erase model
	erase model.exe

%.app: %
	copy $<.exe $@

model: 	model.o startup.o libglk.a ../../lib/libgem.a
	${CC} -o $@ model.o startup.o ${LFLAGS}

multiwin: 	multiwin.o startup.o libglk.a ../../lib/libgem.a
	${CC} -o $@ multiwin.o startup.o ${LFLAGS}

libglk.a: $(OBJECTS)
	ar rc libglk.a ${OBJECTS}
	ranlib libglk.a

$(OBJECTS): $(HEADERS)


zip:	
	erase gemglk-s.zip
	erase gemglk-b.zip

	pkzip gemglk-s.zip model.c multiwin.c makefile make.gem
	pkzip gemglk-s.zip glk.h gemglk.h glkwin.h glassert.h glkstyl.h
	pkzip gemglk-s.zip glkpara.h glkfref.h glkimpl.h gi_dispa.h
	pkzip gemglk-s.zip gi_blorb.h glkreg.h glkstrm.h glkstart.h
	pkzip gemglk-s.zip glkwintb.cxx glkpara.cxx glkfun.cxx glkstrm.cxx
	pkzip gemglk-s.zip glkstrmx.cxx glklib.cxx popmenu.cxx glkstyl.cxx
	pkzip gemglk-s.zip gestalt.cxx gemglk.cxx glkwin.cxx glkreg.cxx
	pkzip gemglk-s.zip glkfref.cxx glkwinp.cxx glkxlt.cxx
	pkzip gemglk-s.zip gi_blorb.c gi_dispa.c startup.c
	pkzip gemglk-s.zip _glk.rsc _glk.dfn _glk.h
	pkzip gemglk-s.zip gemglk.doc

	pkzip gemglk-b.zip libglk.a _glk.rsc _glk.dfn glk.h glkstart.h 
	pkzip gemglk-b.zip gemglk.doc make.gem startup.c
