#
#Definitions for using rational arithmetic
#
#RATIONALFLAG = -DRATIONAL
RATIONALOBJECTS = integer_matrix.o integer_vector.o _d_rat_point.o hyperplane.o \
  Linalg/d_ray.o

#
#Definitions for using CC
#
#CC = CC
#CFLAGS = -O -DLEDA_CHECKING_OFF $(RATIONALFLAG)
#CFLAGS = -g $(RATIONALFLAG)

#
# Definitions for using g++
#
CC = g++
CFLAGS = -ILinalg -Wall -Wstrict-prototypes -DLEDA_CHECKING_OFF -O
LDFLAGS = -L/usr/local/lib -L/usr/X11R6/lib
#CFLAGS = -p -static -DGNUBUG -O
#CFLAGS = -g -DGNUBUG

CTANGLE = ctangle
LATEX = latex

FIG2LATEX = fig2dev -L latex $< $@

.SUFFIXES: .fig .latex

WEBFILES = chull.w intro.w basics.w insert.w search_methods.w \
     dimension_jump.w output_routines.w deletion.w main.w \
     finish.w support_functions.w pre_del.w sanity.w

FIGURES = after.latex before.latex dim1.latex dj.latex exttri.latex find_ridge.latex\
 inner_point.latex myCHE.latex outer_point.latex simplex-connect.latex update.latex

all: prog docs

#
# Make the program
#

prog: chull

chull: chull.o $(RATIONALOBJECTS) main.o
	$(CC) -s $(LDFLAGS) main.o chull.o $(RATIONALOBJECTS) -o chull -lP -lG -lL -lWx -lX11 -lm

chull.o: chull.c
	$(CC) chull.c -c $(CFLAGS)

main.o: main.c
	$(CC) main.c -c $(CFLAGS)

chull.c + main.c:: $(WEBFILES)
	$(CTANGLE) chull.w

linalg.c: linalg.w
	$(CTANGLE) chull.w

linalg.o: linalg.c
	$(CC) linalg.c -c $(CFLAGS)

#
# Make the documentation
#

docs: chull.dvi

chull.ps: chull.dvi
	dvips chull.dvi

chull.dvi: chull.tex 
	$(LATEX) chull.tex

chull.tex: $(WEBFILES) $(FIGURES)
	#cweave -x chull.w
	cweave chull.w

.fig.latex:
	$(FIG2LATEX)


#basics.w: simplex-connect.latex

#deletion.w: dj.latex dim1.latex inner_point.latex outer_point.latex

#dimension_jump.w: dim1.latex dj.latex

#insert.w: before.latex after.latex update.latex

#intro.w: myCHE.latex exttri.latex

clean:
	rm *.o chull chull.c linalg.c chull.dvi chull.tex

tar: INHALT
	tar -cvzf ch.tgz -T INHALT
