diff --git a/configure.ac b/configure.ac index fca87d833..751badeda 100644 --- a/configure.ac +++ b/configure.ac @@ -4,9 +4,18 @@ AC_PREREQ(2.61) AC_INIT(task, 1.9.0.beta2, support@taskwarrior.org) + +# Source type. +AC_PROG_CXX +AC_PROG_CC +AC_LANG(C++) + + +# Local copies for modification and later AC_SUBST. CFLAGS="${CFLAGS=}" CXXFLAGS="${CXXFLAGS=}" + # this macro is used to get the arguments supplied # to the configure script (./configure --enable-debug) # Check if we have enable debug support. @@ -14,15 +23,18 @@ AC_MSG_CHECKING(whether to enable debugging) debug_default="no" AC_ARG_ENABLE(debug, [ --enable-debug=[no/yes] turn on debugging [default=$debug_default]],, enable_debug=$debug_default) -# Yes, shell scripts can be used -if test "$enable_debug" = "yes"; then - CXXFLAGS="$CFLAGS -Wall -pedantic -ggdb3 -DDEBUG" + +if test "x$enable_debug" = "xyes"; then + CFLAGS="$CFLAGS -Wall -pedantic -ggdb3 -DDEBUG" + CXXFLAGS="$CXXFLAGS -Wall -pedantic -ggdb3 -DDEBUG" AC_MSG_RESULT(yes) else - CXXFLAGS="$CFLAGS -Wall -pedantic -O3" + CFLAGS="$CFLAGS -Wall -pedantic -O3" + CXXFLAGS="$CXXFLAGS -Wall -pedantic -O3" AC_MSG_RESULT(no) fi + # Check for OS. OS=`uname|sed -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'|cut -c 1-5` if test "$OS" = "sunos"; then @@ -51,55 +63,118 @@ else AC_DEFINE([UNKNOWN], [], [Compiling on Unknown]) fi -# Check for Lua. -AC_ARG_ENABLE([lua], AS_HELP_STRING([--enable-lua], [Disable feature lua])) -AC_ARG_WITH(lua-inc, [--with-lua-inc=DIR, Lua include files are in DIR],lua_inc=$withval,lua_inc='') -AC_ARG_WITH(lua-lib, [--with-lua-lib=DIR, Lua library files are in DIR],lua_lib=$withval,lua_lib='') -if test "x$enable_lua" = "xyes" ; then - ac_save_CPPFLAGS="$CPPFLAGS" - ac_save_CFLAGS="$CFLAGS" - ac_save_LDFLAGS="$LDFLAGS" +# ncurses enabled by default. +AC_ARG_WITH([ncurses], + [AS_HELP_STRING([--without-ncurses], [disable support for ncurses])], + [with_ncurses=no], + [with_ncurses=yes]) - LUA_CFLAGS="" - LUA_LFLAGS="" +AC_ARG_WITH([ncurses-inc], + [AS_HELP_STRING ([--with-ncurses-inc=DIR], [ncurses include files are in DIR])], + [ncurses_inc=$withval], + [ncurses_inc='']) - if test -n "$lua_inc"; then - CFLAGS="$CFLAGS -I$lua_inc" - CPPFLAGS="$CPPFLAGS -I$lua_inc" - fi - if test -n "$lua_lib"; then - LDFLAGS="$LDFLAGS -L$lua_lib" - LUA_LFLAGS="-llua" - fi +AC_ARG_WITH([ncurses-lib], + [AS_HELP_STRING ([--with-ncurses-lib=DIR], [ncurses lib files are in DIR])], + [ncurses_lib=$withval], + [ncurses_lib='']) + +if test "x$with_ncurses" == "xyes" ; then + AC_DEFINE([HAVE_LIBNCURSES], [1], [Defined if you have libncurses]) + if test -n "$ncurses_inc"; then + CFLAGS="$CFLAGS -I$ncurses_inc" + CXXFLAGS="$CXXFLAGS -I$ncurses_inc" + fi + + if test -n "$ncurses_lib"; then + LDFLAGS="$LDFLAGS -L$ncurses_lib" + fi + + AC_CHECK_LIB([ncurses],[main]) fi -if test "x$enable_lua" = "xyes" ; then - AC_SUBST(LUA_CFLAGS) - AC_SUBST(LUA_LFLAGS) - AC_DEFINE([HAVE_LIBLUA], [1], [Building with Lua support]) + +# Readline enabled by default. +#AC_ARG_WITH([readline], +# [AS_HELP_STRING([--without-readline], [disable support for readline])], +# [with_readline=no], +# [with_readline=yes]) +# +#AC_ARG_WITH([readline-inc], +# [AS_HELP_STRING ([--with-readline-inc=DIR], [readline include files are in DIR])], +# [readline_inc=$withval], +# [readline_inc='']) +# +#AC_ARG_WITH([readline-lib], +# [AS_HELP_STRING ([--with-readline-lib=DIR], [readline lib files are in DIR])], +# [readline_lib=$withval], +# [readline_lib='']) +# +#if test "x$with_readline" == "xyes" ; then +# AC_DEFINE([HAVE_LIBREADLINE], [1], [Defined if you have libreadline]) +# if test -n "$readline_inc"; then +# CFLAGS="$CFLAGS -I$readline_inc" +# CXXFLAGS="$CXXFLAGS -I$readline_inc" +# fi +# +# if test -n "$readline_lib"; then +# LDFLAGS="$LDFLAGS -L$readline_lib" +# fi +# +# AC_CHECK_LIB([readline],[main]) +#fi + + +# Lua disabled by default. +AC_ARG_WITH([lua], + [AS_HELP_STRING([--with-lua], [enable support for lua])], + [with_lua=yes], + [with_lua=no]) + +AC_ARG_WITH([lua-inc], + [AS_HELP_STRING ([--with-lua-inc=DIR], [lua include files are in DIR])], + [lua_inc=$withval], + [lua_inc='']) + +AC_ARG_WITH([lua-lib], + [AS_HELP_STRING ([--with-lua-lib=DIR], [lua lib files are in DIR])], + [lua_lib=$withval], + [lua_lib='']) + +if test "x$with_lua" == "xyes" ; then + AC_DEFINE([HAVE_LIBLUA], [1], [Defined if you have liblua]) + if test -n "$lua_inc"; then + CFLAGS="$CFLAGS -I$lua_inc" + CXXFLAGS="$CXXFLAGS -I$lua_inc" + fi + + if test -n "$lua_lib"; then + LDFLAGS="$LDFLAGS -L$lua_lib" + fi + + AC_CHECK_LIB([lua],[main]) fi + +# Allow the changes above to take effect. +AC_SUBST(CFLAGS) +AC_SUBST(CXXFLAGS) +AC_SUBST(LDFLAGS) + + +# Now the smaller details. AM_INIT_AUTOMAKE AC_CONFIG_SRCDIR([src/main.cpp]) AC_CONFIG_HEADER([auto.h]) -# Checks for programs. -AC_PROG_CXX -AC_PROG_CC -AC_LANG(C++) - -AC_SUBST(CFLAGS) - -# Checks for libraries. -AC_CHECK_LIB(ncurses,initscr) -AC_CHECK_LIB(lua,lua_open) # Checks for header files. AC_HEADER_STDC AC_CHECK_HEADERS([stdlib.h sys/file.h sys/stat.h sys/time.h unistd.h]) AC_CHECK_HEADERS([sstream string vector map]) + # Checks for typedefs, structures, and compiler characteristics. AC_HEADER_STDBOOL AC_C_CONST @@ -108,15 +183,19 @@ AC_TYPE_SIZE_T AC_HEADER_TIME AC_STRUCT_TM + # Checks for library functions. AC_FUNC_MKTIME AC_FUNC_SELECT_ARGTYPES AC_CHECK_FUNCS([select]) -#AC_CHECK_FUNC(flock, [AC_DEFINE([HAVE_FLOCK], [1], [Found flock])]) AC_CHECK_FUNC(uuid_unparse_lower, [AC_DEFINE([HAVE_UUID], [1], [Found uuid_unparse_lower])]) AC_CHECK_FUNC(random, [AC_DEFINE([HAVE_RANDOM], [1], [Found random])]) AC_CHECK_FUNC(srandom, [AC_DEFINE([HAVE_SRANDOM], [1], [Found srandom])]) + +# Generate the Makefiles. AC_CONFIG_FILES([Makefile src/Makefile]) AC_OUTPUT +# End. +