# Zgv v3.0 - GIF, JPEG and PBM/PGM/PPM viewer, for VGA PCs running Linux.
# Copyright (C) 1993-1998 Russell Marks. See README for license details.
#
# Makefile for zgv
#
# set BINDIR to directory for binaries, MANDIR to directory for man page,
#

BINDIR = /usr/bin
MANDIR = /usr/man/man1

# You shouldn't need to modify anything below this line.

CC=gcc

WARNOPTS = -Wall

#CFLAGS = $(INCDIRS) $(WARNOPTS) $(PNGDEF) $(NGMDEF) -g	# debugging
#CFLAGS = $(INCDIRS) $(WARNOPTS) $(PNGDEF) $(NGMDEF)	# quick compilation
# optimisation for proper versions :-)
CFLAGS = $(INCDIRS) $(WARNOPTS) -O2 -fomit-frame-pointer -finline-functions

ZGV_LIBS = -lvgagl -lvga -ljpeg -lpng -lz -lm -lpcd
ZGV_LIBS_STATIC = -lvgagl -lvga -Xlinker -Bstatic -ljpeg -lpng -lz -lpcd -Xlinker -Bdynamic -lm

all : zgv

ZGV_OBJS = zgv.o vgadisp.o readjpeg.o font.o 3deffects.o \
	readnbkey.o rcfile.o zgvlogopck.o helppage.o readpnm.o \
	readbmp.o readtga.o readpng.o readpcx.o magic.o resizepic.o \
	mouse.o readngm.o readxvpic.o readmrf.o readpcd.o gifeng.o

MUNGLOGO_OBJS = munglogo.o gifeng.o

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

zgv.static : $(ZGV_OBJS)
	$(CC) $(CFLAGS) -o zgv.static $(ZGV_OBJS) $(LFLAGS) $(ZGV_LIBS_STATIC)

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

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

install : all
	install -m 4511 -o root -s zgv $(BINDIR)
	install -m 444 zgv.1 $(MANDIR)

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

# Dependancies
3deffects.o: 3deffects.c 3deffects.h font.h readnbkey.h zgv.h \
 rc_config.h mouse.h rcfile.h
bdf2h.o: bdf2h.c
font.o: font.c zgv.h font.h fontbmps.h rc_config.h mouse.h rcfile.h
gifeng.o: gifeng.c zgv.h gifeng.h
helppage.o: helppage.c 3deffects.h font.h readnbkey.h rc_config.h \
 mouse.h rcfile.h
magic.o: magic.c magic.h
mouse.o: mouse.c mouse.h
munglogo.o: munglogo.c zgv.h gifeng.h
rcfile.o: rcfile.c rc_config.h mouse.h zgv.h
readbmp.o: readbmp.c zgv.h readbmp.h readpnm.h rcfile.h rc_config.h \
 mouse.h
readjpeg.o: readjpeg.c 3deffects.h zgv.h readjpeg.h vgadisp.h \
 rc_config.h mouse.h rcfile.h
readmrf.o: readmrf.c zgv.h
readnbkey.o: readnbkey.c readnbkey.h
readngm.o: readngm.c zgv.h
readpcx.o: readpcx.c zgv.h
readpng.o: readpng.c
readpnm.o: readpnm.c zgv.h rcfile.h rc_config.h mouse.h
readpcd.o: readpcd.c zgv.h rcfile.h rc_config.h mouse.h readpnm.h
readgif.o: readgif.c zgv.h rcfile.h rc_config.h mouse.h readpnm.h
readtga.o: readtga.c zgv.h readtga.h readpnm.h rcfile.h rc_config.h \
 mouse.h
readxvpic.o: readxvpic.c zgv.h readpnm.h
resizepic.o: resizepic.c resizepic.h
vgadisp.o: vgadisp.c zgv.h magic.h gifeng.h readjpeg.h readpnm.h \
 readbmp.h readpng.h readtga.h readpcx.h readngm.h readxvpic.h \
 readmrf.h readnbkey.h helppage.h 3deffects.h rc_config.h mouse.h \
 rcfile.h vgadisp.h
zgv.o: zgv.c zgv.h gifeng.h vgadisp.h readnbkey.h font.h 3deffects.h \
 helppage.h rc_config.h mouse.h rcfile.h readjpeg.h readpnm.h \
 resizepic.h zgvlogopck.h magic.h
zgvlogopck.o: zgvlogopck.c zgvlogo.h

# more involved dependancy stuff
zgvlogo.h: munglogo zgvlogo.gif
	./munglogo r
fontbmps.h: bdf2h helvR08.bdf helvR12.bdf helvR18.bdf
	./bdf2h 1 <helvR08.bdf >fontbmps.h
	./bdf2h 2 <helvR12.bdf >>fontbmps.h
	./bdf2h 3 <helvR18.bdf >>fontbmps.h
