Added support for (user-defined) benchmark instruments.
* Introduced `BenchmarkMeasurementInstrument`, an abstraction to allow pluggin in a different
aspects to measure - execution time, number scavenges, number fo full GC's...
* Introduced `BenchmarkMeasurement`, a value object that holds a result of measurement
done by a single `BenchmarkMeasurementInstrument`.
* Code refactored so now `BenchmarkOutcome` now keeps a set of `BenchmarkMeasure`s
* Measurements from each instrument are in reports. JSON report keep 'times' array for backward
compatibility.
* Each platform may define it's set of intruments that is used by default and
__ALWAYS__. They should be non-intrusive.
* Added command line option `-i` / `--instrument` to specify user-defined instrument to use.
*
# $Header$
#
# DO NOT EDIT
# automagically generated from the projectDefinition: jv_calipel_s_benchmarks_stx.
#
# Warning: once you modify this file, do not rerun
# stmkmp or projectDefinition-build again - otherwise, your changes are lost.
#
# Notice, that the name bc.mak is historical (from times, when only borland c was supported).
# This file contains make rules for the win32 platform using either borland-bcc or visual-c.
# It shares common definitions with the unix-make in Make.spec.
# The bc.mak supports the following targets:
# bmake - compile all st-files to a classLib (dll)
# bmake clean - clean all temp files
# bmake clobber - clean all
#
# Historic Note:
# this used to contain only rules to make with borland
# (called via bmake, by "make.exe -f bc.mak")
# this has changed; it is now also possible to build using microsoft visual c
# (called via vcmake, by "make.exe -f bc.mak -DUSEVC")
#
TOP=..\..\..\..\..\stx
INCLUDE_TOP=$(TOP)\..
!INCLUDE $(TOP)\rules\stdHeader_bc
!INCLUDE Make.spec
LIBNAME=libjv_calipel_s_benchmarks_stx
MODULE_PATH=calipel\s\benchmarks\stx
RESFILES=stx.$(RES)
LOCALINCLUDES= -I$(INCLUDE_TOP)\jv\calipel\s -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libbasic2 -I$(INCLUDE_TOP)\stx\libview
LOCALDEFINES=
STCLOCALOPT=-package=$(PACKAGE) -I. $(LOCALINCLUDES) -headerDir=. $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES) -varPrefix=$(LIBNAME)
LOCALLIBS=
OBJS= $(COMMON_OBJS) $(WIN32_OBJS)
ALL:: classLibRule
classLibRule: $(OUTDIR) $(OUTDIR)$(LIBNAME).dll
!INCLUDE $(TOP)\rules\stdRules_bc
# build all mandatory prerequisite packages (containing superclasses) for this package
prereq:
pushd ..\..\..\..\..\stx\libbasic & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
pushd ..\.. & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
test: $(TOP)\goodies\builder\reports\NUL
pushd $(TOP)\goodies\builder\reports & $(MAKE_BAT)
$(TOP)\goodies\builder\reports\report-runner.bat -D . -r Builder::TestReport -p $(PACKAGE)
clean::
del *.$(CSUFFIX)
# BEGINMAKEDEPEND --- do not remove this line; make depend needs it
$(OUTDIR)BenchmarkCollection.$(O) BenchmarkCollection.$(H): BenchmarkCollection.st $(INCLUDE_TOP)\jv\calipel\s\Benchmark.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)BenchmarkLinkedList.$(O) BenchmarkLinkedList.$(H): BenchmarkLinkedList.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)BenchmarkSTX1.$(O) BenchmarkSTX1.$(H): BenchmarkSTX1.st $(INCLUDE_TOP)\jv\calipel\s\Benchmark.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)BenchmarkSTX2.$(O) BenchmarkSTX2.$(H): BenchmarkSTX2.st $(INCLUDE_TOP)\jv\calipel\s\Benchmark.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)BenchmarkSTX3.$(O) BenchmarkSTX3.$(H): BenchmarkSTX3.st $(INCLUDE_TOP)\jv\calipel\s\Benchmark.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)BenchmarkSimpleHanoi.$(O) BenchmarkSimpleHanoi.$(H): BenchmarkSimpleHanoi.st $(INCLUDE_TOP)\jv\calipel\s\Benchmark.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)BenchmarkSlopstone.$(O) BenchmarkSlopstone.$(H): BenchmarkSlopstone.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)BenchmarkSmopstone.$(O) BenchmarkSmopstone.$(H): BenchmarkSmopstone.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)BenchmarkSpeedTester.$(O) BenchmarkSpeedTester.$(H): BenchmarkSpeedTester.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)jv_calipel_s_benchmarks_stx.$(O) jv_calipel_s_benchmarks_stx.$(H): jv_calipel_s_benchmarks_stx.st $(INCLUDE_TOP)\stx\libbasic\LibraryDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(STCHDR)
$(OUTDIR)BenchmarkDictionaryLike.$(O) BenchmarkDictionaryLike.$(H): BenchmarkDictionaryLike.st $(INCLUDE_TOP)\jv\calipel\s\Benchmark.$(H) $(INCLUDE_TOP)\jv\calipel\s\benchmarks\stx\BenchmarkCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)BenchmarkSortedCollectionLike.$(O) BenchmarkSortedCollectionLike.$(H): BenchmarkSortedCollectionLike.st $(INCLUDE_TOP)\jv\calipel\s\Benchmark.$(H) $(INCLUDE_TOP)\jv\calipel\s\benchmarks\stx\BenchmarkCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
# ENDMAKEDEPEND --- do not remove this line
# **Must be at end**
# Enforce recompilation of package definition class if Mercurial working
# copy state changes. Together with --guessVersion it ensures that package
# definition class always contains correct binary revision string.
!IFDEF HGROOT
$(OUTDIR)jv_calipel_s_benchmarks_stx.$(O): $(HGROOT)\.hg\dirstate
!ENDIF