From 312918e68d4410359b55258dc2b9e9cdfb21f211 Mon Sep 17 00:00:00 2001 From: Morgan Deters Date: Wed, 8 Jan 2014 15:27:26 -0500 Subject: [PATCH] Switch license default back to BSD, and add --best and --enable-gpl options. --- COPYING | 13 +++++++------ NEWS | 10 +++++----- config/cvc4.m4 | 30 ++++++++++++++++++++++++++++-- config/readline.m4 | 4 ++-- configure.ac | 14 +++++++++++--- 5 files changed, 53 insertions(+), 18 deletions(-) diff --git a/COPYING b/COPYING index 41e54c467..c02b10910 100644 --- 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 695c91c7e..05234ebff 100644 --- 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 diff --git a/config/cvc4.m4 b/config/cvc4.m4 index 4b8b2e342..7c2f6c82d 100644 --- a/config/cvc4.m4 +++ b/config/cvc4.m4 @@ -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\}'` diff --git a/config/readline.m4 b/config/readline.m4 index c298f3db4..e9ce921fb 100644 --- a/config/readline.m4 +++ b/config/readline.m4 @@ -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 diff --git a/configure.ac b/configure.ac index 6e51951f4..24ebf95f8 100644 --- a/configure.ac +++ b/configure.ac @@ -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 -- 2.30.2