ncurses 5.6 - patch 20080209
[ncurses.git] / test / configure.in
1 dnl***************************************************************************
2 dnl Copyright (c) 1998-2007,2008 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.65 2008/02/09 18:24:11 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 LD="ld"                                 AC_SUBST(LD)
62 LDFLAGS_SHARED=""                       AC_SUBST(LDFLAGS_SHARED)
63 LDFLAGS_STATIC=""                       AC_SUBST(LDFLAGS_STATIC)
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='${CC}'                        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 TINFO_ARGS='$(LIBS_CURSES)'             AC_SUBST(TINFO_ARGS)
78 cf_cv_abi_version=""                    AC_SUBST(cf_cv_abi_version)
79 cf_cv_rel_version=""                    AC_SUBST(cf_cv_rel_version)
80
81 cf_cv_screen=curses
82 cf_cv_libtype=
83
84 AC_EXEEXT
85 AC_OBJEXT
86
87 CF_ANSI_CC_REQD
88 CF_GCC_ATTRIBUTES
89 CF_XOPEN_SOURCE
90 AC_C_CONST
91 CF_SIG_ATOMIC_T
92
93 CF_DISABLE_ECHO
94 CF_ENABLE_WARNINGS
95
96 CF_WITH_CURSES_DIR
97
98 dnl SunOS 4.x
99 AC_ARG_WITH(5lib,
100         [  --with-5lib             use SunOS sysv-libraries],
101         [LIBS="-L/usr/5lib $LIBS"
102          CPPFLAGS="$CPPFLAGS -I/usr/5include"])
103
104 dnl ---------------------------------------------------------------------------
105 dnl NcursesW, installed in conventional location
106 AC_ARG_WITH(ncursesw,
107         [  --with-ncursesw         use wide ncurses-libraries (installed)],
108         [cf_cv_screen=ncursesw],[
109
110 dnl Ncurses, installed in conventional location
111 AC_ARG_WITH(ncurses,
112         [  --with-ncurses          use ncurses-libraries (installed)],
113         [cf_cv_screen=ncurses],[
114
115 AC_ARG_WITH(pdcurses,
116         [  --with-pdcurses         compile/link with pdcurses X11 library],
117         [cf_cv_screen=pdcurses])])])
118
119 case $cf_cv_screen in
120 curses)
121         CF_CURSES_CPPFLAGS
122         CF_NCURSES_VERSION
123         CF_CURSES_LIBS
124         ;;
125 ncurses)
126         CF_NCURSES_CPPFLAGS
127         CF_NCURSES_LIBS
128         ;;
129 ncursesw)
130         cf_cv_libtype=w
131         CF_UTF8_LIB
132         CF_NCURSES_CPPFLAGS(ncursesw)
133         CF_NCURSES_LIBS(ncursesw)
134         ;;
135 pdcurses) #(vi
136         CF_PDCURSES_X11
137         ;;
138 esac
139
140 dnl If we've not specified a library, assume we're using sysvr4 libraries
141 dnl installed conventionally (e.g., SunOS 5.x - solaris).
142
143 dnl Autoconf builds up the $LIBS in reverse order
144
145 case $cf_cv_screen in #(vi
146 pdcurses) #(vi
147         ;;
148 *)
149         # look for curses-related libraries
150         AC_CHECK_LIB(panel$cf_cv_libtype,new_panel)
151         AC_CHECK_LIB(menu$cf_cv_libtype,menu_driver)
152         AC_CHECK_LIB(form$cf_cv_libtype,form_driver)
153
154         # look for curses-related headers
155         AC_CHECK_HEADERS( \
156                 nc_alloc.h \
157                 nomacros.h \
158                 form.h \
159                 menu.h \
160                 panel.h \
161                 )
162         ;;
163 esac
164
165 AC_TYPE_SIGNAL
166
167 AC_STDC_HEADERS
168 AC_HEADER_TIME
169 AC_CHECK_HEADERS( \
170 getopt.h \
171 locale.h \
172 stdarg.h \
173 sys/ioctl.h \
174 sys/select.h \
175 sys/time.h \
176 termios.h \
177 unistd.h \
178 )
179
180 AC_CHECK_FUNCS( \
181 gettimeofday \
182 strdup \
183 )
184
185 CF_CURSES_FUNCS( \
186 chgat \
187 color_set \
188 filter \
189 getbegx \
190 getcurx \
191 getmaxx \
192 getnstr \
193 getparx \
194 getwin \
195 mvvline \
196 mvwvline \
197 napms \
198 putwin \
199 resize_term \
200 resizeterm \
201 ripoffline \
202 setupterm \
203 slk_color \
204 slk_init \
205 termattrs \
206 tgetent \
207 tigetnum \
208 tigetstr \
209 typeahead \
210 use_default_colors \
211 vsscanf \
212 wchgat \
213 winsstr \
214 wresize \
215 )
216
217 AC_CACHE_CHECK(for ncurses extended functions,cf_cv_ncurses_ext_funcs,[
218 AC_TRY_LINK([
219 #include <${cf_cv_ncurses_header-curses.h}>],
220 [
221         (void) assume_default_colors (0, 0);
222         (void) curses_version ();
223         (void) define_key (0, 0);
224         (void) is_term_resized (0, 0);
225         (void) key_defined (0);
226         (void) keybound (0, 0);
227         (void) keyok (0, 0);
228         (void) resize_term (0, 0);
229         (void) resizeterm (0, 0);
230         (void) use_default_colors ();
231         (void) use_extended_names (0);
232         (void) wresize (0, 0, 0);],
233         [cf_cv_ncurses_ext_funcs=yes],
234         [cf_cv_ncurses_ext_funcs=no])
235 ])
236 test "$cf_cv_ncurses_ext_funcs" != no && AC_DEFINE(NCURSES_EXT_FUNCS)
237
238 AC_CACHE_CHECK(for wide-character functions,cf_cv_widechar_funcs,[
239 AC_TRY_LINK([
240 #include <${cf_cv_ncurses_header-curses.h}>],
241 [
242         static wchar_t src_wchar[2];
243         static cchar_t dst_cchar;
244         setcchar(&dst_cchar, src_wchar, A_NORMAL, 0, (void *) 0);
245         ],
246         [cf_cv_widechar_funcs=yes],
247         [cf_cv_widechar_funcs=no])
248 ])
249 if test "$cf_cv_widechar_funcs" != no ; then
250         AC_DEFINE(USE_WIDEC_SUPPORT,1)
251 else
252         AC_DEFINE(USE_WIDEC_SUPPORT,0)
253 fi
254
255 CF_SYS_TIME_SELECT
256 CF_FUNC_CURSES_VERSION
257 CF_CURSES_ACS_MAP
258 CF_CURSES_WACS_MAP
259 CF_CURSES_CHECK_TYPE(attr_t,long)
260 CF_CURSES_CHECK_TYPE(mbstate_t,long)
261
262 TEST_ARGS="$LIBS"
263 LIBS=
264
265 dnl ---------------------------------------------------------------------------
266
267 AC_OUTPUT(Makefile,[
268 CF_PRG_RULES([$srcdir/mk-test.awk ECHO_LINK="$ECHO_LD"], .)
269         cat >>Makefile <<TEST_EOF
270
271 # These rules are generated so we do not rely on suffix rules, which do not
272 # work consistently for different make-programs (the '\$(MODEL)/' confuses
273 # some, and the '\$x' confuses others).
274 TEST_EOF
275 LIST=`sed -e 's/[[      ]].*//' -e '/^[[#@]]/d' $srcdir/modules`
276 for N in $LIST
277 do
278         cat >>Makefile <<TEST_EOF
279
280 \$(MODEL)/$N.o : $N.c \\
281         test.priv.h \\
282         ncurses_cfg.h
283         @echo compiling $N; \$(CC) -c \$(CFLAGS_DEFAULT) $N.c
284 TEST_EOF
285 done
286 ],[
287 AWK="$AWK"
288 ECHO_LD="$ECHO_LD"
289 ],cat)