##===- unittests/Makefile.unittest -------------------------*- Makefile -*-===##
#
#                     The LLVM Compiler Infrastructure
#
# This file is distributed under the University of Illinois Open Source
# License. See LICENSE.TXT for details.
#
##===----------------------------------------------------------------------===##
#
# This file is included by all of the unit test makefiles.
#
##===----------------------------------------------------------------------===##

# Set up variables for building a unit test.
ifdef TESTNAME

include $(LEVEL)/Makefile.common

LLVMUnitTestExe = $(BuildMode)/$(TESTNAME)Tests$(EXEEXT)

CPP.Flags += -I$(LLVM_SRC_ROOT)/utils/unittest/googletest/include/
CPP.Flags += $(NO_VARIADIC_MACROS)
TESTLIBS = -lGoogleTest -lUnitTestMain

$(LLVMUnitTestExe): $(ObjectsO) $(ProjLibsPaths) $(LLVMLibsPaths)
	$(Echo) Linking $(BuildMode) unit test $(TESTNAME) $(StripWarnMsg)
	$(Verb) $(Link) -o $@ $(TOOLLINKOPTS) $(ObjectsO) $(ProjLibsOptions) \
	$(TESTLIBS) $(LLVMLibsOptions) $(ExtraLibs) $(TOOLLINKOPTSB) $(LIBS)
	$(Echo) ======= Finished Linking $(BuildMode) Unit test $(TESTNAME) \
          $(StripWarnMsg)

all:: $(LLVMUnitTestExe)

unitcheck:: $(LLVMUnitTestExe)
	$(LLVMUnitTestExe)

endif
