# src Makefile for zgv

# -----------------------------------------------------------------
# >>> NB: if you're looking to edit this to configure zgv, in the
# way you might have with older versions, edit `../config.mk' instead.
# -----------------------------------------------------------------


# This gets definitions for BINDIR, JPEGDIR, etc.
include ../config.mk


INCDIRS = -I$(JPEGDIR) -I$(PNGLIBDIR) -I$(ZLIBDIR)

CC=gcc

WARNOPTS = -Wall

CFLAGS = $(INCDIRS) $(WARNOPTS) $(PNGDEF) \
	-DRGB_DB_FILE=\"$(RGB_DB)\" \
	-O2 -fomit-frame-pointer -finline-functions

ZGV_LIBS = -lvgagl -lvga $(JPEGDIR)/libjpeg.a
ifeq ($(PNGDEF),-DPNG_SUPPORT)
ZGV_LIBS += $(PNGLIBDIR)/libpng.a $(ZLIBDIR)/libz.a -lm
endif


# `all' makes install-info too, as it's a bit weird to have something
# compile when you do `make install'. :-)
# (It would also be weird to have it made by the `doc' Makefile, IMHO.)

all: zgv install-info

ZGV_OBJS = zgv.o vgadisp.o font.o 3deffects.o mousecur.o \
	readnbkey.o rcfile.o zgvlogopck.o helppage.o gnuhelp.o \
	magic.o resizepic.o copymove.o scrollbar.o rbmenu.o \
	readgif.o readjpeg.o readpnm.o \
	readbmp.o readtga.o readpng.o readpcx.o \
	readxvpic.o readmrf.o readxbm.o readxpm.o \
	modesel.o

MUNGLOGO_OBJS = munglogo.o readmrf.o

zgv: $(ZGV_OBJS)
	$(CC) $(CFLAGS) -o zgv $(ZGV_OBJS) $(ZGV_LIBS)

munglogo: $(MUNGLOGO_OBJS)
	$(CC) $(CFLAGS) -o munglogo $(MUNGLOGO_OBJS)

bdf2h: bdf2h.o
	$(CC) $(CFLAGS) -o bdf2h bdf2h.o

install-info: install-info.c
	$(CC) $(INFODIRDEF) -o install-info install-info.c

install: all
	install -m 4511 -o root -g root -s zgv $(BINDIR)

clean:
	$(RM) *.o *~ zgv munglogo zgvlogo.h bdf2h fontbmps.h install-info

# Dependancies
3deffects.o: 3deffects.c 3deffects.h font.h readnbkey.h zgv.h \
 rc_config.h rcfile.h mousecur.h
bdf2h.o: bdf2h.c
copymove.o: copymove.c 3deffects.h font.h readnbkey.h zgv.h copymove.h
font.o: font.c zgv.h font.h fontbmps.h rc_config.h rcfile.h
gnuhelp.o: gnuhelp.c zgv.h helppage.h gnuhelp.h
helppage.o: helppage.c 3deffects.h font.h readnbkey.h rc_config.h \
 rcfile.h mousecur.h zgv.h
install-info.o: install-info.c
magic.o: magic.c magic.h
mousecur.o: mousecur.c rc_config.h rcfile.h zgv.h
munglogo.o: munglogo.c zgv.h readmrf.h
rbmenu.o: rbmenu.c font.h zgv.h rbmenu.h
rcfile.o: rcfile.c rc_config.h zgv.h rcfile.h
readbmp.o: readbmp.c zgv.h readbmp.h readpnm.h rcfile.h rc_config.h
readgif.o: readgif.c zgv.h readgif.h
readjpeg.o: readjpeg.c 3deffects.h zgv.h readjpeg.h vgadisp.h \
 rc_config.h rcfile.h
readmrf.o: readmrf.c zgv.h readmrf.h
readnbkey.o: readnbkey.c zgv.h readnbkey.h mousecur.h
readpcx.o: readpcx.c zgv.h readpcx.h readpnm.h rcfile.h rc_config.h
readpng.o: readpng.c zgv.h 3deffects.h readpng.h readpnm.h vgadisp.h \
 rc_config.h rcfile.h
readpnm.o: readpnm.c zgv.h rcfile.h rc_config.h readpnm.h
readtga.o: readtga.c zgv.h readtga.h readpnm.h rcfile.h rc_config.h
readxbm.o: readxbm.c zgv.h readxbm.h
readxpm.o: readxpm.c zgv.h readpnm.h rcfile.h rc_config.h readxpm.h
readxvpic.o: readxvpic.c zgv.h readpnm.h readxvpic.h
resizepic.o: resizepic.c resizepic.h
scrollbar.o: scrollbar.c 3deffects.h zgv.h scrollbar.h
vgadisp.o: vgadisp.c zgv.h magic.h readgif.h readjpeg.h readpnm.h \
 readbmp.h readpng.h readtga.h readpcx.h readxvpic.h \
 readmrf.h readxbm.h readxpm.h readnbkey.h helppage.h 3deffects.h \
 rc_config.h rcfile.h mousecur.h rbmenu.h vgadisp.h
zgv.o: zgv.c zgv.h readgif.h vgadisp.h readnbkey.h font.h 3deffects.h \
 helppage.h rc_config.h rcfile.h readpnm.h resizepic.h copymove.h \
 mousecur.h scrollbar.h rbmenu.h gnuhelp.h zgvlogopck.h
zgvlogopck.o: zgvlogopck.c zgvlogo.h

# more involved dependancy stuff
zgvlogo.h: munglogo zgvlogo.mrf
	./munglogo
fontbmps.h: bdf2h \
	../fonts/timI12.bdf \
	../fonts/helvR08.bdf \
	../fonts/helvR12.bdf \
	../fonts/helvB12.bdf \
	../fonts/helvR18.bdf
	./bdf2h 0  <../fonts/timI12.bdf >fontbmps.h
	./bdf2h 1  <../fonts/helvR08.bdf >>fontbmps.h
	./bdf2h 2  <../fonts/helvR12.bdf >>fontbmps.h
	./bdf2h 2b <../fonts/helvB12.bdf >>fontbmps.h
	./bdf2h 3  <../fonts/helvR18.bdf >>fontbmps.h
