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