96 строки
3.6 KiB
Makefile
96 строки
3.6 KiB
Makefile
TOP=../..
|
|
|
|
include $(TOP)/Make.config
|
|
|
|
dotnet/global.json: $(TOP)/NuGet.config Makefile
|
|
$(Q) $(MAKE) -C ../dotnet $(notdir $@)
|
|
$(Q) $(CP) ../dotnet/$(notdir $@) $@
|
|
|
|
dotnet/NuGet.config: $(TOP)/NuGet.config Makefile
|
|
$(Q) $(MAKE) -C ../dotnet $(notdir $@)
|
|
$(Q) $(CP) ../dotnet/$(notdir $@) $@
|
|
|
|
TARGETS=dotnet/NuGet.config dotnet/global.json
|
|
|
|
ifeq ("$(BENCHMARK_OUTPUT_PATH)","")
|
|
BENCHMARK_OUTPUT_PATH:=$(abspath $(CURDIR)/output/$(shell date +%Y-%m-%d--%H:%M:%S))
|
|
endif
|
|
export BENCHMARK_OUTPUT_PATH
|
|
BINLOG_TIMESTAMP:=$(shell date +%Y-%m-%d--%H:%M:%S)
|
|
|
|
PERFLOGFILENAME:=$(BENCHMARK_OUTPUT_PATH)/perflog-$(shell date +%Y-%m-%d--%H:%M:%S).log
|
|
|
|
# Legacy Xamarin
|
|
|
|
build-perftest-with-legacy:
|
|
$(Q) $(SYSTEM_MSBUILD) /r "/bl:$@-$(BINLOG_TIMESTAMP).binlog" legacy/*.csproj $(MSBUILD_VERBOSITY)
|
|
|
|
run-perftest-with-legacy: $(TARGETS)
|
|
@echo "Running perftest (legacy) and writing output to $(PERFLOGFILENAME)..."
|
|
$(Q) mkdir -p $(BENCHMARK_OUTPUT_PATH)
|
|
$(Q) echo "VM: Legacy" > $(PERFLOGFILENAME)
|
|
(time $(abspath legacy/bin/Debug/perftest.app/Contents/MacOS/perftest) $(ARGUMENTS) 2>&1) 2>&1 | tee -a $(PERFLOGFILENAME)
|
|
|
|
# .NET
|
|
|
|
build-perftest-with-mono: export XAMARIN_RUNTIME=MonoVM
|
|
build-perftest-with-mono: $(TARGETS)
|
|
$(Q) $(MAKE) build-perf-test
|
|
|
|
build-perftest-with-coreclr: export XAMARIN_RUNTIME=CoreCLR
|
|
build-perftest-with-coreclr: $(TARGETS)
|
|
$(Q) $(MAKE) build-perf-test
|
|
|
|
RUNTIME_IDENTIFIER?=osx-x64
|
|
|
|
build-perf-test: $(TARGETS)
|
|
$(Q) test -n "$(XAMARIN_RUNTIME)" || ( echo "❌ XAMARIN_RUNTIME must be set! ❌"; exit 1)
|
|
$(Q) rm -Rf bin/$(XAMARIN_RUNTIME) obj/$(XAMARIN_RUNTIME)
|
|
$(Q) if ! (cd dotnet && $(DOTNET) build $(abspath dotnet/perftest.csproj) "/bl:$(abspath $@-$(XAMARIN_RUNTIME)-$(BINLOG_TIMESTAMP).binlog)" $(BUILD_PARAMETERS) /p:Configuration=$(XAMARIN_RUNTIME) /p:_XamarinRuntime=$(XAMARIN_RUNTIME) /p:RuntimeIdentifier=$(RUNTIME_IDENTIFIER) $(DOTNET_BUILD_VERBOSITY)); then \
|
|
$(DOTNET) build /v:diag "$(abspath $@-$(XAMARIN_RUNTIME)-$(BINLOG_TIMESTAMP).binlog)"; \
|
|
echo "Performance test build failed" & \
|
|
exit 1; \
|
|
fi
|
|
|
|
run-perftest-with-mono: export XAMARIN_RUNTIME=MonoVM
|
|
run-perftest-with-mono: $(TARGETS)
|
|
$(Q) $(MAKE) run-perftest-with-runtime
|
|
|
|
run-perftest-with-coreclr: export XAMARIN_RUNTIME=CoreCLR
|
|
run-perftest-with-coreclr: $(TARGETS)
|
|
$(Q) $(MAKE) run-perftest-with-runtime
|
|
|
|
perftest-with-mono: $(TARGETS)
|
|
$(Q) $(MAKE) build-perftest-with-mono
|
|
$(Q) $(MAKE) run-perftest-with-mono
|
|
|
|
perftest-with-coreclr: $(TARGETS)
|
|
$(Q) $(MAKE) build-perftest-with-coreclr
|
|
$(Q) $(MAKE) run-perftest-with-coreclr
|
|
|
|
perftest-with-legacy: $(TARGETS)
|
|
$(Q) $(MAKE) build-perftest-with-legacy
|
|
$(Q) $(MAKE) run-perftest-with-legacy
|
|
|
|
run-perftest-dotnet:
|
|
$(Q) $(MAKE) build-perftest-with-coreclr
|
|
$(Q) $(MAKE) build-perftest-with-mono
|
|
$(Q) $(MAKE) run-perftest-with-mono
|
|
$(Q) $(MAKE) run-perftest-with-coreclr
|
|
@echo "Log files were stored in $(BENCHMARK_OUTPUT_PATH)"
|
|
|
|
run-perftest:
|
|
$(Q) $(MAKE) build-perftest-with-legacy
|
|
$(Q) $(MAKE) build-perftest-with-coreclr
|
|
$(Q) $(MAKE) build-perftest-with-mono
|
|
$(Q) $(MAKE) run-perftest-with-legacy
|
|
$(Q) $(MAKE) run-perftest-with-mono
|
|
$(Q) $(MAKE) run-perftest-with-coreclr
|
|
@echo "Log files were stored in $(BENCHMARK_OUTPUT_PATH)"
|
|
|
|
run-perftest-with-runtime: $(TARGETS)
|
|
@echo "Running perftest ($(XAMARIN_RUNTIME)) and writing output to $(PERFLOGFILENAME)..."
|
|
$(Q) mkdir -p $(BENCHMARK_OUTPUT_PATH)
|
|
$(Q) echo "VM: $(XAMARIN_RUNTIME)" > $(PERFLOGFILENAME)
|
|
$(Q) set -o pipefail; (time $(abspath dotnet/bin/$(XAMARIN_RUNTIME)/$(DOTNET_TFM)-macos/$(RUNTIME_IDENTIFIER)/perftest.app/Contents/MacOS/perftest) $(ARGUMENTS) 2>&1) 2>&1 | tee -a $(PERFLOGFILENAME)
|