Ticket #1395: configure.ac

File configure.ac, 3.9 KB (added by guest, 6 years ago)
Line 
1AC_INIT([Haskell readline package], [1.0], [libraries@haskell.org], [readline])
2
3
4FP_ARG_READLINE
5
6if test "$enable_readline" = no; then
7  READLINE_BUILD_PACKAGE=no
8  BUILD_PACKAGE_BOOL=False
9else
10
11# Safety check: Ensure that we are in the correct source directory.
12AC_CONFIG_SRCDIR([include/HsReadline.h])
13 
14AC_CONFIG_HEADERS([include/HsReadlineConfig.h])
15
16READLINE_INCLUDE_DIRS=
17READLINE_LIB_DIRS=
18if 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
22fi
23if 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
27fi
28AC_SUBST(READLINE_INCLUDE_DIRS)
29AC_SUBST(READLINE_LIB_DIRS)
30
31AC_ARG_WITH([cc],
32            [C compiler],
33            [CC=$withval])
34AC_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
39if 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"
45fi
46
47if 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.])
53else
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
68fi
69
70dnl ** At this point, $LIB should be completely set, so we can use AC_CHECK_FUNC from now on.
71
72dnl ** is our readline really readline, or is it BSD's libedit?
73AC_CHECK_FUNC(rl_readline_version, ReadlineIsLibedit=NO, ReadlineIsLibedit=YES)
74
75if (test "x$HaveLibReadline" = xYES || test "x$HaveFrameworkReadline" = xYES) && test "x$ReadlineIsLibedit" = xNO  ; then
76  HAVE_READLINE=YES
77else
78  AC_MSG_FAILURE([readline not found, so this package cannot be built])
79  HAVE_READLINE=NO
80fi
81
82if 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.])])
89else
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.])
92fi
93
94if test "x$HAVE_READLINE" = xYES; then
95  READLINE_BUILD_PACKAGE=yes
96  BUILD_PACKAGE_BOOL=True
97else
98  READLINE_BUILD_PACKAGE=no
99  BUILD_PACKAGE_BOOL=False
100fi
101
102fi
103
104AC_SUBST([READLINE_BUILD_PACKAGE])
105AC_SUBST([BUILD_PACKAGE_BOOL])
106AC_SUBST([READLINE_CFLAGS])
107AC_SUBST([READLINE_LDFLAGS])
108AC_SUBST([READLINE_LIBS])
109AC_SUBST([READLINE_FRAMEWORKS])
110
111AC_CONFIG_FILES([config.mk readline.buildinfo])
112AC_OUTPUT