.SUFFIXES: .def .lst .obj .h

SRCS1 = init.c scrinit.c svgacmap.c svgawind.c svgafont.c \
	svgapixm.c svgagc.c svgaspan.c svgagets.c mfbclip.c
SRCS2 =	svgapushp.c cursor.c output.c movebyte.c copy.c svgaglbl.c \
	putimage.c svgapain.c

SRCS = $(SRCS1) $(SRCS2)

OBJS1 = init.obj scrinit.obj svgacmap.obj svgafont.obj \
	svgapixm.obj svgagc.obj output.obj
OBJS2 =	svgapush.obj movebyte.obj copy.obj svgaglbl.obj \
	putimage.obj svgapain.obj
OBJS3 = cursor.obj svgagets.obj svgaspan.obj svgawind.obj \
	bytes.obj
OBJS = $(OBJS1) $(OBJS2) $(OBJS3) svgagc.obj
LOBJS = $(OBJS1) $(OBJS2) $(OBJS3) lsvgagc.obj

DEFS = init.def scrinit.def svgacmap.def svgawind.def svgafont.def \
	svgapixm.def svgagc.def svgaspan.def svgagets.def \
	svgapush.def output.def cursor.def movebyte.def copy.def \
	svgaglbl.def putimage.def svgapain.def bytes.def

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

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

all: svgafunc.h svga.lib lsvga.lib

svga.lib: $(DEFS) $(OBJS)
lsvga.lib: $(DEFS) $(LOBJS)

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

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

.asm.obj: 
	masm $(MFLAGS) $*;
	lib $(LIBFLAGS) svga -+ $*;
	lib $(LIBFLAGS) lsvga -+ $*;

svgagc.obj: svgagc.c
	cl $(CFLAGS) /DLITE -c $*.c
	ren svgagc.obj lsvgagc.obj
	lib $(LIBFLAGS) lsvga -+ lsvgagc.obj;
	cl $(CFLAGS) -c $*.c
	lib $(LIBFLAGS) svga -+ svgagc.obj;

.c.def: 
	echo #define SVGADEFS_H >> svgafunc.h
	$(CC) $(QCFLAGS) /Zg $*.c > $*.def
	del svgafunc.h

svgagc.def: svgagc.c
	echo #define SVGAEFS_H >> svgafunc.h
	-$(CC) $(QCFLAGS) /Zg $*.c > $*.def
	del svgafunc.h

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

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

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

bytes.def: bytes.asm
	sed -e /extern/!d -e "s/;//" bytes.asm >> bytes.def

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