#
# /emx/jm/vesa/makefile
#
GCC=gcc -Wall -O2 -mprobe
#GCC=gcc -g -Wall

.SUFFIXES: .c .o .obj .imp .exe .dll .a .lib

.c.o:
	$(GCC) -o $*.o -c $*.c

.o.exe:
	$(GCC) -o $*.exe $*.o vesa.a
	emxbind -aq $*.exe -acim

.c.obj:
	$(GCC) -Zdll -Zomf -Zsys -o $*.obj -c $*.c

.obj.dll:
	$(GCC) -Zdll -Zomf -Zsys -o $*.dll $*.obj common.obj $*.def -lemxio

.a.lib:
	emxomf -l -o $*.lib $*.a

default: vesa_ibm.dll vesa_et4.dll vesa_et5.dll vesa_et6.dll vesa_tr8.dll \
         vesa_pm.dll vesa.a vesa.lib \
         vesatest.exe modedump.exe pmscreen.exe

install: default
	copy *.dll \emx\dll
	copy vesa.h \emx\include
	copy vesa.a \emx\lib
	copy vesa.lib \emx\lib
	copy pmscreen.exe \emx\bin

clean:
	-del *.o *.obj *.a *.lib *.exe *.dll

vesa.lib: vesa.a

vesa.a: vesa_dos.o vesa.o
	if exist vesa.a del vesa.a
	ar r vesa.a vesa_dos.o vesa.o
	ar s vesa.a

vesa_dos.o: vesa_dos.c vesa.h vesa_dos.h
vesa.o:     vesa.c     vesa.h vesa_dos.h

common.obj:   common.c   vesa.h vgaports.h common.h vesadll.h
vesa_et4.obj: vesa_et4.c vesa.h vgaports.h common.h vesadll.h
vesa_et4.dll: vesa_et4.obj common.obj vesa_et4.def
vesa_et5.obj: vesa_et5.c vesa.h vgaports.h common.h vesadll.h
vesa_et5.dll: vesa_et5.obj common.obj vesa_et5.def
vesa_et6.obj: vesa_et6.c vesa.h vgaports.h common.h vesadll.h
vesa_et6.dll: vesa_et5.obj common.obj vesa_et6.def
vesa_tr8.obj: vesa_tr8.c vesa.h vgaports.h common.h vesadll.h
vesa_tr8.dll: vesa_tr8.obj common.obj vesa_tr8.def
vesa_ibm.obj: vesa_ibm.c vesa.h vgaports.h common.h vesadll.h
vesa_ibm.dll: vesa_ibm.obj common.obj vesa_ibm.def
vesa_pm.obj:  vesa_pm.c  vesa.h common.h vesa_pm.h  vesadll.h
vesa_pm.dll:  vesa_pm.obj vesa_pm.def
	$(GCC) -Zdll -Zomf -Zsys -o $*.dll $*.obj $*.def

vesatest.exe: vesatest.o vesa.a
vesatest.o:   vesatest.c vesa.h

modedump.exe: modedump.o vesa.a
modedump.o:   modedump.c vesa.h

pmscreen.exe: pmscreen.o pmscreen.res
	$(GCC) -o $*.exe $*.o pmscreen.res pmscreen.def
pmscreen.o:   pmscreen.c  pmscreen.h vesa_pm.h
pmscreen.res: pmscreen.rc pmscreen.h
	rc -r pmscreen
