From a0155c41c929555b74efad23dc421ce77144cb5f Mon Sep 17 00:00:00 2001 From: Bill Wendling Date: Sun, 4 Jan 2009 23:12:21 +0000 Subject: [PATCH] Modify the unittests Makefiles so that they don't rebuild parts of LLVM just to run the tests. Most of this was stolen from the llvm/test Makefiles. llvm-svn: 61648 --- Makefile | 3 +-- Makefile.rules | 21 +++++++++++++++++++-- autoconf/configure.ac | 1 + unittests/Makefile | 3 ++- 4 files changed, 23 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 5987b88f773..d453330a2e9 100644 --- a/Makefile +++ b/Makefile @@ -116,7 +116,6 @@ dist-hook:: tools-only: all libs-only: all install-libs: install -unittests: all #------------------------------------------------------------------------ # Make sure the generated headers are up-to-date. This must be kept in @@ -185,7 +184,7 @@ update: $(SVN) $(SVN-UPDATE-OPTIONS) update $(LLVM_SRC_ROOT) @ $(SVN) status $(LLVM_SRC_ROOT) | $(SUB-SVN-DIRS) | xargs $(SVN) $(SVN-UPDATE-OPTIONS) update -happiness: update all check +happiness: update all check unittests .PHONY: srpm rpm update happiness diff --git a/Makefile.rules b/Makefile.rules index 3c9bb5e4cc9..313f5598da6 100644 --- a/Makefile.rules +++ b/Makefile.rules @@ -22,9 +22,9 @@ RecursiveTargets := all clean clean-all install uninstall install-bytecode LocalTargets := all-local clean-local clean-all-local check-local \ install-local printvars uninstall-local \ - install-bytecode-local + install-bytecode-local unittests TopLevelTargets := check dist dist-check dist-clean dist-gzip dist-bzip2 \ - dist-zip + dist-zip unittests UserTargets := $(RecursiveTargets) $(LocalTargets) $(TopLevelTargets) InternalTargets := preconditions distdir dist-hook @@ -1415,6 +1415,22 @@ check:: $(EchoCmd) No test directory ; \ fi +############################################################################### +# UNITTESTS: Running the unittests test suite +############################################################################### + +unittests:: + $(Verb) if test -d "$(PROJ_OBJ_ROOT)/unittests" ; then \ + if test -f "$(PROJ_OBJ_ROOT)/unittests/Makefile" ; then \ + $(EchoCmd) Running unittests test suite ; \ + $(MAKE) -C $(PROJ_OBJ_ROOT)/unittests ; \ + else \ + $(EchoCmd) No Makefile in unittests directory ; \ + fi ; \ + else \ + $(EchoCmd) No unittests directory ; \ + fi + ############################################################################### # DISTRIBUTION: Handle construction of a distribution tarball ############################################################################### @@ -1503,6 +1519,7 @@ dist-check:: $(DistTarGZip) --srcdir=../$(DistName) $(DIST_CHECK_CONFIG_OPTIONS) && \ $(MAKE) all && \ $(MAKE) check && \ + $(MAKE) unittests && \ $(MAKE) install && \ $(MAKE) uninstall && \ $(MAKE) dist-clean && \ diff --git a/autoconf/configure.ac b/autoconf/configure.ac index 2054548979d..c9bd8f25130 100644 --- a/autoconf/configure.ac +++ b/autoconf/configure.ac @@ -1029,6 +1029,7 @@ AC_CONFIG_MAKEFILE(lib/Makefile) AC_CONFIG_MAKEFILE(runtime/Makefile) AC_CONFIG_MAKEFILE(test/Makefile) AC_CONFIG_MAKEFILE(test/Makefile.tests) +AC_CONFIG_MAKEFILE(unittests/Makefile) AC_CONFIG_MAKEFILE(tools/Makefile) AC_CONFIG_MAKEFILE(utils/Makefile) AC_CONFIG_MAKEFILE(projects/Makefile) diff --git a/unittests/Makefile b/unittests/Makefile index 33f3c8ebaaf..d96df4f52d8 100644 --- a/unittests/Makefile +++ b/unittests/Makefile @@ -8,6 +8,7 @@ ##===----------------------------------------------------------------------===## LEVEL = .. + include $(LEVEL)/Makefile.config LIBRARYNAME = UnitTestMain @@ -20,4 +21,4 @@ PARALLEL_DIRS = ADT include $(LEVEL)/Makefile.common clean:: - $(RM) -f *Tests + $(Verb) $(RM) -f *Tests