diff options
| -rw-r--r-- | configure.ac | 36 | ||||
| -rw-r--r-- | src/Makefile.am | 18 | ||||
| -rw-r--r-- | src/calculer.c | 4 | 
3 files changed, 49 insertions, 9 deletions
diff --git a/configure.ac b/configure.ac index 50df1af..0747857 100644 --- a/configure.ac +++ b/configure.ac @@ -4,10 +4,38 @@ AM_INIT_AUTOMAKE([-Wall -Werror, foreign])  AC_PROG_CC -if [ ! -d "./linenoise/" ] -then -  git clone --depth=1 'https://github.com/antirez/linenoise.git' -fi +AH_TEMPLATE([USE_READLINE], [do we use GNU Readline ?]) +AC_DEFUN([LINENOISE_URL], [https://github.com/antirez/linenoise.git]) + +AC_CHECK_LIB([readline], +  [readline], +  [AC_DEFINE([USE_READLINE], [1]) +  use_readline=true +  AC_ARG_WITH([readline], +    AS_HELP_STRING([--without-readline], +      [do not use GNU Readline, and use the Linenoise library +      available at LINENOISE_URL]), +    if test ! -d "./linenoise/" +    then +      git clone --depth=1 'LINENOISE_URL' +    fi +    AC_DEFINE([USE_READLINE], [0]) +    use_readline=false +  )], +  [AC_DEFINE([USE_READLINE], [0]) +  use_readline=true] +) + +AM_CONDITIONAL([USE_READLINE_COND], [test x$use_readline = xtrue]) + +AC_ARG_ENABLE([debug], +  [AS_HELP_STRING([--enable-debug], +    [enable debugging, only useful for development])], +  [debug=true], +  [debug=false] +) + +AM_CONDITIONAL([DEBUG_COND], [test x$debug = xtrue])  AC_CONFIG_FILES([    Makefile diff --git a/src/Makefile.am b/src/Makefile.am index 006ee7f..88d970c 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,7 +1,19 @@  bin_PROGRAMS = calculer -AM_CFLAGS = -Wall -Wextra -I../linenoise/ -calculer_SOURCES = calculer.c linenoise.c -BUILT_SOURCES: linenoise.c +AM_CFLAGS = -Wall -Wextra +AM_LDFLAGS = +calculer_SOURCES = calculer.c + +if DEBUG_COND +else +AM_CFLAGS += -DNDEBUG -Wno-unused-variable +endif +if USE_READLINE_COND +AM_LDFLAGS += -lreadline +else +calculer_SOURCES += linenoise.c +AM_CFLAGS += -I../linenoise/ +BUILT_SOURCES: linenoise.c  linenoise.c:  	cp ../linenoise/linenoise.c . +endif diff --git a/src/calculer.c b/src/calculer.c index 8d13052..be11895 100644 --- a/src/calculer.c +++ b/src/calculer.c @@ -25,7 +25,7 @@  #include <time.h>  #include <unistd.h> -#include "linenoise.h" +#include "_readline.h"  static int lower = 0;  static int upper = 100; @@ -169,7 +169,7 @@ main(int argc, char *argv[])  		sprintf(prompt, "%d + %d = ", x, y);  		void *measure_data = measure_before(); -		input = linenoise(prompt); +		input = readline(prompt);  		if ((!input) || (*input == '\0'))  		{  | 
