diff options
| author | Florian Fischer <florian.fl.fischer@fau.de> | 2019-02-01 16:35:20 +0100 |
|---|---|---|
| committer | Florian Fischer <florian.fl.fischer@fau.de> | 2019-02-01 16:35:20 +0100 |
| commit | 130765de719a3ddc475284e13749d09ff371a8e1 (patch) | |
| tree | c45ea8d47e53481022d641336ec2abd5cb588111 /Makefile | |
| parent | 8221b8fb0e9ee491590932cd228f17b48155c0f7 (diff) | |
| download | allocbench-130765de719a3ddc475284e13749d09ff371a8e1.tar.gz allocbench-130765de719a3ddc475284e13749d09ff371a8e1.zip | |
rework build system #1
each benchmark has its own Makefile which must put it's binaries into
OBJDIR which is added to the PATH during execution.
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 83 |
1 files changed, 14 insertions, 69 deletions
@@ -2,12 +2,12 @@ .DEFAULT_GOAL = all -SRCDIR=src -BENCHSRCDIR=$(SRCDIR)/benchmarks -BENCH_C_SOURCES = $(shell find $(BENCHSRCDIR) -name "*.c") -BENCH_CC_SOURCES = $(shell find $(BENCHSRCDIR) -name "*.cc") +SRCDIR = src -OBJDIR = ./build +BENCHSRCDIR = $(SRCDIR)/benchmarks +BENCHMARKS = $(shell dirname $(shell find $(BENCHSRCDIR) -name Makefile)) + +OBJDIR = $(PWD)/build CC = gcc CXX = g++ @@ -17,85 +17,30 @@ COMMONFLAGS = -fno-builtin -fPIC -DPIC -pthread OPTFLAGS = -O3 -DNDEBUG # OPTFLAGS = -O0 -g3 -CXXFLAGS = -std=c++11 -I. $(OPTFLAGS) $(WARNFLAGS) $(COMMONFLAGS) -fno-exceptions CFLAGS = -I. $(OPTFLAGS) $(WARNFLAGS) $(COMMONFLAGS) +CXXFLAGS = -std=c++11 $(CFLAGS) -fno-exceptions LDFLAGS = -pthread -static-libgcc LDXXFLAGS = $(LDFLAGS) -static-libstdc++ -VPATH = $(sort $(dir $(BENCH_C_SOURCES) $(BENCH_CC_SOURCES))) - -GLIBC_NOTC = $(PWD)/../glibc/glibc-install-notc/lib +GLIBC_NOTC = $(PWD)/../glibc/glibc-install-nofs/lib -BENCH_OBJECTS = $(notdir $(BENCH_CC_SOURCES:.cc=.o)) $(notdir $(BENCH_C_SOURCES:.c=.o)) -BENCH_OBJPRE = $(addprefix $(OBJDIR)/,$(BENCH_OBJECTS)) MAKEFILE_LIST = Makefile -BENCH_TARGETS = $(BENCH_OBJPRE:.o=) $(OBJDIR)/trace_run +.PHONY: all clean $(SRCDIR) $(BENCHMARKS) +all: $(OBJDIR)/ccinfo $(BENCHMARKS) $(SRCDIR) -NOTC_TARGETS = $(BENCH_TARGETS:=-glibc-notc) +$(SRCDIR): + make -C $@ OBJDIR=$(OBJDIR) -all: $(BENCH_TARGETS) $(NOTC_TARGETS) $(OBJDIR)/chattymalloc.so $(OBJDIR)/print_status_on_exit.so $(OBJDIR)/ccinfo +$(BENCHMARKS): $(MAKEFILE_LIST) + $(MAKE) -C $@ all OBJDIR=$(OBJDIR)/$(shell basename $@) -$(OBJDIR)/ccinfo: +$(OBJDIR)/ccinfo: | $(OBJDIR) $(CC) -v 2> $@ -$(OBJDIR)/print_status_on_exit.so: $(SRCDIR)/print_status_on_exit.c $(MAKEFILE_LIST) - $(CC) -shared $(CFLAGS) -o $@ $< -ldl - -$(OBJDIR)/chattymalloc.so: $(SRCDIR)/chattymalloc.c $(MAKEFILE_LIST) - $(CC) -shared $(CFLAGS) -o $@ $< -ldl - -$(OBJDIR)/trace_run: $(SRCDIR)/trace_run.c $(MAKEFILE_LIST) - $(CC) $(LDFALGS) $(CFLAGS) -o $@ $< - -$(OBJDIR)/trace_run-glibc-notc: $(OBJDIR)/trace_run $(MAKEFILE_LIST) - cp $< $@ - patchelf --set-interpreter $(GLIBC_NOTC)/ld-linux-x86-64.so.2 $@ - patchelf --set-rpath $(GLIBC_NOTC) $@ - -$(OBJDIR)/larson: $(OBJDIR)/larson.o - $(CXX) $(LDXXFLAGS) -o $@ $^ - -$(OBJDIR)/larson-glibc-notc: $(OBJDIR)/larson - cp $< $@ - patchelf --set-interpreter $(GLIBC_NOTC)/ld-linux-x86-64.so.2 $@ - patchelf --set-rpath $(GLIBC_NOTC) $@ - -$(OBJDIR)/cache-thrash: $(OBJDIR)/cache-thrash.o - $(CXX) $(LDXXFLAGS) -o $@ $^ - -$(OBJDIR)/cache-thrash-glibc-notc: $(OBJDIR)/cache-thrash - cp $< $@ - patchelf --set-interpreter $(GLIBC_NOTC)/ld-linux-x86-64.so.2 $@ - patchelf --set-rpath $(GLIBC_NOTC) $@ - -$(OBJDIR)/cache-scratch: $(OBJDIR)/cache-scratch.o - $(CXX) $(LDXXFLAGS) -o $@ $^ - -$(OBJDIR)/cache-scratch-glibc-notc: $(OBJDIR)/cache-scratch - cp $< $@ - patchelf --set-interpreter $(GLIBC_NOTC)/ld-linux-x86-64.so.2 $@ - patchelf --set-rpath $(GLIBC_NOTC) $@ - -$(OBJDIR)/bench_loop: $(OBJDIR)/bench_loop.o - $(CC) $(LDFLAGS) -o $@ $^ - -$(OBJDIR)/bench_loop-glibc-notc: $(OBJDIR)/bench_loop - cp $< $@ - patchelf --set-interpreter $(GLIBC_NOTC)/ld-linux-x86-64.so.2 $@ - patchelf --set-rpath $(GLIBC_NOTC) $@ - -$(OBJDIR)/%.o : %.c $(OBJDIR) $(MAKEFILE_LIST) - $(CC) -c $(CFLAGS) -o $@ $< - -$(OBJDIR)/%.o : %.cc $(OBJDIR) $(MAKEFILE_LIST) - $(CXX) -c $(CXXFLAGS) -o $@ $< - $(OBJDIR): mkdir -p $@ clean: rm -rf $(OBJDIR) - rm -rf $(DEPDIR) - |
