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