Switch license default back to BSD, and add --best and --enable-gpl options.
authorMorgan Deters <mdeters@cs.nyu.edu>
Wed, 8 Jan 2014 20:27:26 +0000 (15:27 -0500)
committerMorgan Deters <mdeters@cs.nyu.edu>
Wed, 8 Jan 2014 20:27:26 +0000 (15:27 -0500)
COPYING
NEWS
config/cvc4.m4
config/readline.m4
configure.ac

diff --git a/COPYING b/COPYING
index 41e54c46728c5ecda21d830984cd8e0b8383b3bc..c02b10910103ce11102d0df4caf1dbc8e6e0235f 100644 (file)
--- a/COPYING
+++ b/COPYING
@@ -245,8 +245,8 @@ Please be advised that as this library is covered under the GPLv3, if you
 choose to use the combined work, "CVC4+CLN," by building CVC4 with CLN,
 then it is also covered under the GPLv3.  If you want to make sure you build
 a version of CVC4 that uses no GPLed libraries, configure CVC4 with the
-"--bsd" option before building.  CVC4 can then be used in contexts where you
-want to license CVC4 under the (modified) BSD license.
+"--bsd" option before building (which is the default).  CVC4 can then be used
+in contexts where you want to license CVC4 under the (modified) BSD license.
 
 CVC4 can be optionally configured to link against GLPK, the GNU Linear
 Programming Kit, available here:
@@ -257,8 +257,8 @@ Please be advised that as this library is covered under the GPLv3, if
 you choose to use the combined work, "CVC4+GLPK," by building CVC4 with
 GLPK, then it is also covered under the GPLv3.  If you want to make sure you
 build a version of CVC4 that uses no GPLed libraries, configure CVC4 with the
-"--bsd" option before building.  CVC4 can then be used in contexts where you
-want to license CVC4 under the (modified) BSD license.
+"--bsd" option before building (which is the default).  CVC4 can then be used
+in contexts where you want to license CVC4 under the (modified) BSD license.
 
 CVC4 can be optionally configured to link against GNU Readline for improved
 text-editing support in interactive mode.  GNU Readline is available here:
@@ -269,5 +269,6 @@ Please be advised that as this library is covered under the GPLv3, if
 you choose to use the combined work, "CVC4+Readline," by building CVC4 with
 Readline, then it is also covered under the GPLv3.  If you want to make sure
 you build a version of CVC4 that uses no GPLed libraries, configure CVC4 with
-the "--bsd" option before building.  CVC4 can then be used in contexts where
-you want to license CVC4 under the (modified) BSD license.
+the "--bsd" option before building (which is the default).  CVC4 can then be
+used in contexts where you want to license CVC4 under the (modified) BSD
+license.
diff --git a/NEWS b/NEWS
index 695c91c7ee293a879dbe97a6cae1c597dd445b06..05234ebff87d9cddefdc0ffc32ca73a3d4f933af 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -6,11 +6,11 @@ Changes since 1.3
 * Timed statistics are now properly updated even on process abort.
 * By default, CVC4 builds in "production" mode (optimized, with fewer
   internal checks on).  The common alternative is a "debug" build, which
-  is much slower.  CVC4 also builds with GPL dependences by default now
-  (if those libraries are available), as this is the best-performing
-  version of CVC4.  However, the new configure option "--bsd" disables
-  these GPL dependences and builds the best-performing BSD-licenced version
-  of CVC4.
+  is much slower.  By default, CVC4 builds with no GPL'ed dependences.
+  However, this is not the best-performing version; for that, you should
+  configure with "--enable-gpl --best", which links against GPL'ed
+  libraries that improve usability and performance.  For details on
+  licensing and dependences, see the README file.
 * Better automatic handling of output language setting when using CVC4
   via API.  Previously, the "automatic" language setting was sometimes
   (though not always) defaulting to the internal "AST" language; it
index 4b8b2e3429d5ada5b426df3a59fe846bf3ac57f5..7c2f6c82d68cf4c77f4c56083eff3400cb033a91 100644 (file)
@@ -13,11 +13,37 @@ dnl _AS_ME_PREPARE
 AC_DEFUN([CVC4_REWRITE_ARGS_FOR_BUILD_PROFILE],
 [m4_divert_push([PARSE_ARGS])dnl
 
+CVC4_BSD_LICENSED_CODE_ONLY=1
+
+m4_divert_once([HELP_ENABLE], [[
+Licensing and performance options:
+  --bsd                   disable all GPL dependences (default)
+  --enable-gpl            permit GPL dependences, if available
+  --best                  turn on dependences known to give best performance]])dnl
+
 handle_option() {
   ac_option="$[]1"
   case $ac_option in
-    --bsd) ac_option='CVC4_BSD_LICENSED_CODE_ONLY=1' ;;
-    -*|*=*) ;;
+    --bsd|--disable-gpl|CVC4_BSD_LICENSED_CODE_ONLY=1)
+      if test "$CVC4_LICENSE_OPTION" = gpl; then AC_ERROR([cannot give both --bsd and --enable-gpl]); fi
+      CVC4_LICENSE_OPTION=bsd
+      ac_option="CVC4_BSD_LICENSED_CODE_ONLY=1"
+      eval $ac_option
+      ;;
+    --enable-gpl|--gpl|CVC4_BSD_LICENSED_CODE_ONLY=0)
+      if test "$CVC4_LICENSE_OPTION" = bsd; then AC_ERROR([cannot give both --bsd and --enable-gpl]); fi
+      CVC4_LICENSE_OPTION=gpl
+      ac_option="CVC4_BSD_LICENSED_CODE_ONLY=0"
+      eval $ac_option
+      ;;
+    --best)
+      # set the best configuration
+      handle_option --with-readline
+      handle_option --with-cln
+      return
+      ;;
+    -*|*=*)
+      ;;
     production|production-*|debug|debug-*|competition|competition-*)
       # regexp `\?' not supported on Mac OS X
       ac_option_build=`expr "$ac_option" : '\([[^-]]*\)-\{0,1\}'`
index c298f3db463703b190cd53f88ecee77d72de592d..e9ce921fbbe227cd49eee38ca8934bfa4abc2f4b 100644 (file)
@@ -9,8 +9,8 @@ readline_compentry_func_returns_charp=0
 READLINE_LIBS=
 if test "$with_readline" = no; then
   AC_MSG_RESULT([no, readline disabled by user])
-elif test "$with_readline" = check -a -n "$CVC4_BSD_LICENSED_CODE_ONLY"; then
-  AC_MSG_RESULT([no, user requested BSD-compatible dependences only])
+elif test "$with_readline" = check -a "$CVC4_BSD_LICENSED_CODE_ONLY" = 1; then
+  AC_MSG_RESULT([no, using BSD-compatible dependences only])
   with_readline=no
 else
   if test "$with_readline" = check; then
index 6e51951f479c88ae92919de3787de34691ae89f8..24ebf95f87e2f45940c13ce42d2d2dbd03b0667f 100644 (file)
@@ -284,7 +284,7 @@ fi
 AC_CHECK_LIB(gmp, __gmpz_init, , [AC_MSG_ERROR([GNU MP (libgmp) not found, see http://gmplib.org/])])
 
 if test $cvc4_use_cln = 2; then
-  if test -n "$CVC4_BSD_LICENSED_CODE_ONLY" -o "$with_portfolio" = yes; then
+  if test "$CVC4_BSD_LICENSED_CODE_ONLY" = 1 -o "$with_portfolio" = yes; then
     cvc4_use_cln=0
     cvc4_use_gmp=1
   fi
@@ -1350,8 +1350,9 @@ else
 fi
 
 if test "$gpl" = yes; then
-  if test -n "$CVC4_BSD_LICENSED_CODE_ONLY"; then
-    AC_ERROR([Bad configuration detected: user requested BSD-licensed code only, but also requested GPLed libraries:$gpllibs])
+  if test "$CVC4_BSD_LICENSED_CODE_ONLY" = 1; then
+    AC_ERROR([Bad configuration detected: BSD-licensed code only, but also requested GPLed libraries:$gpllibs
+To permit GPL'ed dependences, use the configure flag --enable-gpl])
   fi
 
   licensewarn="${licensewarn}"'****************************************************************************
@@ -1366,6 +1367,13 @@ option "--bsd", which will disable all optional GPLed library dependences.
 '
   license="GPLv3 (due to optional libraries; see below)"
 else
+  licensewarn="${licensewarn}Please note that this configuration is NOT built against any GPL'ed
+libraries, so it is covered by the (modified) BSD license.  This is,
+however, not the best-performing configuration of CVC4.  To build
+against GPL'ed libraries which improve CVC4's performance, re-configure
+with '--best --enable-gpl'.
+
+"
   license="modified BSD"
 fi