efa5e23e0c469ea58ada2f4e6da5152086895f61
[asterisk/asterisk.git] / editline / configure.in
1 dnl 
2 dnl Process this file with autoconf to produce a configure script.
3 dnl 
4 AC_INIT(Makefile.in)
5
6 dnl If CFLAGS isn't defined and using gcc, set CFLAGS to something reasonable.
7 dnl Otherwise, just prevent autoconf from molesting CFLAGS.
8 CFLAGS=$CFLAGS
9 AC_PROG_CC
10 if test "x$CFLAGS" = "x" ; then
11   no_CFLAGS="yes"
12 fi
13 if test "x$no_CFLAGS" = "xyes" -a "x$GCC" = "xyes" ; then
14         CFLAGS="-Wall -pipe -g3"
15 fi
16 A_CFLAGS=""
17 AC_SUBST(A_CFLAGS)
18 S_CFLAGS="-fPIC -DPIC"
19 AC_SUBST(S_CFLAGS)
20 AC_PROG_CPP
21
22 dnl Platform-specific settings.  The ABI can probably be determined
23 dnl programmatically, but doing so is error-prone, which makes it generally
24 dnl not worth the trouble.
25 AC_CANONICAL_HOST
26 case "${host}" in
27   *-*-darwin*)
28         CFLAGS="$CFLAGS -fno-common -no-cpp-precomp"
29         ABI="macho"
30         ;;
31   *-*-freebsd*)
32         ABI="elf"
33         ;;
34   *-*-linux*)
35         ABI="elf"
36         ;;
37   *-*-netbsd*)
38         AC_MSG_CHECKING(ABI)
39         AC_EGREP_CPP(yes,
40 [#ifdef __ELF__
41   yes
42 #endif
43 ],
44                      ABI="elf",
45                      ABI="aout")
46         AC_MSG_RESULT($ABI)
47         ;;
48   *-*-solaris2*)
49         ABI="elf"
50         AC_DEFINE(SUNOS)
51         ;;
52   *)
53         AC_MSG_RESULT(Unsupported operating system: ${host})
54         ABI="elf"
55         ;;
56 esac
57
58 AC_PROG_INSTALL
59 AC_PROG_RANLIB
60 AC_PATH_PROG(AR, ar, , $PATH)
61
62 dnl Search for termcap access routines in termcap, tinfo, curses, and ncurses.
63 AC_CHECK_LIB(termcap, tgetent, , \
64   AC_CHECK_LIB(tinfo, tgetent, , \
65     AC_CHECK_LIB(curses, tgetent, , \
66       AC_CHECK_LIB(ncurses, tgetent, , \
67         AC_MSG_ERROR(termcap support not found)))))
68
69 dnl Use termcap.h if it exists; otherwise we need both term.h and [n]curses.h.
70 AC_CHECK_HEADERS(termcap.h, , \
71   AC_CHECK_HEADERS(term.h, , \
72     AC_MSG_RESULT(Need term.h since termcap.h is missing))
73   AC_CHECK_HEADERS(curses.h, , \
74     AC_CHECK_HEADERS(ncurses.h, , \
75       AC_MSG_RESULT(Need curses.h or ncurses.h))))
76
77 AC_CHECK_HEADERS(sys/cdefs.h vis.h)
78
79 AC_EGREP_CPP(yes,
80 [#include <sys/cdefs.h>
81 #ifdef __RCSID
82   yes
83 #endif
84 ], , [CPPFLAGS="$CPPFLAGS '-D__RCSID(x)='"])
85
86 AC_EGREP_CPP(yes,
87 [#include <sys/cdefs.h>
88 #ifdef __COPYRIGHT
89   yes
90 #endif
91 ], , [CPPFLAGS="$CPPFLAGS '-D__COPYRIGHT(x)='"])
92
93 AC_EGREP_CPP(yes,
94 [#include <sys/cdefs.h>
95 #ifdef __RENAME
96   yes
97 #endif
98 ], , [CPPFLAGS="$CPPFLAGS '-D__RENAME(x)='"])
99
100 AC_EGREP_CPP(yes,
101 [#include <sys/cdefs.h>
102 #ifdef _DIAGASSERT
103   yes
104 #endif
105 ], , [CPPFLAGS="$CPPFLAGS '-D_DIAGASSERT(x)='"])
106
107 AC_CHECK_FUNCS(issetugid)
108 AC_CHECK_FUNCS(strlcat, , CCSRCS="$CCSRCS np/strlcat.c")
109 AC_CHECK_FUNCS(strlcpy, , CCSRCS="$CCSRCS np/strlcpy.c")
110 AC_CHECK_FUNCS(fgetln, , CCSRCS="$CCSRCS np/fgetln.c")
111 AC_CHECK_FUNCS(strvis, , CCSRCS="$CCSRCS np/vis.c")
112 AC_CHECK_FUNCS(strunvis, , CCSRCS="$CCSRCS np/unvis.c")
113
114 dnl Enable readline compatibility by default.
115 AC_ARG_ENABLE(readline, [  --disable-readline      Disable readline compatibility],
116 if test "x$enable_readline" != "xyes" ; then
117   enable_readline="no"
118 fi
119 ,
120 enable_readline="yes"
121 )
122
123 dnl Optionally enable debugging.
124 AC_ARG_ENABLE(debug, [  --enable-debug          Enable debugging code],
125 if test "x$enable_debug" != "xyes" ; then
126   enable_debug="no"
127 fi
128 ,
129 enable_debug="no"
130 )
131 if test "x$enable_debug" = "xyes" ; then
132   CPPFLAGS="$CPPFLAGS -DDEBUG_TTY -DDEBUG_KEY -DDEBUG_READ -DDEBUG"
133   CPPFLAGS="$CPPFLAGS -DDEBUG_REFRESH -DDEBUG_PASTE"
134 else
135   CFLAGS="$CFLAGS -O"
136 fi
137
138
139 dnl 
140 dnl File lists.  This is done here instead of in the Makefile in order to avoid
141 dnl the need for conditionals.
142 dnl 
143
144 dnl .c files.
145 ACSRCS="common.c emacs.c vi.c"
146 BCSRCS="chared.c el.c hist.c key.c map.c parse.c prompt.c read.c refresh.c search.c sig.c term.c tty.c"
147 CCSRCS="$CCSRCS history.c tokenizer.c"
148
149 dnl Generated .c files.
150 AGCSRCS="fcns.c help.c"
151 BGCSRCS="editline.c"
152
153 dnl .h files.
154 HDRS="chared.h el.h hist.h key.h map.h parse.h prompt.h refresh.h search.h sig.h sys.h term.h tokenizer.h tty.h"
155
156 dnl Installed .h files.
157 IHDRS="histedit.h"
158
159 dnl Installed headers for readline compatibility.
160 IHDR_LINKS=
161
162 dnl Generated .h files.
163 AGHDRS="common.h emacs.h vi.h"
164 BGHDRS="fcns.h help.h"
165
166 dnl Header installation directories.
167 HDR_DIRS="include"
168
169 dnl Man pages.
170 MAN3="editline.3"
171 MAN5="editrc.5"
172
173 MAN3_LINKS=
174 for i in  el_init.3 el_end.3 el_reset.3 el_gets.3 el_getc.3 el_push.3 \
175           el_parse.3 el_set.3 el_get.3 el_source.3 el_resize.3 el_line.3 \
176           el_insertstr.3 el_deletestr.3 history_init.3 history_end.3 \
177           history.3 ; do
178   MAN3_LINKS="$MAN3_LINKS editline.3 $i"
179 done
180
181 dnl Man page installation directories.
182 MAN_DIRS="man/man3 man/man5"
183
184 dnl Library settings.
185 LIB_DIRS="lib"
186 LIB_MAJOR="2"
187 LIB_MINOR="6"
188 LIB_A="libedit.a"
189 LIB_A_LINKS=
190
191 if test "x$ABI" = "xelf" ; then
192   LIB_S="libedit.so.$LIB_MAJOR"
193   LIB_S_LINK="libedit.so"
194   LIB_S_LINKS="$LIB_S $LIB_S_LINK"
195   S_LDFLAGS="-shared"
196 elif test "x$ABI" = "xaout" ; then
197   LIB_S="libedit.so.$LIB_MAJOR.$LIB_MINOR"
198   LIB_S_LINKS=
199   S_LDFLAGS="-shared"
200 elif test "x$ABI" = "xmacho" ; then
201   S_LDFLAGS="-shared"
202   LIB_S="libedit.$LIB_MAJOR.dylib"
203   LIB_S_LINK="libedit.dylib"
204   LIB_S_LINKS="$LIB_S $LIB_S_LINK"
205   if test "x$prefix" = "xNONE" ; then
206     S_LDFLAGS="-undefined suppress -flat_namespace -dynamiclib -compatibility_version $LIB_MAJOR -current_version $LIB_MAJOR -install_name /usr/local/lib/$LIB_S"
207   else
208     S_LDFLAGS="-undefined suppress -flat_namespace -dynamiclib -compatibility_version $LIB_MAJOR -current_version $LIB_MAJOR -install_name $prefix/lib/$LIB_S"
209   fi
210 fi
211
212 dnl Test program.
213 TEST="TEST/test"
214 TCSRCS="TEST/test.c"
215
216 dnl Add files to the lists if readline compatibility is enabled.
217 if test "x$enable_readline" = "xyes" ; then
218   CCSRCS="$CCSRCS readline.c"
219   IHDRS="$IHDRS readline/readline.h"
220   IHDR_LINKS="readline.h readline/history.h"
221   HDR_DIRS="$HDR_DIRS include/readline"
222   LIB_A_LINKS="$LIB_A_LINKS libedit.a libreadline.a"
223   if test "x$ABI" = "xelf" ; then
224     LIB_S_LINKS="$LIB_S_LINKS $LIB_S_LINK libreadline.so"
225   elif test "x$ABI" = "xaout" ; then
226     LIB_S_LINKS="$LIB_S_LINKS $LIB_S libreadline.so.$LIB_MAJOR.$LIB_MINOR"
227   elif test "x$ABI" = "xmacho" ; then
228     LIB_S_LINKS="$LIB_S_LINKS $LIB_S_LINK libreadline.dylib"
229   fi
230 fi
231
232 AC_SUBST(ACSRCS)
233 AC_SUBST(BCSRCS)
234 AC_SUBST(CCSRCS)
235 AC_SUBST(AGCSRCS)
236 AC_SUBST(BGCSRCS)
237 AC_SUBST(HDRS)
238 AC_SUBST(IHDRS)
239 AC_SUBST(IHDR_LINKS)
240 AC_SUBST(AGHDRS)
241 AC_SUBST(BGHDRS)
242 AC_SUBST(HDR_DIRS)
243 AC_SUBST(MAN3)
244 AC_SUBST(MAN5)
245 AC_SUBST(MAN3_LINKS)
246 AC_SUBST(MAN_DIRS)
247 AC_SUBST(LIB_DIRS)
248 AC_SUBST(LIB_VER)
249 AC_SUBST(LIB_A)
250 AC_SUBST(LIB_A_LINKS)
251 AC_SUBST(LIB_S)
252 AC_SUBST(LIB_S_LINKS)
253 AC_SUBST(S_LDFLAGS)
254 AC_SUBST(TEST)
255 AC_SUBST(TCSRCS)
256
257 AC_CONFIG_HEADER(config.h)
258 AC_OUTPUT(Makefile)