# makefile for bomb

VERSION=1.26

# normally this would be ".", but we want to support the mac
# DATA_DIR =
DATA_DIR = /usr/lib/bomb/


# only for guile
# GUILE=/home/spot/src/guile-1.2
# SCM_LDFLAGS = -L$(GUILE)/libguile -L$(GUILE)/qt -lguile -lqt
# SCM_CFLAGS = -I$(GUILE)/libguile

QTDIR=/home/spot/src/quicktime4linux-1.1.9/quicktime


PROGS = cmap_test bomb image2cmap
flags = -g -DDATA_DIR=\"$(DATA_DIR)\" $(SCM_CFLAGS) -I $(QTDIR)
CFLAGS = -O $(flags) -Wall

# LDFLAGS = $(SCM_LDFLAGS)

# X11 with mit shared mem
# LOADLIBES = -lXext -lX11 -lm -ltiff -L/usr/X11/lib

# X11 without mit shared mem
# LOADLIBES = -lX11 -lm -ltiff -L/usr/X11/lib

# OpenGL
# LOADLIBES = mpeg2/src/mpeg2enc/mpeg.a -laudio -lGL -lX11 -lm /usr/local/lib/libtiff.a

# linux/svgalib
# LOADLIBES = -lvga -lm -ltiff

# svgalib and x11 with X mit shared mem
LOADLIBES = $(QTDIR)/libquicktime.a -lpng -ljpeg -lvga -lXext -lX11 -lm -ltiff -L/usr/X11R6/lib -lesd -lpthread 

# svgalib and x11
#LOADLIBES = -lX11 -lvga -lm -ltiff -L/usr/X11/lib


LIBSRCS = libifs.c image.c gif.c zio.c xshm.c
SRCS = cmap.c rug.c static.c acidlife.c brain.c rd.c sound.c \
	anneal.c rug_rug.c rotor.c shade.c wave.c quad.c \
	slip.c image_rule.c image_seq.c fuse.c rug_multi.c match.c \
	bomb.c fast.c $(LIBSRCS)
ALLSRCS = $(SRCS) image2cmap.c bomb.scm bomb-script

LIBOBJS = $(LIBSRCS:.c=.o)
OBJS = $(SRCS:.c=.o)

bomb: $(OBJS)
	$(CC) -o bomb $(OBJS) $(LDFLAGS) $(LOADLIBES)

DOC = Makefile README COPYING bomb.lsm notes.txt manual.txt \
	cmap-data flame-data seq-data suck-dir guile.txt

DIST = suck dribble bomb dribble title.gif dependencies \
	scripts ice-9

HEADERS = bomb.h defs.h image.h libifs.h xli-image.h \
	cmap.h gif.h image_db.h match.h \
	sound.h xshm.h utils.h vroot.h

TEXT = $(ALLSRCS) $(HEADERS) $(DOC) bomb.png Bomb.desktop bomb-$(VERSION)-1.spec

bomb: $(OBJS)

.PHONY: tags
tags:
	etags $(SRCS) $(HEADERS)

bomb.o: bomb.c
	$(CC) '-DVERSION="$(VERSION)"' $(flags) -c bomb.c

bomb.o: defs.h bomb.h

.PHONY: depend
depend:
	$(CC) -MM $(ALLSRCS) > dependencies

tar:
	rm -f /tmp/bomb-src.tar.gz
	tar hcfv /tmp/bomb-src.tar $(TEXT)
	gzip /tmp/bomb-src.tar

dist=bomb-$(VERSION)

dist:
	rm -f $(dist).tar.gz
	rm -f scripts/*~
	rm -rf dribble
	mkdir dribble
	cd ..;ln -s bomb $(dist)
	cd ..; tar hcfvz $(dist).tar.gz $(addprefix $(dist)/, $(TEXT) $(DIST))
	cd ..;rm $(dist)
	cp ../$(dist).tar.gz /usr/src/redhat/SOURCES

clean:
	rm -f *.o $(PROGS)

all: $(PROGS)

install:
	install -d $(DATA_DIR)
	cp -a *-data $(DATA_DIR)
	cp -a title.gif $(DATA_DIR)
	cp -a manual.txt $(DATA_DIR)
	rm -rf $(DATA_DIR)suck
	cp -a suck $(DATA_DIR)suck
	install -s bomb /usr/bin/bomb
	install bomb.png Bomb.desktop /usr/share/control-center/.data

cmap_test: cmap_test.o cmap.o

image2cmap: image2cmap.o $(LIBOBJS)
	$(CC) image2cmap.o $(LIBOBJS)  -o image2cmap -lm

include dependencies
