#@(#)makefile	3.9 (rl) 93/03/18
#******************************************************
# kaleido
#
#	Kaleidoscopic construction of uniform polyhedra
#
#	Author:
#		Dr. Zvi Har'El,
#		Deptartment of Mathematics,
#		Technion, Israel Institue of Technology,
#		Haifa 32000, Israel.
#		E-Mail: rl@gauss.technion.ac.il
#******************************************************

# Makefile for UNIX with X11R4, or MSDOS with MSC5.1 graphics.

BINDIR =	/usr/local/bin
MANDIR =	/usr/local/man/man1
INSTALL=	cp
COPY   =    mcopy
OBJS   =	main.o kaleido.o scope.o uniform.o
GRAPH  =	-lX11
MATH   =    -lm
INCS   =	vidx11.h
DRIVE  =	a
PAGES  =	-o1
PROGS  =	main.c kaleido.c scope.c uniform.c \
		kaleido.h vidx11.h vidmsdos.h vidjdyx.h vidlucas.h\
		schwarz.c
MSS    =	kaleido.man uniform.ms
UTILS  =	README makefile combine

all:	kaleido schwarz

exe:
	@$(MAKE) kaleido.exe schwarz.exe \
	"OBJS=main.obj kaleido.obj scope.obj uniform.obj" \
	GRAPH=graphics.lib MATH= INCS=vidmsdos.h
	
jdyx:
	@$(MAKE) "CFLAGS=-DJDYX $(CFLAGS)" \
	GRAPH=libvt.a INCS=vidjdyx.h

noscope:
	@$(MAKE) "CFLAGS=-DNOSCOPE $(CFLAGS)" \
	"OBJS=main.o kaleido.o uniform.o" GRAPH=

kaleido kaleido.exe:	$(OBJS)
	$(CC) -o $@ $(CFLAGS) $(OBJS) $(GRAPH) $(MATH)

$(OBJS):	kaleido.h

scope.o scope.obj:	$(INCS)

schwarz schwarz.exe:	schwarz.c
	$(CC) -o $@ $(CFLAGS) $? $(MATH)
	
install:	$(BINDIR)/kaleido $(MANDIR)/kaleido.1

$(BINDIR)/kaleido:	kaleido
	$(INSTALL) $? $@
	chmod a=rx $@

$(MANDIR)/kaleido.1:	kaleido.man
	$(INSTALL) $? $@
	chmod a=r $@

clean:
	rm -f *.o *.obj *~

distclean:	clean
	rm -f kaleido schwarz *.exe
	
cpio:	kaleido.cpio.Z kaleido.sccs.Z

kaleido.cpio.Z: $(PROGS) $(UTILS) $(MSS) 
	find $(PROGS) $(UTILS) $(MSS) -print| cpio -voc | compress -v >$@

kaleido.sccs.Z: $(PROGS) $(UTILS) $(MSS) 
	find SCCS -print| cpio -voc | compress -v >$@

doc:	kaleido.doc kaleido.ps uniform.doc uniform.ps sources.ps tables.ps

kaleido.doc:	kaleido.man
	groff -Tascii -man kaleido.man >$@

kaleido.ps:		kaleido.man
	groff -man kaleido.man >$@

uniform.doc:	uniform.ms
	sed "/^define \//d" uniform.ms | groff -Tascii -t -N -e -mgs >$@

uniform.ps:		uniform.ms kaleido combine
	rm -f poly.??? dual.???
	kaleido -sppoly -Pdual -f25.71428 >/dev/null
	sh combine | groff -p -t -N -e -mgs uniform.ms - >$@
	rm -f poly.??? dual.???

sources.ps:	$(PROGS) $(UTILS)
	pp $(PROGS) -x $(UTILS)>$@

tables.ps:	kaleido schwarz
	kaleido -sd8 | pp -xn0 -."ds R Uniform Polyhedra" >$@
	schwarz | pp -xn0 -."ds R Schwarz Triangles" >>$@

floppy: cpio jdyx exe
	$(COPY) kaleido.sccs.Z $(DRIVE):kaleido.s-z
	$(COPY) kaleido.cpio.Z $(DRIVE):kaleido.c-z
	$(COPY) kaleido *.exe $(DRIVE):
