all: executables publish utilities: tabprinter.util bitprinter.util pitabprinter.util EXECS=jamesharrisprime.elf \ jamesharrisprimeint.elf \ jamesharrisprime3.elf \ sieve.elf \ sievebool.elf \ sieve6bool.elf \ seqtest.elf \ legendrephi.elf \ carlw.elf \ cbond.elf \ christianbau.elf \ cbond2.elf \ daniel.elf \ binarysearch.elf \ davidbernier.elf \ jrodgers.elf \ stangula.elf \ stangula2.elf \ daniel2.elf \ daniel3.elf \ jrodgers2.elf \ legendrephi2.elf \ jrodgers3.elf \ stangula3.elf \ edgar.elf \ daniel4.elf \ bitty.elf \ index.elf \ savage.elf \ jrodgers4.elf \ savage2.elf \ edgar3.elf # the initial run preloads things. CXXFLAGS=-g SRCFILES=$(patsubst %.elf, Src/%.C, $(EXECS)) OBJFILES=$(patsubst %.elf, %.o, $(EXECS)) TESTRESULTS=$(patsubst %.elf, %.test, $(EXECS)) CPPINCLUDES=-I. -ISrc include $(TEMPLATES)/defs include $(TEMPLATES)/common include $(TEMPLATES)/dependencies tabprinter.util: tabprinter.o sievebool.o $(LINK.cc) -o $@ $^ bitprinter.util: bitprinter.o sievebool.o $(LINK.cc) -o $@ $^ pitabprinter.util: pitabprinter.o sievebool.o $(LINK.cc) -o $@ $^ Src/primetable.S: tabprinter.util ./tabprinter.util > $@ Src/bittable.S: bitprinter.util ./bitprinter.util > $@ # way too big to generate directly; as it is it takes over 3 minutes # and 80MB this way. pitab.o: pitabprinter.util ./pitabprinter.util | $(AS) -o pitab.o executables: $(EXECS) binarysearch.elf: binarysearch.o maindriver.o primetable.o $(LINK.cc) -o $@ $^ bitty.elf: bitty.o maindriver.o bittable.o $(LINK.cc) -o $@ $^ index.elf: index.o maindriver.o pitab.o $(LINK.cc) -o $@ $^ %.elf: %.o maindriver.o $(LINK.cc) -o $@ $^ %.test: %.elf Src/test.perl $* 100000 10000000 tests: $(TESTRESULTS) $(TIMINGS) $(MEMS) performance.do: $(TESTRESULTS) Src/genplots.perl Src/genplots.perl "(\$$1):(\$$1/\$$5)" $^ > performance.do logperformance.do: $(TESTRESULTS) Src/genplots.perl Src/genplots.perl "(\$$1):(log(\$$1/\$$5))" $^ > logperformance.do %.png: %.do gnuplot $*.do > $@ plots: performance.png logperformance.png %.C.txt: Src/%.C cp $^ $@ %.h.txt: Src/%.h cp $^ $@ %.perl.txt: Src/%.perl cp $^ $@ Makefile.txt: Src/Makefile cp $^ $@ alltexts: $(patsubst Src/%.C,%.C.txt,$(SRCFILES)) $(patsubst Src/%.h,%.h.txt,$(wildcard Src/*.h)) $(patsubst Src/%.perl,%.perl.txt,$(wildcard Src/*.perl)) Makefile.txt num.results: $(TESTRESULTS) grep '^10000000 ' $^ | sed 's,\.test:10000000,,' > $@ num.html: num.results Src/totab.perl "Results, raw" < num.results > num.html sort.results: num.results sort -k5 -n < $^ > $@ sort.html: sort.results Src/totab.perl "Results, ordered by user time" < sort.results > sort.html index.html: Src/index.html plots num.html sort.html sed -e "/BTABLE1/r num.html" -e "/BTABLE2/r sort.html" < Src/index.html > index.html publish: index.html alltexts plots cp *.txt *.png index.html ~/public_html/current/public_html/math/primecounters/