AR	=ar
CC	=gcc
CFLAGS	=-O2 -s -N -fomit-frame-pointer

MODULES = vga.o vgaclear.o vgadraw.o vgaline.o vgamodesel.o vgapal.o vgapix.o
DRIVERS = vgadrv.o cirrus.o et4000.o tvga8900.o oak.o

.c.o:
	$(CC) $(CFLAGS) -c -o $*.o $<

all:	libvga.a /usr/lib/libvga.a /usr/include/vga.h vgatest dumpreg vgagl

libvga.a: $(MODULES) $(DRIVERS)
	$(AR) rcs libvga.a $(MODULES) $(DRIVERS)

/usr/lib/libvga.a: libvga.a
	cp libvga.a /usr/lib

/usr/include/vga.h: vga.h
	cp vga.h /usr/include

install: libvga.a vga.h
	cp libvga.a /usr/lib
	cp vga.h /usr/include

vgatest: libvga.a vgatest.o 
	$(CC) $(CFLAGS) -o vgatest vgatest.o -lvga
	chmod +s vgatest

dumpreg: libvga.a dumpreg.o 
	$(CC) $(CFLAGS) -o dumpreg dumpreg.o -lvga
	chmod +s dumpreg

vgagl:
	(cd ./gl; make;	cd ..)

fontutils:
	(cd ./font; make; cd ..)

restorepalette: libvga.a restorepalette.c
	$(CC) $(CFLAGS) restorepalette.c -o restorepalette -lvga

restoretextmode: libvga.a restoretextmode.c
	$(CC) $(CFLAGS) restoretextmode.c -o restoretextmode -lvga

clean:
	rm -f *.o libvga.a vgatest dumpreg

vga.o: vga.c vga.h vgamacros.h chipsets.h config.h
vgadrv.o: vgadrv.c vgamacros.h chipsets.h
cirrus.o: cirrus.c vgamacros.h chipsets.h
et4000.o: et4000.c vgamacros.h chipsets.h config.h
tvga8900.o: tvga8900.c vgamacros.h chipsets.h
oak.o: oak.c vgamacros.h chipsets.h

vgamodesel.o: vgamodesel.c vga.h vgamacros.h
vgaclear.o : vgaclear.c vga.h vgamacros.h chipsets.h 
vgadraw.o : vgadraw.c vga.h vgamacros.h chipsets.h 
vgadrv.o : vgadrv.c vga.h vgamacros.h 
vgaline.o : vgaline.c vga.h vgamacros.h chipsets.h 
vgapal.o : vgapal.c vga.h vgamacros.h chipsets.h 
vgapix.o : vgapix.c vga.h vgamacros.h chipsets.h 

vgatest.o: vgatest.c vga.h
dumpreg.o: dumpreg.c vga.h
