fixups, file comments
authorMorgan Deters <mdeters@gmail.com>
Mon, 23 Nov 2009 16:42:12 +0000 (16:42 +0000)
committerMorgan Deters <mdeters@gmail.com>
Mon, 23 Nov 2009 16:42:12 +0000 (16:42 +0000)
26 files changed:
src/Makefile.am
src/context/Makefile.am
src/expr/Makefile.am
src/include/cvc4.h
src/include/cvc4_config.h [new file with mode: 0644]
src/include/cvc4_expr.h
src/main/Makefile.am
src/main/about.h
src/main/getopt.cpp
src/main/main.cpp
src/main/main.h
src/main/usage.h
src/main/util.cpp
src/parser/Makefile.am
src/prop/Makefile.am
src/prop/minisat/Makefile.am
src/prop/prop_engine.h
src/smt/Makefile.am
src/smt/smt_engine.h [deleted file]
src/theory/Makefile.am
src/theory/theory.h
src/util/Makefile.am
src/util/decision_engine.h
src/util/options.h
test/no_cxxtest [deleted file]
test/unit/no_cxxtest [new file with mode: 0755]

index f7404e5149df52042142399194aa92d3d724a579..ca22263fd03a826dbc86eed3cc64f83162ba3a0a 100644 (file)
@@ -1,5 +1,6 @@
 INCLUDES = -I@srcdir@/include -I@srcdir@
 AM_CXXFLAGS = -Wall -fvisibility=hidden
+AM_CPPFLAGS = -D__BUILDING_CVC4LIB
 
 SUBDIRS = util expr context prop smt theory . parser main
 
@@ -10,10 +11,19 @@ libcvc4_la_LIBADD = \
        util/libutil.la \
        expr/libexpr.la \
        context/libcontext.la \
+       prop/libprop.la \
        prop/minisat/libminisat.la \
        smt/libsmt.la \
        theory/libtheory.la
 
-EXTRA_DIST = \
+publicheaders = \
        include/cvc4.h \
+       include/cvc4_config.h \
        include/cvc4_expr.h
+
+install-data-local:
+       $(mkinstalldirs) $(DESTDIR)$(includedir)/cvc4; \
+       @for f in $(publicheaders); do
+               echo $(INSTALL_DATA) "$(srcdir)/$$f" "$(DESTDIR)/$(includedir)/cvc4"
+               $(INSTALL_DATA) "$(srcdir)/$$f" "$(DESTDIR)/$(includedir)/cvc4"
+       done
index 87a4598c4a3f1454dacf8951408763ea38263afc..a906d28733165047b58e9bf69a3449d7f2795bfe 100644 (file)
@@ -1,5 +1,6 @@
 INCLUDES = -I@srcdir@/../include -I@srcdir@/..
 AM_CXXFLAGS = -Wall -fvisibility=hidden
+AM_CPPFLAGS = -D__BUILDING_CVC4LIB
 
 noinst_LTLIBRARIES = libcontext.la
 
index da2839ad10c177f3eb84667e60c878db1d9a0981..df3c34094d2e60bcfbac8f95cc787544035cac12 100644 (file)
@@ -1,5 +1,6 @@
 INCLUDES = -I@srcdir@/../include -I@srcdir@/..
 AM_CXXFLAGS = -Wall -fvisibility=hidden
+AM_CPPFLAGS = -D__BUILDING_CVC4LIB
 
 noinst_LTLIBRARIES = libexpr.la
 
index c5e3bb013354be3f48a532a253f2fe14009068ba..7b068228fbe05c6a9eae24e9cac90bbaf7225ef7 100644 (file)
@@ -1,5 +1,5 @@
 /*********************                                           -*- C++ -*-  */
-/** vc.h
+/** cvc4.h
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
 #ifndef __CVC4_H
 #define __CVC4_H
 
-#include "util/command.h"
+#include <vector>
 #include "cvc4_expr.h"
-
-/* TODO provide way of querying whether you fall into a fragment /
- * returning what fragment you're in */
+#include "util/command.h"
+#include "util/result.h"
+#include "util/model.h"
 
 // In terms of abstraction, this is below (and provides services to)
-// users using the library interface, and also the parser for the main
-// CVC4 binary.  It is above (and requires the services of) the Prover
-// class.
+// ValidityChecker and above (and requires the services of)
+// PropEngine.
 
 namespace CVC4 {
 
-/**
- * User-visible (library) interface to CVC4.
- */
-class ValidityChecker {
-  // on entry to the validity checker interface, need to set up
-  // current state (ExprManager::d_current etc.)
+// TODO: SAT layer (esp. CNF- versus non-clausal solvers under the
+// hood): use a type parameter and have check() delegate, or subclass
+// SmtEngine and override check()?
+//
+// Probably better than that is to have a configuration object that
+// indicates which passes are desired.  The configuration occurs
+// elsewhere (and can even occur at runtime).  A simple "pass manager"
+// of sorts determines check()'s behavior.
+//
+// The CNF conversion can go on in PropEngine.
+
+class SmtEngine {
+  /** Current set of assertions. */
+  // TODO: make context-aware to handle user-level push/pop.
+  std::vector<Expr> d_assertList;
+
+private:
+  /**
+   * Pre-process an Expr.  This is expected to be highly-variable,
+   * with a lot of "source-level configurability" to add multiple
+   * passes over the Expr.  TODO: may need to specify a LEVEL of
+   * preprocessing (certain contexts need more/less ?).
+   */
+  void preprocess(Expr);
+
+  /**
+   * Adds a formula to the current context.
+   */
+  void addFormula(Expr);
+
+  /**
+   * Full check of consistency in current context.  Returns true iff
+   * consistent.
+   */
+  Result check();
+
+  /**
+   * Quick check of consistency in current context: calls
+   * processAssertionList() then look for inconsistency (based only on
+   * that).
+   */
+  Result quickCheck();
+
+  /**
+   * Process the assertion list: for literals and conjunctions of
+   * literals, assert to T-solver.
+   */
+  void processAssertionList();
+
 public:
-  void doCommand(Command);
+  /**
+   * Execute a command
+   */
+  void doCommand(Command c);
+
+  /**
+   * Add a formula to the current context: preprocess, do per-theory
+   * setup, use processAssertionList(), asserting to T-solver for
+   * literals and conjunction of literals.  Returns false iff
+   * inconsistent.
+   */
+  Result assert(Expr);
+
+  /**
+   * Add a formula to the current context and call check().  Returns
+   * true iff consistent.
+   */
+  Result query(Expr);
+
+  /**
+   * Simplify a formula without doing "much" work.  Requires assist
+   * from the SAT Engine.
+   */
+  Expr simplify(Expr);
+
+  /**
+   * Get a (counter)model (only if preceded by a SAT or INVALID query.
+   */
+  Model getModel();
+
+  /**
+   * Push a user-level context.
+   */
+  void push();
 
-  void query(Expr);
-};
+  /**
+   * Pop a user-level context.  Throws an exception if nothing to pop.
+   */
+  void pop();
+};/* class SmtEngine */
 
 }/* CVC4 namespace */
 
diff --git a/src/include/cvc4_config.h b/src/include/cvc4_config.h
new file mode 100644 (file)
index 0000000..e571f59
--- /dev/null
@@ -0,0 +1,41 @@
+/*********************                                           -*- C++ -*-  */
+/** cvc4_config.h
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
+ ** Courant Institute of Mathematical Sciences
+ ** New York University
+ ** See the file COPYING in the top-level source directory for licensing
+ ** information.
+ **
+ ** [[ Add file-specific comments here ]]
+ **/
+
+#ifdef __BUILDING_CVC4LIB
+
+#  if defined _WIN32 || defined __CYGWIN__
+#    ifdef BUILDING_DLL
+#      ifdef __GNUC__
+#        define CVC4_PUBLIC __attribute__((dllexport))
+#      else /* ! __GNUC__ */
+#        define CVC4_PUBLIC __declspec(dllexport)
+#      endif /* __GNUC__ */
+#    else /* BUILDING_DLL */
+#      ifdef __GNUC__
+#        define CVC4_PUBLIC __attribute__((dllimport))
+#      else /* ! __GNUC__ */
+#        define CVC4_PUBLIC __declspec(dllimport)
+#      endif /* __GNUC__ */
+#    endif /* BUILDING_DLL */
+#  else /* !( defined _WIN32 || defined __CYGWIN__ ) */
+#    if __GNUC__ >= 4
+#      define CVC4_PUBLIC __attribute__ ((visibility("default")))
+#    else /* !( __GNUC__ >= 4 ) */
+#      define CVC4_PUBLIC
+#    endif /* __GNUC__ >= 4 */
+#  endif /* defined _WIN32 || defined __CYGWIN__ */
+
+#else /* ! __BUILDING_CVC4LIB */
+
+#  define CVC4_PUBLIC
+
+#endif /* __BUILDING_CVC4LIB */
index 1f5ac659d1ddcffe7c4b2cefcc2ee04d9719e0bf..36d7716474595391f90163df23020851416e9aed 100644 (file)
@@ -1,5 +1,5 @@
 /*********************                                           -*- C++ -*-  */
-/** expr.h
+/** cvc4_expr.h
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
@@ -15,6 +15,8 @@
 
 #include <vector>
 #include <stdint.h>
+
+#include "cvc4_config.h"
 #include "expr/kind.h"
 
 namespace CVC4 {
@@ -29,7 +31,7 @@ using CVC4::expr::ExprValue;
  * Encapsulation of an ExprValue pointer.  The reference count is
  * maintained in the ExprValue.
  */
-class Expr {
+class CVC4_PUBLIC Expr {
   /** A convenient null-valued encapsulated pointer */
   static Expr s_null;
 
@@ -49,17 +51,17 @@ class Expr {
   friend class ExprBuilder;
 
 public:
-  Expr(const Expr&);
+  CVC4_PUBLIC Expr(const Expr&);
 
   /** Destructor.  Decrements the reference count and, if zero,
    *  collects the ExprValue. */
-  ~Expr();
+  CVC4_PUBLIC ~Expr();
 
-  Expr& operator=(const Expr&);
+  Expr& operator=(const Expr&) CVC4_PUBLIC;
 
   /** Access to the encapsulated expression.
    *  @return the encapsulated expression. */
-  ExprValue* operator->() const;
+  ExprValue* operator->() const CVC4_PUBLIC;
 
   uint64_t hash() const;
 
index cf392f6b695640eaf4fe8785d8aef10820ae75b8..dddfb3219c41b6e24e44ad5f4997bd81deb70e67 100644 (file)
@@ -1,5 +1,6 @@
 INCLUDES = -I@srcdir@/../include -I@srcdir@/..
 AM_CXXFLAGS = -Wall -fvisibility=hidden
+AM_CPPFLAGS = -D__BUILDING_CVC4LIB
 
 bin_PROGRAMS = cvc4
 
index e02183ba7c061feeabeda5dc6d0f1466b241987e..4587168424507e0b031d5c58ddbce9c6487119dd 100644 (file)
@@ -1,4 +1,15 @@
-#ifndef __CVC4__MAIN__ABOUT_H
+/*********************                                           -*- C++ -*-  */
+/** about.h
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
+ ** Courant Institute of Mathematical Sciences
+ ** New York University
+ ** See the file COPYING in the top-level source directory for licensing
+ ** information.
+ **
+ ** [[ Add file-specific comments here ]]
+ **/
+
 #define __CVC4__MAIN__ABOUT_H
 
 namespace CVC4 {
index 5f32ccd77b9e7daf985b872a959019f2fcdc50a9..f1fe375b6a7c68dbf01a32f90d99783c2b17e305 100644 (file)
@@ -1,4 +1,15 @@
-#include <cstdio>
+/*********************                                           -*- C++ -*-  */
+/** getopt.cpp
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
+ ** Courant Institute of Mathematical Sciences
+ ** New York University
+ ** See the file COPYING in the top-level source directory for licensing
+ ** information.
+ **
+ ** [[ Add file-specific comments here ]]
+ **/
+
 #include <cstdlib>
 #include <new>
 #include <unistd.h>
index d2c6cb26db3d78911f1655bd2fe099735a874e1d..44543a75f93c1d00450fa261da6fca1f1af38f20 100644 (file)
@@ -1,4 +1,15 @@
-#include <cstdio>
+/*********************                                           -*- C++ -*-  */
+/** main.cpp
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
+ ** Courant Institute of Mathematical Sciences
+ ** New York University
+ ** See the file COPYING in the top-level source directory for licensing
+ ** information.
+ **
+ ** [[ Add file-specific comments here ]]
+ **/
+
 #include <cstdlib>
 #include <cerrno>
 #include <new>
index d0a517967ca2e2798c6eaa8d61e9594358e67744..5e0c6805336b8472443359e77a659e675e797f6f 100644 (file)
@@ -1,4 +1,15 @@
-#include <iostream>
+/*********************                                           -*- C++ -*-  */
+/** main.h
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
+ ** Courant Institute of Mathematical Sciences
+ ** New York University
+ ** See the file COPYING in the top-level source directory for licensing
+ ** information.
+ **
+ ** [[ Add file-specific comments here ]]
+ **/
+
 #include <exception>
 #include <string>
 
index edc9ad1d18b4477b697b3468a39fdaf8cf908600..3326108ace78f67143ca451ac65048f66322196b 100644 (file)
@@ -1,4 +1,15 @@
-#ifndef __CVC4__MAIN__USAGE_H
+/*********************                                           -*- C++ -*-  */
+/** usage.h
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
+ ** Courant Institute of Mathematical Sciences
+ ** New York University
+ ** See the file COPYING in the top-level source directory for licensing
+ ** information.
+ **
+ ** [[ Add file-specific comments here ]]
+ **/
+
 #define __CVC4__MAIN__USAGE_H
 
 namespace CVC4 {
index 63c8cc86002aae977c83ec9b6183dba3f5fa0c03..572aea00f5b7667e4943ae1f3030873cccdf3ceb 100644 (file)
@@ -1,4 +1,15 @@
-#include <string>
+/*********************                                           -*- C++ -*-  */
+/** util.cpp
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
+ ** Courant Institute of Mathematical Sciences
+ ** New York University
+ ** See the file COPYING in the top-level source directory for licensing
+ ** information.
+ **
+ ** [[ Add file-specific comments here ]]
+ **/
+
 #include <cstdio>
 #include <cstdlib>
 #include <cerrno>
index 8ea47d1406f3a2e3e9cf48101e7670cf5d2af07b..e83605d29935fb2451e9effcd5e3d70ac693eebe 100644 (file)
@@ -1,5 +1,6 @@
 INCLUDES = -I@srcdir@/../include -I@srcdir@/.. -I@builddir@
 AM_CXXFLAGS = -Wall -fvisibility=hidden
+AM_CPPFLAGS = -D__BUILDING_CVC4LIB
 
 noinst_LTLIBRARIES = libparser.la
 
index 941b0c653666b188d7b451a7da501198ad8fad32..87108cb5cfce49914a1b86808d46b238f93ab77f 100644 (file)
@@ -1,4 +1,9 @@
 INCLUDES = -I@srcdir@/../include -I@srcdir@/..
 AM_CXXFLAGS = -Wall -fvisibility=hidden
+AM_CPPFLAGS = -D__BUILDING_CVC4LIB
+
+noinst_LTLIBRARIES = libprop.la
+
+libprop_la_SOURCES =
 
 SUBDIRS = minisat
index db646fef454b22ac70f31cecf0c9341cfba78e91..f2716ff563d79c270825664365015f6be90f8c02 100644 (file)
@@ -1,5 +1,6 @@
 INCLUDES = -I@srcdir@/mtl -I@srcdir@/core -I@srcdir@/../../include
 AM_CXXFLAGS = -Wall -fvisibility=hidden
+AM_CPPFLAGS = -D__BUILDING_CVC4LIB
 
 noinst_LTLIBRARIES = libminisat.la
 libminisat_la_SOURCES = \
index 5572b47f70036d26ff773201563d9a7354898d40..08d48588204ad331dc3b627a1d8b6801649c2b78 100644 (file)
@@ -12,9 +12,9 @@
 #ifndef __CVC4__PROP__PROP_ENGINE_H
 #define __CVC4__PROP__PROP_ENGINE_H
 
-#include "core/cvc4_expr.h"
-#include "core/decision_engine.h"
-#include "core/theory_engine.h"
+#include "cvc4_expr.h"
+#include "util/decision_engine.h"
+#include "theory/theory_engine.h"
 
 namespace CVC4 {
 namespace prop {
index c2967ad146be40a24c6f0107baf7a422d4e08c59..325999db220f2ec591b4fd6b17acab1b302c62c2 100644 (file)
@@ -1,5 +1,6 @@
 INCLUDES = -I@srcdir@/../include -I@srcdir@/..
 AM_CXXFLAGS = -Wall -fvisibility=hidden
+AM_CPPFLAGS = -D__BUILDING_CVC4LIB
 
 noinst_LTLIBRARIES = libsmt.la
 
diff --git a/src/smt/smt_engine.h b/src/smt/smt_engine.h
deleted file mode 100644 (file)
index 078bf9c..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-/*********************                                           -*- C++ -*-  */
-/** prover.h
- ** This file is part of the CVC4 prototype.
- ** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
- ** Courant Institute of Mathematical Sciences
- ** New York University
- ** See the file COPYING in the top-level source directory for licensing
- ** information.
- **
- **/
-
-#ifndef __CVC4__SMT__SMT_ENGINE_H
-#define __CVC4__SMT__SMT_ENGINE_H
-
-#include <vector>
-#include "core/cvc4_expr.h"
-#include "core/result.h"
-#include "core/model.h"
-
-// In terms of abstraction, this is below (and provides services to)
-// ValidityChecker and above (and requires the services of)
-// PropEngine.
-
-namespace CVC4 {
-namespace smt {
-
-// TODO: SAT layer (esp. CNF- versus non-clausal solvers under the
-// hood): use a type parameter and have check() delegate, or subclass
-// SmtEngine and override check()?
-//
-// Probably better than that is to have a configuration object that
-// indicates which passes are desired.  The configuration occurs
-// elsewhere (and can even occur at runtime).  A simple "pass manager"
-// of sorts determines check()'s behavior.
-//
-// The CNF conversion can go on in PropEngine.
-
-class SmtEngine {
-  /** Current set of assertions. */
-  // TODO: make context-aware to handle user-level push/pop.
-  std::vector<Expr> d_assertList;
-
-private:
-  /**
-   * Pre-process an Expr.  This is expected to be highly-variable,
-   * with a lot of "source-level configurability" to add multiple
-   * passes over the Expr.  TODO: may need to specify a LEVEL of
-   * preprocessing (certain contexts need more/less ?).
-   */
-  void preprocess(Expr);
-
-  /**
-   * Adds a formula to the current context.
-   */
-  void addFormula(Expr);
-
-  /**
-   * Full check of consistency in current context.  Returns true iff
-   * consistent.
-   */
-  Result check();
-
-  /**
-   * Quick check of consistency in current context: calls
-   * processAssertionList() then look for inconsistency (based only on
-   * that).
-   */
-  Result quickCheck();
-
-  /**
-   * Process the assertion list: for literals and conjunctions of
-   * literals, assert to T-solver.
-   */
-  void processAssertionList();
-
-public:
-  /**
-   * Add a formula to the current context: preprocess, do per-theory
-   * setup, use processAssertionList(), asserting to T-solver for
-   * literals and conjunction of literals.  Returns false iff
-   * inconsistent.
-   */
-  Result assert(Expr);
-
-  /**
-   * Add a formula to the current context and call check().  Returns
-   * true iff consistent.
-   */
-  Result query(Expr);
-
-  /**
-   * Simplify a formula without doing "much" work.  Requires assist
-   * from the SAT Engine.
-   */
-  Expr simplify(Expr);
-
-  /**
-   * Get a (counter)model (only if preceded by a SAT or INVALID query.
-   */
-  Model getModel();
-
-  /**
-   * Push a user-level context.
-   */
-  void push();
-
-  /**
-   * Pop a user-level context.  Throws an exception if nothing to pop.
-   */
-  void pop();
-};/* class SmtEngine */
-
-}/* CVC4::smt namespace */
-}/* CVC4 namespace */
-
-#endif /* __CVC4__SMT__SMT_ENGINE_H */
index 97cb116e0e605056bd82d1a9c6a8c432b6eae152..803cc53b56c74e6a7b9f0e434132528e0abe5f8c 100644 (file)
@@ -1,5 +1,6 @@
 INCLUDES = -I@srcdir@/../include -I@srcdir@/..
 AM_CXXFLAGS = -Wall -fvisibility=hidden
+AM_CPPFLAGS = -D__BUILDING_CVC4LIB
 
 noinst_LTLIBRARIES = libtheory.la
 
index 05e8e1b015fd6c458528957e2a5ac62605bc19f9..1369d5f0b097bd19a27d68e1f132bf76d229a0e9 100644 (file)
@@ -12,8 +12,8 @@
 #ifndef __CVC4__THEORY__THEORY_H
 #define __CVC4__THEORY__THEORY_H
 
-#include "core/cvc4_expr.h"
-#include "core/literal.h"
+#include "cvc4_expr.h"
+#include "util/literal.h"
 
 namespace CVC4 {
 namespace theory {
index f25f52ac0fcb4ae7797a4f6d924d922253e8f708..4fe483c989492da6a2bda93d9b7a485054aa756f 100644 (file)
@@ -1,5 +1,6 @@
 INCLUDES = -I@srcdir@/../include -I@srcdir@/..
 AM_CXXFLAGS = -Wall -fvisibility=hidden
+AM_CPPFLAGS = -D__BUILDING_CVC4LIB
 
 noinst_LTLIBRARIES = libutil.la
 
index 2064e36877b3da81c7bb6acf4f5d7d0a555ec036..a6f8596dd9dd326ee2c9a56676bc42afc40bc091 100644 (file)
@@ -12,7 +12,7 @@
 #ifndef __CVC4__DECISION_ENGINE_H
 #define __CVC4__DECISION_ENGINE_H
 
-#include "core/literal.h"
+#include "util/literal.h"
 
 namespace CVC4 {
 
index 6104470d2dfac77b1097c8c13bf8d9e7ed3013b8..490cd607baa13a26134aeff567297731739e556a 100644 (file)
@@ -1,4 +1,15 @@
-#ifndef __CVC4__OPTIONS_H
+/*********************                                           -*- C++ -*-  */
+/** options.h
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
+ ** Courant Institute of Mathematical Sciences
+ ** New York University
+ ** See the file COPYING in the top-level source directory for licensing
+ ** information.
+ **
+ ** [[ Add file-specific comments here ]]
+ **/
+
 #define __CVC4__OPTIONS_H
 
 namespace CVC4 {
diff --git a/test/no_cxxtest b/test/no_cxxtest
deleted file mode 100755 (executable)
index cf8b8d7..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/sh
-
-echo
-echo '***************************************************************************'
-echo '*                                                                         *'
-echo '*  ERROR:  CxxTest was not found at configure-time; tests cannot be run.  *'
-echo '*                                                                         *'
-echo '***************************************************************************'
-echo
-
-exit 1
-
diff --git a/test/unit/no_cxxtest b/test/unit/no_cxxtest
new file mode 100755 (executable)
index 0000000..cf8b8d7
--- /dev/null
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+echo
+echo '***************************************************************************'
+echo '*                                                                         *'
+echo '*  ERROR:  CxxTest was not found at configure-time; tests cannot be run.  *'
+echo '*                                                                         *'
+echo '***************************************************************************'
+echo
+
+exit 1
+