# # Makefile designed for use with gcc, MetaPost and plain TeX. # # Copyright (C) 2002-2006, Fredrik Jonsson # CC = gcc CCOPTS = -O2 -Wall -ansi -std=iso9899:1990 -pedantic LNOPTS = -lm TEX = tex DVIPS = dvips METAPOST = mpost BOXCOUNTPATH = ../ BOXCOUNT = $(BOXCOUNTPATH)/boxcount all: koch @echo "===============================================================" @echo " Run 'make kochgraphs' to generate Encapsulated PostScript" @echo " graphs of Koch snowflake fractal of iteration orders up to" @echo " and including n=6." @echo " Run 'make fractaldimension' to estimate the fractal dimension." @echo "===============================================================" koch: koch.o $(CC) $(CCOPTS) -o koch koch.o $(LNOPTS) koch.o: koch.c $(CC) $(CCOPTS) -c koch.c kochgraphs: make koch for k in 1 2 3 4 5 6 ; do \ ./koch $$k > kochgraph-$$k.dat ;\ echo "input graph;"\ "beginfig(1);"\ "w:=42mm; h:=42mm;"\ "draw begingraph(w,h);"\ "pickup pencircle scaled .5pt;"\ "setrange(-1.1,-1.1,1.1,1.1);"\ "pickup pencircle scaled .5pt;"\ "gdraw \"kochgraph-"$$k".dat\";"\ "autogrid(itick bot,itick lft);"\ "glabel.llft(btex $$ n="$$k" $$ etex,(0.9,0.9));"\ "if ("$$k"=1): glabel.lrt(btex intiator etex,(-1.0,0.9)); fi;"\ "if ("$$k"=2): glabel.lrt(btex generator etex,(-1.0,0.9)); fi;"\ "if (0=1): glabel.bot(btex $$ x $$ etex,OUT); fi;"\ "if (0=1): glabel.lft(btex $$ y $$ etex,OUT); fi;"\ "endgraph;"\ "endfig;"\ "end">kochgraph-$$k.mp;\ $(METAPOST) kochgraph-$$k.mp;\ $(TEX) -jobname=kochgraph-$$k '\input epsf\nopagenumbers\ \centerline{\epsfxsize=120mm\epsfbox{kochgraph-'$$k'.1}}\bye';\ $(DVIPS) -D1200 -E kochgraph-$$k -o kochgraph-$$k.eps;\ done fractaldimension: make koch make boxcount -C ../ ./koch 10 > koch.trj @$(BOXCOUNT) --minlevel 6 --maxlevel 12 \ --trajectoryfile koch.trj --outputfile overwrite koch clean: -rm -Rf koch *~ *.o *.exe *.dat *.mp *.mpx *.trj -rm -Rf *.tex *.aux *.log *.toc *.idx *.scn *.dvi *.1 *.eps archive: make -ik clean tar --gzip --directory=../ -cf koch.tgz koch