| [a43dd54] | 1 | CC = gcc | 
|---|
|  | 2 | CFA = cfa | 
|---|
|  | 3 | DEPFLAGS = -MMD -MP | 
|---|
| [79d4186] | 4 | ifdef DBG | 
|---|
|  | 5 | CFLAGS = -O0 -ggdb -DN=500 | 
|---|
|  | 6 | else | 
|---|
| [a43dd54] | 7 | CFLAGS = -O2 | 
|---|
|  | 8 | ifdef N | 
|---|
|  | 9 | CFLAGS += -DN=$(N) | 
|---|
|  | 10 | endif | 
|---|
| [79d4186] | 11 | endif | 
|---|
| [a43dd54] | 12 | CXXFLAGS = $(CFLAGS) --std=c++14 | 
|---|
|  | 13 | MAKEFILE_NAME = ${firstword ${MAKEFILE_LIST}} | 
|---|
|  | 14 |  | 
|---|
|  | 15 | .PHONY : all clean run-c run-cpp run-cfa run | 
|---|
|  | 16 |  | 
|---|
|  | 17 | all : c-bench cpp-bench cpp-vbench cfa-bench | 
|---|
|  | 18 |  | 
|---|
|  | 19 | # rewrite object generation to auto-determine deps | 
|---|
|  | 20 | COMPILE.c = $(CC) $(DEPFLAGS) $(CFLAGS) $(CPPFLAGS) | 
|---|
|  | 21 | COMPILE.cpp = $(CXX) $(DEPFLAGS) $(CXXFLAGS) $(CPPFLAGS) | 
|---|
|  | 22 | COMPILE.cfa = $(CFA) $(DEPFLAGS) $(CFLAGS) $(CPPFLAGS) | 
|---|
|  | 23 |  | 
|---|
|  | 24 | c-%.o : c-%.c | 
|---|
|  | 25 | $(COMPILE.c) $(OUTPUT_OPTION) -c $< | 
|---|
|  | 26 |  | 
|---|
|  | 27 | cpp-%.o : cpp-%.cpp | 
|---|
|  | 28 | $(COMPILE.cpp) $(OUTPUT_OPTION) -c $< | 
|---|
|  | 29 |  | 
|---|
|  | 30 | cfa-%.o : cfa-%.c | 
|---|
|  | 31 | $(COMPILE.cfa) $(OUTPUT_OPTION) -c $< | 
|---|
|  | 32 |  | 
|---|
| [79d4186] | 33 | COBJS = c-stack.o c-pair.o c-bench.o | 
|---|
| [a43dd54] | 34 | CPPOBJS = cpp-bench.o | 
|---|
|  | 35 | CPPVOBJS = cpp-vstack.o cpp-vbench.o | 
|---|
| [79d4186] | 36 | CFAOBJS = cfa-stack.o cfa-pair.o cfa-bench.o | 
|---|
| [a43dd54] | 37 |  | 
|---|
|  | 38 | ${COBJS} ${CPPOBJS} ${CPPVOBJS} ${CFAOBJS} : ${MAKEFILE_NAME} | 
|---|
|  | 39 |  | 
|---|
|  | 40 | CFILES = bench.h $(patsubst c-bench.h,,$(COBJS:.o=.h)) $(COBJS:.o=.c) | 
|---|
| [79d4186] | 41 | CPPFILES = bench.hpp cpp-stack.hpp cpp-pair.hpp $(CPPOBJS:.o=.cpp) | 
|---|
|  | 42 | CPPVFILES = bench.hpp object.hpp $(patsubst cpp-vbench.hpp,,$(CPPVOBJS:.o=.hpp)) $(CPPVOBJS:.o=.cpp) | 
|---|
| [a43dd54] | 43 | CFAFILES = bench.h $(patsubst cfa-bench.h,,$(CFAOBJS:.o=.h)) $(CFAOBJS:.o=.c) | 
|---|
|  | 44 |  | 
|---|
|  | 45 | c-bench : $(COBJS) c-bench.o | 
|---|
|  | 46 | $(COMPILE.c) $(LDFLAGS) $^ -o $@ | 
|---|
|  | 47 |  | 
|---|
|  | 48 | cpp-bench : $(CPPOBJS) cpp-bench.o | 
|---|
|  | 49 | $(COMPILE.cpp) $(LDFLAGS) $^ -o $@ | 
|---|
|  | 50 |  | 
|---|
|  | 51 | cpp-vbench : $(CPPVOBJS) cpp-vbench.o | 
|---|
|  | 52 | $(COMPILE.cpp) $(LDFLAGS) $^ -o $@ | 
|---|
|  | 53 |  | 
|---|
|  | 54 | cfa-bench : $(CFAOBJS) cfa-bench.o | 
|---|
|  | 55 | $(COMPILE.cfa) $(LDFLAGS) $^ -o $@ | 
|---|
|  | 56 |  | 
|---|
|  | 57 | # include dependency files | 
|---|
|  | 58 | -include $(COBJS:.o=.d) | 
|---|
|  | 59 | -include $(CPPOBJS:.o=.d) | 
|---|
|  | 60 | -include $(CPPVOBJS:.o=.d) | 
|---|
|  | 61 | -include $(CFAOBJS:.o=.d) | 
|---|
|  | 62 |  | 
|---|
|  | 63 | clean : | 
|---|
|  | 64 | rm -f $(COBJS) $(COBJS:.o=.d) c-bench | 
|---|
|  | 65 | rm -f $(CPPOBJS) $(CPPOBJS:.o=.d) cpp-bench | 
|---|
|  | 66 | rm -f $(CPPVOBJS) $(CPPVOBJS:.o=.d) cpp-vbench | 
|---|
|  | 67 | rm -f $(CFAOBJS) $(CFAOBJS:.o=.d) cfa-bench | 
|---|
|  | 68 |  | 
|---|
|  | 69 | run-c : c-bench | 
|---|
|  | 70 | @echo | 
|---|
|  | 71 | @echo '## C ##' | 
|---|
|  | 72 | @/usr/bin/time -f 'max_memory:\t%M kilobytes' ./$< | 
|---|
|  | 73 | @printf 'source_size:\t%8d lines\n' `cat $(CFILES) | wc -l` | 
|---|
|  | 74 | @printf 'redundant_type_annotations:%8d lines\n' `cat $(CFILES) | fgrep '/***/' -c` | 
|---|
|  | 75 | @printf 'binary_size:\t%8d bytes\n' `stat -c %s $<` | 
|---|
|  | 76 |  | 
|---|
|  | 77 | run-cpp : cpp-bench | 
|---|
|  | 78 | @echo | 
|---|
|  | 79 | @echo '## C++ ##' | 
|---|
|  | 80 | @/usr/bin/time -f 'max_memory:\t %M kilobytes' ./$< | 
|---|
|  | 81 | @printf 'source_size:\t%8d lines\n' `cat $(CPPFILES) | wc -l` | 
|---|
|  | 82 | @printf 'redundant_type_annotations:%8d lines\n' `cat $(CPPFILES) | fgrep '/***/' -c` | 
|---|
|  | 83 | @printf 'binary_size:\t%8d bytes\n' `stat -c %s $<` | 
|---|
|  | 84 |  | 
|---|
|  | 85 | run-cppv : cpp-vbench | 
|---|
|  | 86 | @echo | 
|---|
|  | 87 | @echo '## C++obj ##' | 
|---|
|  | 88 | @/usr/bin/time -f 'max_memory:\t%M kilobytes' ./$< | 
|---|
|  | 89 | @printf 'source_size:\t%8d lines\n' `cat $(CPPVFILES) | wc -l` | 
|---|
|  | 90 | @printf 'redundant_type_annotations:%8d lines\n' `cat $(CPPVFILES) | fgrep '/***/' -c` | 
|---|
|  | 91 | @printf 'binary_size:\t%8d bytes\n' `stat -c %s $<` | 
|---|
|  | 92 |  | 
|---|
|  | 93 | run-cfa : cfa-bench | 
|---|
|  | 94 | @echo | 
|---|
|  | 95 | @echo '## Cforall ##' | 
|---|
|  | 96 | @/usr/bin/time -f 'max_memory:\t %M kilobytes' ./$< | 
|---|
|  | 97 | @printf 'source_size:\t%8d lines\n' `cat $(CFAFILES) | wc -l` | 
|---|
|  | 98 | @printf 'redundant_type_annotations:%8d lines\n' `cat $(CFAFILES) | fgrep '/***/' -c` | 
|---|
|  | 99 | @printf 'binary_size:\t%8d bytes\n' `stat -c %s $<` | 
|---|
|  | 100 |  | 
|---|
|  | 101 | run : run-c run-cfa run-cpp run-cppv | 
|---|