.SUFFIXES: .def .lst .obj .h

SRCS1 = init.c scrinit.c vgacmap.c vgawindo.c vgafont.c \
	vgapixma.c vgagc.c vgaspans.c vgagetsp.c mfbclip.c
SRCS2 =	vgapushp.c cursor.c output.c vgaglblt.c \
	vgapaint.c

SRCS = $(SRCS1) $(SRCS2)

OBJS1 = init.obj scrinit.obj vgacmap.obj vgafont.obj \
	vgapixma.obj vgagc.obj output.obj
OBJS2 =	vgapushp.obj vgaglblt.obj \
	vgapaint.obj vgasetsc.obj
OBJS3 = cursor.obj vgagetsp.obj vgaspans.obj vgawindo.obj ecopybit.obj
OBJS = $(OBJS1) $(OBJS2) $(OBJS3)

DEFS = init.def scrinit.def vgacmap.def vgawindo.def vgafont.def \
	vgapixma.def vgagc.def vgaspans.def vgagetsp.def \
	vgapushp.def output.def cursor.def \
	vgaglblt.def vgapaint.def

INCLUDES= -I../../../../../x11 -I../../../include

CFLAGS=$(INCLUDES) /W3 /G2 /Oecilgs /Gs /AL /NT IBM_TEXT /nologo
MFLAGS=/MX /T
LIBFLAGS=/NOI /nologo

all:	vga.lib

vga.lib: vgafuncs.h $(DEFS) $(OBJS)

vga.fix: $(OBJS)
	-del vga.lib
	lib $(LIBFLAGS) vga + $(OBJS1);
	lib $(LIBFLAGS) vga + $(OBJS2);
	lib $(LIBFLAGS) vga + $(OBJS3);

.c.obj: 
	cl $(CFLAGS) -c $*.c
	lib $(LIBFLAGS) vga -+ $*;

.asm.obj: 
	masm $*.asm /MX/ML,,nul,nul
	lib $(LIBFLAGS) vga -+ $*;

.c.def: 
	echo #define VGADEFS_H >> vgafuncs.h
	$(CC) $(CFLAGS) /Zg $*.c > $*.def
	del vgafuncs.h

vgagc.def: vgagc.c
	echo #define VGADEFS_H >> vgafuncs.h
	-$(CC) $(CFLAGS) /Zg $*.c > $*.def
	del vgafuncs.h

.c.lst: 
	$(CC) $(CFLAGS) /c /Fa /Fs $*.c

ecopybit.obj: ..\ega\ecopybit.asm
	masm $(MFLAGS) /Dinvert ..\ega\ecopybit.asm;
	ren ecopybit.obj einvert.obj
	lib $(LIBFLAGS) vga -+ einvert;
	masm $(MFLAGS) ..\ega\ecopybit.asm;
	lib $(LIBFLAGS) vga -+ ecopybit;

ecopycon.obj: ..\ega\ecopycon.asm
	masm $(MFLAGS) ..\ega\ecopycon.asm;
	lib $(LIBFLAGS) vga -+ ecopycon;


tags: $(SRCS)
	ctags $(SRCS1)
	ctags -a $(SRCS2)

vgafuncs.h: $(DEFS)
	echo #ifndef VGADEFS_H > vgafuncs.h
	echo #define VGADEFS_H >> vgafuncs.h
	sed -e /static/d -e "s/.*DEF://" *.def >> vgafuncs.h
	echo #endif >> vgafuncs.h

clean:
	-del *.obj
	-del *.def
	-del *.map
	-del *.bak
	
cleanall: clean
	-del *.lib
        -del vgafuncs.h
	-del *.exe		
