MSVC = \\msvc
CFLAGS = -O9
VCFLAGS = /c /O /nologo /I$(MSVC)\\include

SOURCE = main.c win.c stream.c io.c style.c file.c event.c misc.c list.c \
		 screen.c djscr.c glk.h list.h rect.h win.h stream.h screen.h \
                 file.h event.h main.h
LIB = libglk.a glk_s.lib glk_m.lib glk_l.lib glk_h.lib

DOC = README VERSION TODO LICENSE Changes
SOURCEDIST = $(DOC) Makefile $(SOURCE)
BINDIST = $(DOC) glk.h $(LIB)

DJOBJ = main.o win.o stream.o io.o style.o file.o event.o misc.o \
		list.o djscr.o
		
VCOBJ_S = main_s.obj win_s.obj stream_s.obj io_s.obj style_s.obj file_s.obj \
			event_s.obj misc_s.obj list_s.obj screen_s.obj
VCOBJ_M = main_m.obj win_m.obj stream_m.obj io_m.obj style_m.obj file_m.obj \
			event_m.obj misc_m.obj list_m.obj screen_m.obj
VCOBJ_L = main_l.obj win_l.obj stream_l.obj io_l.obj style_l.obj file_l.obj \
			event_l.obj misc_l.obj list_l.obj screen_l.obj
VCOBJ_H = main_h.obj win_h.obj stream_h.obj io_h.obj style_h.obj file_h.obj \
			event_h.obj misc_h.obj list_h.obj screen_h.obj
			
all: $(LIB)

demo: model.exe multiwin.exe test.exe djmodel.exe djmulti.exe djtest.exe

dist: dosglk.zip dosglk_s.zip

clean:        
	@del *.zip
	@del *.exe   
	@del *.map
	@del *.lib
	@del libglk.a
	@del *.obj
	@del *.o

%_s.obj: %.c
	cl $(VCFLAGS) /AS /Fo$*_s.obj $*.c

glk_s.lib: $(VCOBJ_S)                  
	@del glk_s.lib
	lib glk_s.lib $(VCOBJ_S) ,

%_m.obj: %.c
	cl $(VCFLAGS) /AM /Fo$*_m.obj $*.c

glk_m.lib: $(VCOBJ_M)
	@del glk_m.lib
	lib glk_m.lib $(VCOBJ_M) ,

%_l.obj: %.c
	cl $(VCFLAGS) /AL /Fo$*_l.obj $*.c

glk_l.lib: $(VCOBJ_L)
	@del glk_l.lib
	lib glk_l.lib $(VCOBJ_L) ,
	
%_h.obj: %.c
	cl $(VCFLAGS) /AH /Fo$*_h.obj $*.c

glk_h.lib: $(VCOBJ_H)
	@del glk_h.lib
	lib glk_h.lib $(VCOBJ_H) ,

libglk.a: $(DJOBJ)
	ar r libglk.a $(DJOBJ)	
	
%.obj: %.c
	cl $(VCFLAGS) /AS $*.c

model.exe: model.obj glk_s.lib
	link model.obj,model.exe,,$(MSVC)\\lib\\ glk_s.lib,,	

multiwin.exe: multiwin.obj glk_s.lib
	link multiwin.obj,multiwin.exe,,$(MSVC)\\lib\\ glk_s.lib,,	
	
test.exe: test.obj glk_s.lib
	link test.obj,test.exe,,$(MSVC)\\lib\\ glk_s.lib,,	

djmodel.exe: model.o libglk.a
	$(CC) -o djmodel.exe model.o libglk.a
	strip djmodel.exe
	
djmulti.exe: multiwin.o libglk.a
	$(CC) -o djmulti.exe multiwin.o libglk.a
	strip djmulti.exe
	
djtest.exe: test.o libglk.a
	$(CC) -o djtest.exe test.o libglk.a
	strip djtest.exe
	
dosglk.zip: $(BINDIST)
	zip dosglk.zip $(BINDIST)		

dosglk_s.zip: $(SOURCEDIST)
	zip dosglk_s.zip $(SOURCEDIST)
