#
#  Makefile for building the chipset-specific video drivers addon.
#
#  See vdrv.txt for copyright information.
#

# replace this definition if you are using PGCC
# PGCC=1

WFLAGS = -Wall -W -Werror -Wno-unused

ifdef DEBUGMODE
# build a debug version
OFLAGS = -g
LFLAGS =

else
ifdef PROFILEMODE
# build with profiling information
ifdef PGCC
OFLAGS = -pg -mpentium -O6 -ffast-math
else
OFLAGS = -pg -m486 -O3 -ffast-math
endif
LFLAGS = -pg

else
# build a normal optimised version
ifdef PGCC
OFLAGS = -mpentium -O6 -ffast-math -fomit-frame-pointer
else
OFLAGS = -m486 -O3 -ffast-math -fomit-frame-pointer
endif

ifdef SYMBOLMODE
# keep debug symbols
LFLAGS =

else
# strip debug symbols
LFLAGS = -s

endif
endif
endif

ifeq ($(ALLEGRO),)
ALLEGRO_DIR = ../
else
ALLEGRO_DIR = $(subst //,/,$(subst \,/,$(ALLEGRO))/)
endif

CFLAGS = $(WFLAGS) $(OFLAGS) -I$(ALLEGRO_DIR) -I$(ALLEGRO_DIR)src/
SFLAGS = $(WFLAGS) -I$(ALLEGRO_DIR)src/ -I$(ALLEGRO_DIR)obj/djgpp/

LIBDEST = $(DJDIR)/lib/libvdrv.a
INCDEST = $(DJDIR)/include/vdrv.h

OBJS = ati.o bank.o cirrus.o paradise.o register.o s3.o \
       trident.o tseng.o vdrv.o video7.o

LIB_OBJS = $(addprefix obj/, $(OBJS))

.PRECIOUS: obj/%.o

.PHONY: all msg install uninstall clean

all: msg install
	@echo All done.
	@echo To use these video drivers, #include vdrv.h and call vdrv_init() right
	@echo after allegro_init(). Link with libvdrv.a, _before_ liballeg.a.
	@echo Example command line: gcc foobar.c -o foobar.exe -lvdrv -lalleg

msg:
	@echo Compiling video drivers. Please wait...

install: $(LIBDEST) $(INCDEST)

$(LIBDEST): obj/libvdrv.a
	copy obj\libvdrv.a $(subst /,\,$(LIBDEST))

$(INCDEST): vdrv.h
	copy vdrv.h $(subst /,\,$(INCDEST))

obj/libvdrv.a: $(LIB_OBJS)
	ar rs obj/libvdrv.a $(LIB_OBJS)

obj/%.o: %.c vdrv.h vintern.h
	gcc $(CFLAGS) -o $@ -c $<

obj/%.o: %.S
	gcc $(SFLAGS) -o $@ -c $<

obj/%.o: %.s
	gcc -x assembler-with-cpp $(SFLAGS) -o $@ -c $<

clean:
	-rm -v obj/*

uninstall:
	-rm $(LIBDEST)
	-rm $(INCDEST)
	@echo All gone! (sulk)
