ncurses 5.6 - patch 20070113
[ncurses.git] / test / configure.in
1 dnl***************************************************************************
2 dnl Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
3 dnl                                                                          *
4 dnl Permission is hereby granted, free of charge, to any person obtaining a  *
5 dnl copy of this software and associated documentation files (the            *
6 dnl "Software"), to deal in the Software without restriction, including      *
7 dnl without limitation the rights to use, copy, modify, merge, publish,      *
8 dnl distribute, distribute with modifications, sublicense, and/or sell       *
9 dnl copies of the Software, and to permit persons to whom the Software is    *
10 dnl furnished to do so, subject to the following conditions:                 *
11 dnl                                                                          *
12 dnl The above copyright notice and this permission notice shall be included  *
13 dnl in all copies or substantial portions of the Software.                   *
14 dnl                                                                          *
15 dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
16 dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
17 dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
18 dnl IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
19 dnl DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
20 dnl OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
21 dnl THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
22 dnl                                                                          *
23 dnl Except as contained in this notice, the name(s) of the above copyright   *
24 dnl holders shall not be used in advertising or otherwise to promote the     *
25 dnl sale, use or other dealings in this Software without prior written       *
26 dnl authorization.                                                           *
27 dnl***************************************************************************
28 dnl
29 dnl Author: Thomas E. Dickey 1996, etc.
30 dnl
31 dnl $Id: configure.in,v 1.60 2007/01/13 22:59:00 tom Exp $
32 dnl This is a simple configuration-script for the ncurses test programs that
33 dnl allows the test-directory to be separately configured against a reference
34 dnl system (i.e., sysvr4 curses)
35 dnl
36 dnl If you're configuring ncurses, you shouldn't need to use this script.
37 dnl It's only for testing purposes.
38 dnl
39 dnl See http://invisible-island.net/autoconf/ for additional information.
40 dnl ---------------------------------------------------------------------------
41 AC_PREREQ(2.13.20020210)
42 AC_INIT(ncurses.c)
43 AC_CONFIG_HEADER(ncurses_cfg.h:ncurses_tst.hin)
44
45 CF_INHERIT_SCRIPT(config.guess)
46 CF_INHERIT_SCRIPT(config.sub)
47 CF_CHECK_CACHE
48
49 AC_PROG_MAKE_SET
50 AC_PROG_CC
51 AC_PROG_CPP
52 AC_PROG_AWK
53
54 dnl Things that we don't need (or must override) if we're not building ncurses
55 CC_G_OPT="-g"                           AC_SUBST(CC_G_OPT)
56 CC_SHARED_OPTS=unknown                  AC_SUBST(CC_SHARED_OPTS)
57 CPPFLAGS="$CPPFLAGS"                    AC_SUBST(CPPFLAGS)
58 DFT_DEP_SUFFIX=""                       AC_SUBST(DFT_DEP_SUFFIX)
59 DFT_OBJ_SUBDIR=`pwd|sed -e's:.*/::'`    AC_SUBST(DFT_OBJ_SUBDIR)
60 DFT_UPR_MODEL="NORMAL"                  AC_SUBST(DFT_UPR_MODEL)
61 ECHO_LINK='@ echo linking $@ ... ;'     AC_SUBST(ECHO_LINK)
62 LD="ld"                                 AC_SUBST(LD)
63 LDFLAGS_SHARED=""                       AC_SUBST(LDFLAGS_SHARED)
64 LD_MODEL=""                             AC_SUBST(LD_MODEL)
65 LD_SHARED_OPTS=""                       AC_SUBST(LD_SHARED_OPTS)
66 LIBTOOL=""                              AC_SUBST(LIBTOOL)
67 LIB_CLEAN=""                            AC_SUBST(LIB_CLEAN)
68 LIB_COMPILE=""                          AC_SUBST(LIB_COMPILE)
69 LIB_LINK=""                             AC_SUBST(LIB_LINK)
70 LINK_TESTS=""                           AC_SUBST(LINK_TESTS)
71 LINT=lint                               AC_SUBST(LINT)
72 LINT_OPTS=""                            AC_SUBST(LINT_OPTS)
73 LOCAL_LDFLAGS=""                        AC_SUBST(LOCAL_LDFLAGS)
74 MATH_LIB="-lm"                          AC_SUBST(MATH_LIB)
75 TEST_ARGS=""                            AC_SUBST(TEST_ARGS)
76 TEST_DEPS=""                            AC_SUBST(TEST_DEPS)
77 TICS_LEAKS=""                           AC_SUBST(TICS_LEAKS)
78 TINFO_ARGS='$(LIBS_CURSES)'             AC_SUBST(TINFO_ARGS)
79 cf_cv_abi_version=""                    AC_SUBST(cf_cv_abi_version)
80 cf_cv_rel_version=""                    AC_SUBST(cf_cv_rel_version)
81
82 cf_cv_screen=curses
83 cf_cv_libtype=
84
85 AC_EXEEXT
86 AC_OBJEXT
87
88 CF_ANSI_CC_REQD
89 CF_ENABLE_WARNINGS
90 CF_GCC_ATTRIBUTES
91 CF_XOPEN_SOURCE
92
93 CF_WITH_CURSES_DIR
94
95 dnl SunOS 4.x
96 AC_ARG_WITH(5lib,
97         [  --with-5lib             use SunOS sysv-libraries],
98         [LIBS="-L/usr/5lib $LIBS"
99          CPPFLAGS="$CPPFLAGS -I/usr/5include"])
100
101 dnl ---------------------------------------------------------------------------
102 dnl NcursesW, installed in conventional location
103 AC_ARG_WITH(ncursesw,
104         [  --with-ncursesw         use wide ncurses-libraries (installed)],
105         [cf_cv_screen=ncursesw],[
106
107 dnl Ncurses, installed in conventional location
108 AC_ARG_WITH(ncurses,
109         [  --with-ncurses          use ncurses-libraries (installed)],
110         [cf_cv_screen=ncurses],[
111
112 AC_ARG_WITH(pdcurses,
113         [  --with-pdcurses         compile/link with pdcurses X11 library],
114         [cf_cv_screen=pdcurses])])])
115
116 case $cf_cv_screen in
117 curses)
118         CF_CURSES_CPPFLAGS
119         CF_NCURSES_VERSION
120         CF_CURSES_LIBS
121         ;;
122 ncurses)
123         CF_NCURSES_CPPFLAGS
124         CF_NCURSES_LIBS
125         ;;
126 ncursesw)
127         cf_cv_libtype=w
128         CF_UTF8_LIB
129         CF_NCURSES_CPPFLAGS(ncursesw)
130         CF_NCURSES_LIBS(ncursesw)
131         ;;
132 pdcurses) #(vi
133         CF_PDCURSES_X11
134         ;;
135 esac
136
137 dnl If we've not specified a library, assume we're using sysvr4 libraries
138 dnl installed conventionally (e.g., SunOS 5.x - solaris).
139
140 dnl Autoconf builds up the $LIBS in reverse order
141
142 case $cf_cv_screen in #(vi
143 pdcurses) #(vi
144         ;;
145 *)
146         # look for curses-related libraries
147         AC_CHECK_LIB(panel$cf_cv_libtype,new_panel)
148         AC_CHECK_LIB(menu$cf_cv_libtype,menu_driver)
149         AC_CHECK_LIB(form$cf_cv_libtype,form_driver)
150
151         # look for curses-related headers
152         AC_CHECK_HEADERS( \
153                 nc_alloc.h \
154                 nomacros.h \
155                 form.h \
156                 menu.h \
157                 panel.h \
158                 )
159         ;;
160 esac
161
162 AC_TYPE_SIGNAL
163
164 AC_STDC_HEADERS
165 AC_HEADER_TIME
166 AC_CHECK_HEADERS( \
167 getopt.h \
168 locale.h \
169 stdarg.h \
170 sys/ioctl.h \
171 sys/select.h \
172 sys/time.h \
173 termios.h \
174 unistd.h \
175 )
176
177 AC_CHECK_FUNCS( \
178 chgat \
179 color_set \
180 filter \
181 getbegx \
182 getcurx \
183 getmaxx \
184 getnstr \
185 gettimeofday \
186 getwin \
187 mvvline \
188 mvwvline \
189 napms \
190 putwin \
191 resize_term \
192 resizeterm \
193 ripoffline \
194 setupterm \
195 slk_color \
196 slk_init \
197 strdup \
198 termattrs \
199 tgetent \
200 tigetnum \
201 tigetstr \
202 typeahead \
203 use_default_colors \
204 vsscanf \
205 wchgat \
206 winsstr \
207 wresize \
208 )
209
210 AC_CACHE_CHECK(for ncurses extended functions,cf_cv_ncurses_ext_funcs,[
211 AC_TRY_LINK([
212 #include <${cf_cv_ncurses_header-curses.h}>],
213 [
214         (void) assume_default_colors (0, 0);
215         (void) curses_version ();
216         (void) define_key (0, 0);
217         (void) is_term_resized (0, 0);
218         (void) key_defined (0);
219         (void) keybound (0, 0);
220         (void) keyok (0, 0);
221         (void) resize_term (0, 0);
222         (void) resizeterm (0, 0);
223         (void) use_default_colors ();
224         (void) use_extended_names (0);
225         (void) wresize (0, 0, 0);],
226         [cf_cv_ncurses_ext_funcs=yes],
227         [cf_cv_ncurses_ext_funcs=no])
228 ])
229 test "$cf_cv_ncurses_ext_funcs" != no && AC_DEFINE(NCURSES_EXT_FUNCS)
230
231 AC_CACHE_CHECK(for wide-character functions,cf_cv_widechar_funcs,[
232 AC_TRY_LINK([
233 #include <${cf_cv_ncurses_header-curses.h}>],
234 [
235         static wchar_t src_wchar[2];
236         static cchar_t dst_cchar;
237         setcchar(&dst_cchar, src_wchar, A_NORMAL, 0, (void *) 0);
238         ],
239         [cf_cv_widechar_funcs=yes],
240         [cf_cv_widechar_funcs=no])
241 ])
242 if test "$cf_cv_widechar_funcs" != no ; then
243         AC_DEFINE(USE_WIDEC_SUPPORT,1)
244 else
245         AC_DEFINE(USE_WIDEC_SUPPORT,0)
246 fi
247
248 CF_SYS_TIME_SELECT
249 CF_FUNC_CURSES_VERSION
250 CF_CURSES_ACS_MAP
251 CF_CURSES_WACS_MAP
252 CF_CURSES_CHECK_TYPE(attr_t,long)
253 CF_CURSES_CHECK_TYPE(mbstate_t,long)
254
255 TEST_ARGS="$LIBS"
256 LIBS=
257
258 dnl ---------------------------------------------------------------------------
259
260 AC_OUTPUT(Makefile,[
261 CF_PRG_RULES([$srcdir/mk-test.awk ECHO_LINK="$ECHO_LINK"], .)
262         cat >>Makefile <<TEST_EOF
263
264 # These rules are generated so we do not rely on suffix rules, which do not
265 # work consistently for different make-programs (the '\$(MODEL)/' confuses
266 # some, and the '\$x' confuses others).
267 TEST_EOF
268 LIST=`sed -e 's/[[      ]].*//' -e '/^[[#@]]/d' $srcdir/modules`
269 for N in $LIST
270 do
271         cat >>Makefile <<TEST_EOF
272
273 \$(MODEL)/$N.o : $N.c \\
274         test.priv.h \\
275         ncurses_cfg.h
276         @echo compiling $N; \$(CC) -c \$(CFLAGS_DEFAULT) $N.c
277 TEST_EOF
278 done
279 ],[
280 AWK="$AWK"
281 ],cat)