| 1 | AC_INIT([Haskell readline package], [1.0], [libraries@haskell.org], [readline]) |
|---|
| 2 | |
|---|
| 3 | |
|---|
| 4 | FP_ARG_READLINE |
|---|
| 5 | |
|---|
| 6 | if test "$enable_readline" = no; then |
|---|
| 7 | READLINE_BUILD_PACKAGE=no |
|---|
| 8 | BUILD_PACKAGE_BOOL=False |
|---|
| 9 | else |
|---|
| 10 | |
|---|
| 11 | # Safety check: Ensure that we are in the correct source directory. |
|---|
| 12 | AC_CONFIG_SRCDIR([include/HsReadline.h]) |
|---|
| 13 | |
|---|
| 14 | AC_CONFIG_HEADERS([include/HsReadlineConfig.h]) |
|---|
| 15 | |
|---|
| 16 | READLINE_INCLUDE_DIRS= |
|---|
| 17 | READLINE_LIB_DIRS= |
|---|
| 18 | if test "x$readline_libraries" != "xNONE"; then |
|---|
| 19 | LDFLAGS="-L$readline_libraries $LDFLAGS" |
|---|
| 20 | READLINE_LDFLAGS="-L$readline_libraries $READLINE_LDFLAGS" |
|---|
| 21 | READLINE_LIB_DIRS=$readline_libraries |
|---|
| 22 | fi |
|---|
| 23 | if test "x$readline_includes" != "xNONE"; then |
|---|
| 24 | CPPFLAGS="-I$readline_includes $CPPFLAGS" |
|---|
| 25 | READLINE_CFLAGS="-I$readline_includes $READLINE_CFLAGS" |
|---|
| 26 | READLINE_INCLUDE_DIRS=$readline_includes |
|---|
| 27 | fi |
|---|
| 28 | AC_SUBST(READLINE_INCLUDE_DIRS) |
|---|
| 29 | AC_SUBST(READLINE_LIB_DIRS) |
|---|
| 30 | |
|---|
| 31 | AC_ARG_WITH([cc], |
|---|
| 32 | [C compiler], |
|---|
| 33 | [CC=$withval]) |
|---|
| 34 | AC_PROG_CC() |
|---|
| 35 | |
|---|
| 36 | # Mac OS X only: check for GNUreadline.framework (should be harmless on other systems) |
|---|
| 37 | # If it's found, we'll prefer it over linking via "-lreadline". |
|---|
| 38 | |
|---|
| 39 | if test "x$readline_libraries" = "xNONE" && test "x$readline_includes" = "xNONE" ; then |
|---|
| 40 | AC_MSG_CHECKING([for GNUreadline.framework]) |
|---|
| 41 | save_libs="$LIBS" |
|---|
| 42 | LIBS="-F$HOME/Library/Frameworks -framework GNUreadline" |
|---|
| 43 | AC_CHECK_FUNC(readline, HaveFrameworkReadline=YES, HaveFrameworkReadline=NO) |
|---|
| 44 | LIBS="$save_libs" |
|---|
| 45 | fi |
|---|
| 46 | |
|---|
| 47 | if test "x$HaveFrameworkReadline" = xYES ; then |
|---|
| 48 | LIBS="-F$HOME/Library/Frameworks -framework GNUreadline $LIBS" |
|---|
| 49 | READLINE_FRAMEWORKS="GNUreadline" |
|---|
| 50 | READLINE_CFLAGS="-I$HOME/Library/Frameworks/GNUreadline.framework/Headers $READLINE_CFLAGS" |
|---|
| 51 | READLINE_LDFLAGS="-F$HOME/Library/Frameworks" |
|---|
| 52 | AC_DEFINE([HAVE_FRAMEWORK_READLINE], [1], [Define to 1 if we're using GNUreadline.framework.]) |
|---|
| 53 | else |
|---|
| 54 | dnl ** check for readline, for Hugs and hslibs' Readline |
|---|
| 55 | dnl ncurses supersedes termcap and curses, but for compatibility, |
|---|
| 56 | dnl we have to check for all... |
|---|
| 57 | AC_CHECK_LIB(ncurses, tputs, HaveLibTermcap=YES; LibTermcap=ncurses, |
|---|
| 58 | AC_CHECK_LIB(termcap, tputs, HaveLibTermcap=YES; LibTermcap=termcap, |
|---|
| 59 | AC_CHECK_LIB(curses, tputs, HaveLibTermcap=YES; LibTermcap=curses, |
|---|
| 60 | HaveLibTermcap=NO; LibTermcap=not-installed))) |
|---|
| 61 | |
|---|
| 62 | if test $HaveLibTermcap = YES ; then |
|---|
| 63 | LIBS="-l$LibTermcap $LIBS" |
|---|
| 64 | AC_CHECK_LIB(readline, readline, HaveLibReadline=YES) |
|---|
| 65 | READLINE_LIBS="readline $LibTermcap" |
|---|
| 66 | LIBS="$LIBS -lreadline" |
|---|
| 67 | fi |
|---|
| 68 | fi |
|---|
| 69 | |
|---|
| 70 | dnl ** At this point, $LIB should be completely set, so we can use AC_CHECK_FUNC from now on. |
|---|
| 71 | |
|---|
| 72 | dnl ** is our readline really readline, or is it BSD's libedit? |
|---|
| 73 | AC_CHECK_FUNC(rl_readline_version, ReadlineIsLibedit=NO, ReadlineIsLibedit=YES) |
|---|
| 74 | |
|---|
| 75 | if (test "x$HaveLibReadline" = xYES || test "x$HaveFrameworkReadline" = xYES) && test "x$ReadlineIsLibedit" = xNO ; then |
|---|
| 76 | HAVE_READLINE=YES |
|---|
| 77 | else |
|---|
| 78 | AC_MSG_FAILURE([readline not found, so this package cannot be built]) |
|---|
| 79 | HAVE_READLINE=NO |
|---|
| 80 | fi |
|---|
| 81 | |
|---|
| 82 | if test "x$HAVE_READLINE" = xYES ; then |
|---|
| 83 | AC_CHECK_FUNC(rl_erase_empty_line, |
|---|
| 84 | [AC_DEFINE([HAVE_READLINE_4], [1], [Define to 1 if readline has version >= 4.0.])], |
|---|
| 85 | [AC_DEFINE([HAVE_READLINE_4], [0], [Define to 1 if readline has version >= 4.0.])]) |
|---|
| 86 | AC_CHECK_FUNC(rl_free_undo_list, |
|---|
| 87 | [AC_DEFINE([HAVE_READLINE_4_2], [1], [Define to 1 if readline has version >= 4.2.])], |
|---|
| 88 | [AC_DEFINE([HAVE_READLINE_4_2], [0], [Define to 1 if readline has version >= 4.2.])]) |
|---|
| 89 | else |
|---|
| 90 | AC_DEFINE([HAVE_READLINE_4], [0], [Define to 1 if readline has version >= 4.0.]) |
|---|
| 91 | AC_DEFINE([HAVE_READLINE_4_2], [0], [Define to 1 if readline has version >= 4.2.]) |
|---|
| 92 | fi |
|---|
| 93 | |
|---|
| 94 | if test "x$HAVE_READLINE" = xYES; then |
|---|
| 95 | READLINE_BUILD_PACKAGE=yes |
|---|
| 96 | BUILD_PACKAGE_BOOL=True |
|---|
| 97 | else |
|---|
| 98 | READLINE_BUILD_PACKAGE=no |
|---|
| 99 | BUILD_PACKAGE_BOOL=False |
|---|
| 100 | fi |
|---|
| 101 | |
|---|
| 102 | fi |
|---|
| 103 | |
|---|
| 104 | AC_SUBST([READLINE_BUILD_PACKAGE]) |
|---|
| 105 | AC_SUBST([BUILD_PACKAGE_BOOL]) |
|---|
| 106 | AC_SUBST([READLINE_CFLAGS]) |
|---|
| 107 | AC_SUBST([READLINE_LDFLAGS]) |
|---|
| 108 | AC_SUBST([READLINE_LIBS]) |
|---|
| 109 | AC_SUBST([READLINE_FRAMEWORKS]) |
|---|
| 110 | |
|---|
| 111 | AC_CONFIG_FILES([config.mk readline.buildinfo]) |
|---|
| 112 | AC_OUTPUT |
|---|