# ---------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
# 
# http://www.apache.org/licenses/LICENSE-2.0
# 
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ---------------------------------------------------------------------------

cc_sources = \
  activemq/util/PrimitiveMapBenchmark.cpp \
  activemq/util/PropertiesBenchmark.cpp \
  activemq/util/QueueBenchmark.cpp \
  activemq/util/SetBenchmark.cpp \
  activemq/util/MapBenchmark.cpp \
  activemq/io/DataInputStreamBenchmark.cpp \
  activemq/io/DataOutputStreamBenchmark.cpp \
  benchmark/PerformanceTimer.cpp \
  testRegistry.cpp \
  main.cpp

hh_sources = \
  activemq/util/PrimitiveMapBenchmark.h \
  activemq/util/PropertiesBenchmark.h \
  activemq/util/QueueBenchmark.h \
  activemq/util/SetBenchmark.h \
  activemq/util/MapBenchmark.h \
  activemq/io/DataInputStreamBenchmark.h \
  activemq/io/DataOutputStreamBenchmark.h \
  benchmark/BenchmarkBase.h \
  benchmark/PerformanceTimer.h

## Compile this as part of make check
check_PROGRAMS = activemq-test-benchmarks

## 
## Compiler/Linker Options
##
activemq_test_benchmarks_SOURCES = $(cc_sources)
activemq_test_benchmarks_CXXFLAGS = $(AMQ_TEST_CXXFLAGS) -I$(srcdir)/../main @CPPUNIT_CFLAGS@
activemq_test_benchmarks_LDADD= $(AMQ_TEST_LIBS) @CPPUNIT_LIBS@

