
#SYNOPSIS:
#
#   make [all]  - makes everything.
#   make TARGET - makes the given target.
#   make clean  - removes all files generated by make.

include ${TRICK_HOME}/makefiles/Makefile.common

# Flags passed to the preprocessor.
TRICK_CPPFLAGS += -I$(GTEST_HOME)/include -I$(TRICK_HOME)/trick_source -g -Wall -Wextra -DGTEST_HAS_TR1_TUPLE=0 -DUSE_ER7_UTILS_INTEGRATORS=1

TRICK_LIBS = ${TRICK_HOME}/lib_${TRICK_HOST_CPU}/libtrick.a
TRICK_EXEC_LINK_LIBS += ${GTEST_HOME}/lib/libgtest.a ${GTEST_HOME}/lib/libgtest_main.a

# All tests produced by this Makefile.  Remember to add new tests you
# created to the list.
TESTS = Integrator_unittest

OTHER_OBJECTS = \
${TRICK_HOME}/trick_source/sim_services/Integrator/er7_algorithms/object_${TRICK_HOST_CPU}/io_ABM_Integrator.o \
${TRICK_HOME}/trick_source/sim_services/Integrator/er7_algorithms/object_${TRICK_HOST_CPU}/io_Euler_Cromer_Integrator.o \
${TRICK_HOME}/trick_source/sim_services/Integrator/er7_algorithms/object_${TRICK_HOST_CPU}/io_Euler_Integrator.o \
${TRICK_HOME}/trick_source/sim_services/Integrator/object_${TRICK_HOST_CPU}/io_Integrator.o \
${TRICK_HOME}/trick_source/sim_services/Integrator/er7_algorithms/object_${TRICK_HOST_CPU}/io_MM4_Integrator.o \
${TRICK_HOME}/trick_source/sim_services/Integrator/er7_algorithms/object_${TRICK_HOST_CPU}/io_NL2_Integrator.o \
${TRICK_HOME}/trick_source/sim_services/Integrator/er7_algorithms/object_${TRICK_HOST_CPU}/io_RK2_Integrator.o \
${TRICK_HOME}/trick_source/sim_services/Integrator/er7_algorithms/object_${TRICK_HOST_CPU}/io_RK4_Integrator.o \
${TRICK_HOME}/trick_source/sim_services/Integrator/er7_algorithms/object_${TRICK_HOST_CPU}/io_RKF45_Integrator.o \
${TRICK_HOME}/trick_source/sim_services/Integrator/er7_algorithms/object_${TRICK_HOST_CPU}/io_RKF78_Integrator.o \
${TRICK_HOME}/trick_source/sim_services/Integrator/er7_algorithms/object_${TRICK_HOST_CPU}/io_RKG4_Integrator.o

OTHER_OBJECTS += \
${TRICK_HOME}/trick_source/er7_utils/integration/*/object_${TRICK_HOST_CPU}/*.o \
${TRICK_HOME}/trick_source/er7_utils/interface/object_${TRICK_HOST_CPU}/*.o \
${TRICK_HOME}/trick_source/er7_utils/trick/integration/object_${TRICK_HOST_CPU}/*.o

# House-keeping build targets.

all : $(TESTS)

test: $(TESTS)
	./Integrator_unittest --gtest_output=xml:${TRICK_HOME}/trick_test/Integrator.xml

clean :
	rm -f $(TESTS) *.o
	rm -rf io_src xml

Integrator_unittest.o : Integrator_unittest.cc
	$(TRICK_CPPC) $(TRICK_CPPFLAGS) -c $<

Integrator_unittest : Integrator_unittest.o
	$(TRICK_LD) $(TRICK_LDFLAGS) -o $@ $^ $(OTHER_OBJECTS) -L${TRICK_HOME}/lib_${TRICK_HOST_CPU} $(TRICK_LIBS) $(TRICK_EXEC_LINK_LIBS)

