123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- LMBENCHDIR = lmbench-2.5
- LINUXDIR=$(LMBENCHDIR)/bin/linux/
- GRAPHENEDIR=$(LMBENCHDIR)/bin/graphene/
- RUNDIR=$(LMBENCHDIR)/bin/graphene.run/
- HOST_BINARIES = /bin/sh /usr/include/x86_64-linux-gnu/sys/types.h
- BINARIES = $(LINUXDIR) $(addprefix host,$(HOST_BINARIES))
- LMBENCH_TESTS = lat_syscall lat_connect lat_fcntl lat_select lat_fs \
- lat_mmap lat_fifo lat_mem_rd lat_msg lat_tcp lat_udp \
- lat_unix_connect lat_pagefault \
- bw_tcp bw_mem bw_unix lat_proc lat_ctx lat_rpc \
- lat_unix lat_sig lat_http lat_pipe \
- bw_pipe bw_file_rd bw_mmap_rd lmhttp lmdd
- MANIFESTS = $(addsuffix .manifest,$(addprefix $(RUNDIR),$(LMBENCH_TESTS)))
- RUNTIME_BINS = $(LINUXDIR)hello /bin/sh
- RUNTIME_MANIFESTS=$(addsuffix .manifest,$(addprefix $(RUNDIR),$(foreach f,$(RUNTIME_BINS),$(notdir $(f)))))
- target = $(addprefix $(LINUXDIR),$(LMBENCH_TESTS)) $(GRAPHENEDIR)
- exec_target = $(MANIFESTS) $(RUNTIME_MANIFESTS)
- clean-extra = clean-lmbench
- level = ../../
- include ../../Makefile
- export CC
- export CFLAGS
- servers = lat_udp lat_tcp lat_rpc lat_connect bw_tcp
- $(GRAPHENEDIR): $(MANIFESTS) $(addprefix $(RUNDIR),$(LMBENCH_TESTS)) $(LINUXDIR)
- mkdir -p $@
- for f in $(MANIFESTS); do \
- f=$${f
- echo "#!/bin/sh\ncd $(abspath $(RUNDIR)) && exec ./$$f.manifest \$$@" > $(GRAPHENEDIR)$$f; \
- chmod +x $(GRAPHENEDIR)$$f; \
- done
- cd $(LINUXDIR) && for f in *; do \
- if [ ! -f ../graphene/$$f ]; then cp $$f ../graphene/$$f; fi; \
- done
- $(MANIFESTS): $(RUNDIR)%.manifest: $(RUNDIR)%.manifest.template $(LINUXDIR)%
- $(MAKE) -C .. lmbench/$@ appdir=lmbench/
- $(addsuffix .template,$(MANIFESTS)): $(RUNDIR)%.manifest.template: manifest.template $(RUNDIR)
- ln -sf ../../../$< $@
- $(RUNTIME_MANIFESTS): %.manifest: %.manifest.template
- $(MAKE) -C .. lmbench/$@ appdir=lmbench/
- $(addsuffix .template,$(RUNTIME_MANIFESTS)): $(RUNDIR)%.manifest.template: %.manifest.template $(RUNDIR)
- ln -sf ../../../$< $@
- $(addprefix $(RUNDIR),$(LMBENCH_TESTS)): $(RUNDIR)%: $(LINUXDIR)%
- ln -sf ../linux/$(notdir $@) $@
- $(RUNDIR):
- mkdir -p $@
- ifeq ($(SYS),x86_64-linux-gnu)
- $(addprefix $(LINUXDIR),$(LMBENCH_TESTS)): \
- $(wildcard $(LMBENCHDIR)/src/*.c) $(wildcard $(LMBENCHDIR)/src/*.h)
- $(MAKE) -C $(LMBENCHDIR)/src OS=linux CC="gcc -g"
- .PHONY: pack
- $(addprefix host,$(HOST_BINARIES)):
- @echo "$(patsubst host%,%,$@) -> $@"
- @mkdir -p $(dir $@)
- @cp -LTrf $(patsubst host%,%,$@) $@
- pack: $(BINARIES)
- @../../../../../Scripts/pack_binaries.sh lmbench $^
- else
- all: $(addprefix /tmp/host,$(HOST_BINARIES))
- $(filter-out $(HOST_BINARIES),$(BINARIES)): .packed/lmbench.tar.gz
- tar -xmozf $< $@
- $(addprefix /tmp/host,$(HOST_BINARIES)): .packed/lmbench.tar.gz
- cd /tmp && tar -xmozf $(abspath $<) $(subst /tmp/,,$@)
- endif
- LMBENCHCONFIG = $(shell $(LMBENCHDIR)/scripts/config)
- $(LINUXDIR)$(LMBENCHCONFIG):
- cd $(LMBENCHDIR)/scripts && env OS=linux ./config-run
- /tmp/hello: $(LINUXDIR)hello
- cp -f $< $@
- test-native: $(LINUXDIR) $(LINUXDIR)$(LMBENCHCONFIG) /tmp/hello
- cd $(LMBENCHDIR)/scripts && env OS=linux ./results
- $(RUNDIR)$(LMBENCHCONFIG): $(LINUXDIR)$(LMBENCHCONFIG)
- sed -e "s/OS=\"linux\"/OS=\"graphene\"/g" $< > $@
- test-graphene: all $(RUNDIR)$(LMBENCHCONFIG) /tmp/hello
- cd $(LMBENCHDIR)/scripts && env OS=graphene ./results
- clean-lmbench:
- $(MAKE) -C $(LMBENCHDIR) clean
|