# Makefile for grafix-applications  
#	wolf 6/94

include grafix.mk

# This will be overidden in debian/rules
vers = 1.5

DEMOS = class-browser earth hello win-demo edit-demo file-browser cursors calc \
	dir-tree font-browser \
	pal-demo lat-demo lat2demo one-dim two-dim clock-demo three-dim \
	replay mandel

PROGS = scrolled_demo 

ifeq ($(shell uname),Linux) 
	PROGS += hardcopy 
endif

TOSHAR = window.c helper.c window.h lat_win.c lat_man.c reg_man.c lattice.h \
	palette.c palette.h files.c files.h smolark.c smolark.h solver.c \
	font-selector.c font-selector.h \
	mapdata.c hardcopy.c \
	animator.h animator.c wave.c three-nxnynz.h \
	icon.h eventnames.h README.txt HOWTO.txt COPYING LOG.txt TODO.txt \
	FAQ.txt Makefile grafix.mk \
	calc.icon tree.h tree.c tree_icon.h gccinc \
	$(DEMOS:%=%.c) $(PROGS:%=%.c) 

#all:	libgrafix.so  demos $(PROGS)
all:	libgrafix.so   libgrafix.a

allnew: depend all

demos: 	$(DEMOS)

test: 	clean depend all dist-tgz test-tgz

# make demos = ~ 100 sec P90

#libwin.a: window.o $(LIB_SRC:%=%.o) 
#	$(AR) libwin.a $?
#	ranlib libwin.a

libgrafix.so:  $(LIB_SRC:%=%.o) 
	$(CC) -shared -o libgrafix.so $? -Wl,-soname -Wl,libgrafix.so.$(vers)

libgrafix.a:  $(LIB_SRC:%=%.o) 
	$(AR) libgrafix.a $?
	ranlib libgrafix.a

earth:		earth.o mapdata.o window.o
	$(CC)  -o  earth earth.o mapdata.o $(LFLAGS) -L. -lgrafix 	
mandel:		mandel.o window.o
	$(CC)  -o   mandel mandel.o $(LFLAGS) -L. -lgrafix 
font-browser: 	font-browser.o window.o font-selector.o files.o
	$(CC)  -o  font-browser font-browser.o font-selector.o files.o  $(LFLAGS) -L. -lgrafix
hardcopy:	hardcopy.o window.o
	$(CC)  -o  hardcopy  hardcopy.o $(LFLAGS) -L. -lgrafix 
hello: 		hello.o window.o
	$(CC)  -o  hello hello.o  $(LFLAGS) -L. -lgrafix
win-demo: 	win-demo.o window.o
	$(CC)  -o  win-demo win-demo.o $(LFLAGS) -L. -lgrafix 
calc: 		calc.o window.o
	$(CC)  -o calc calc.o  $(LFLAGS) -L. -lgrafix 	
edit-demo: 	edit-demo.o window.o
	$(CC)  -o edit-demo  edit-demo.o $(LFLAGS) -L. -lgrafix
cursors: 	cursors.o window.o
	$(CC)  -o   cursors cursors.o $(LFLAGS) -L. -lgrafix 
pal-demo: 	pal-demo.o
	$(CC)  -o   pal-demo pal-demo.o $(LFLAGS) -L. -lgrafix 
lat-demo: 	lat-demo.o 
	$(CC)  -o   lat-demo   lat-demo.o  $(LFLAGS) -L. -lgrafix 
lat2demo: 	lat2demo.o 
	$(CC)  -o   lat2demo lat2demo.o $(LFLAGS) -L. -lgrafix 
one-dim: 	one-dim.o solver.o 
	$(CC)  -o  one-dim one-dim.o solver.o  $(LFLAGS) -L. -lgrafix 
two-dim: 	two-dim.o smolark.o 
	$(CC)  -o  two-dim two-dim.o smolark.o  $(LFLAGS) -L. -lgrafix 

three-dim: 	three-dim.o wave.o animator.o files.o
	$(CC)  -o   three-dim three-dim.o wave.o animator.o files.o $(LFLAGS) -L. -lgrafix 

file-browser: 	file-browser.o  window.o files.o
	$(CC)  -o   file-browser file-browser.o  files.o $(LFLAGS) -L. -lgrafix 

clock-demo: 	clock-demo.o window.o
	$(CC)  -o   clock-demo  clock-demo.o window.o  $(LFLAGS) -L. -lgrafix 

replay: 	replay.o animator.o  files.o 
	$(CC)  -o   replay replay.o animator.o  files.o  $(LFLAGS) -L. -lgrafix 

tree: 		tree.o window.o files.o
	$(CC)  -o   tree tree.o files.o $(LFLAGS) -L. -lgrafix 

scrolled_demo: 	scrolled_demo.o window.o 
	$(CC)  -o  scrolled_demo scrolled_demo.o  $(LFLAGS) -L. -lgrafix 

class-browser: 	class-browser.o tree.o window.o files.o
	$(CC)  -o   class-browser class-browser.o tree.o files.o $(LFLAGS) -L. -lgrafix 

dir-tree: 	dir-tree.o tree.o window.o files.o
	$(CC)  -o   dir-tree dir-tree.o tree.o files.o $(LFLAGS) -L. -lgrafix 

clean:
	\rm -f *.o *.a $(DEMOS) $(PROGS)
	\rm -rf ttgz/*
	\rm -rf tshar/*

masterproper: clean
	\rm -f .depend

####### make shell archives for comp.sources.misc -> subdir post #####
shar:
	shar -o Grafix.shar -l 100 -n Grafix  -a -s wolf@first.gmd.de \
	$(TOSHAR)
	cat intro.txt Grafix.shar.01 > tmp; mv -f tmp Grafix.shar.01

test-shar:
	\rm -rf tshar/*
	cp *.shar* tshar/
	cd tshar; unshar *shar*; $(MAKE) demos;

###### generate tar-file for uploading to sunsite #####
# "make dist-tgz" - generates grafix.tar.gz file for distributions
# NEWDIR is a symbolic link into the actual directory, used as destination
# directory for expanding on other systems

VERSION = 1.5
NEWDIR  = grafix-$(VERSION)
TARFILE = $(NEWDIR).tar.gz
dist-tgz: 
	ln -s . $(NEWDIR)
	$(TAR) -czh -f $(NEWDIR)/$(TARFILE) $(TOSHAR:%=$(NEWDIR)/%) 
	uuencode $(TARFILE) $(TARFILE) > $(TARFILE).uu
	\rm $(NEWDIR)

test-tgz:
	$(TAR) -xvzf $(TARFILE); 
	cd $(NEWDIR); $(MAKE) allnew;

tgz:
	$(TAR) -cvzf grafix.tgz *.h *.c *.txt *.mk Makefile

# runs all the demos :
demorun: $(DEMOS)
	@for demo in $(DEMOS); do (echo "running $$demo"; exec $$demo;); done

# make dependencies:
depend:	
	$(CC) -MM $(CFLAGS) *.c > .depend

-include	.depend


