ncurses 5.5
[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.51 2005/02/26 23:58:27 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
53 dnl Things that we don't need (or must override) if we're not building ncurses
54 CC_G_OPT="-g"                           AC_SUBST(CC_G_OPT)
55 CC_SHARED_OPTS=unknown                  AC_SUBST(CC_SHARED_OPTS)
56 CPPFLAGS="$CPPFLAGS"                    AC_SUBST(CPPFLAGS)
57 DFT_DEP_SUFFIX=""                       AC_SUBST(DFT_DEP_SUFFIX)
58 DFT_OBJ_SUBDIR=`pwd|sed -e's:.*/::'`    AC_SUBST(DFT_OBJ_SUBDIR)
59 DFT_UPR_MODEL="NORMAL"                  AC_SUBST(DFT_UPR_MODEL)
60 ECHO_LINK='@ echo linking $@ ... ;'     AC_SUBST(ECHO_LINK)
61 LD="ld"                                 AC_SUBST(LD)
62 LDFLAGS_SHARED=""                       AC_SUBST(LDFLAGS_SHARED)
63 LD_MODEL=""                             AC_SUBST(LD_MODEL)
64 LD_SHARED_OPTS=""                       AC_SUBST(LD_SHARED_OPTS)
65 LIBTOOL=""                              AC_SUBST(LIBTOOL)
66 LIB_CLEAN=""                            AC_SUBST(LIB_CLEAN)
67 LIB_COMPILE=""                          AC_SUBST(LIB_COMPILE)
68 LIB_LINK=""                             AC_SUBST(LIB_LINK)
69 LIB_NAME=curses                         AC_SUBST(LIB_NAME)
70 LIB_PREFIX="-l"                         AC_SUBST(LIB_PREFIX)
71 LINK_TESTS=""                           AC_SUBST(LINK_TESTS)
72 LINT=lint                               AC_SUBST(LINT)
73 LINT_OPTS=""                            AC_SUBST(LINT_OPTS)
74 LOCAL_LDFLAGS=""                        AC_SUBST(LOCAL_LDFLAGS)
75 MATH_LIB="-lm"                          AC_SUBST(MATH_LIB)
76 TEST_ARGS=""                            AC_SUBST(TEST_ARGS)
77 TEST_DEPS=""                            AC_SUBST(TEST_DEPS)
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_XOPEN_SOURCE
90
91 CF_WITH_CURSES_DIR
92
93 dnl SunOS 4.x
94 AC_ARG_WITH(5lib,
95         [  --with-5lib             use SunOS sysv-libraries],
96         [LIBS="-L/usr/5lib $LIBS"
97          CPPFLAGS="$CPPFLAGS -I/usr/5include"])
98
99 dnl ---------------------------------------------------------------------------
100 dnl NcursesW, installed in conventional location
101 AC_ARG_WITH(ncursesw,
102         [  --with-ncursesw         use wide ncurses-libraries (installed)],
103         [cf_cv_screen=ncursesw])
104
105 dnl Ncurses, installed in conventional location
106 AC_ARG_WITH(ncurses,
107         [  --with-ncurses          use ncurses-libraries (installed)],
108         [cf_cv_screen=ncurses])
109
110 case $cf_cv_screen in
111 curses)
112         CF_CURSES_CPPFLAGS
113         CF_NCURSES_VERSION
114         CF_CURSES_LIBS
115         ;;
116 ncurses)
117         CF_NCURSES_CPPFLAGS
118         CF_NCURSES_LIBS
119         LIB_NAME=ncurses
120         ;;
121 ncursesw)
122         cf_cv_libtype=w
123         CF_UTF8_LIB
124         CF_NCURSES_CPPFLAGS(ncursesw)
125         CF_NCURSES_LIBS(ncursesw)
126         LIB_NAME=ncursesw
127         ;;
128 esac
129
130 dnl If we've not specified a library, assume we're using sysvr4 libraries
131 dnl installed conventionally (e.g., SunOS 5.x - solaris).
132
133 dnl Autoconf builds up the $LIBS in reverse order
134
135 AC_CHECK_LIB(panel$cf_cv_libtype,new_panel)
136 AC_CHECK_LIB(menu$cf_cv_libtype,menu_driver)
137 AC_CHECK_LIB(form$cf_cv_libtype,form_driver)
138
139 AC_TYPE_SIGNAL
140
141 AC_STDC_HEADERS
142 AC_HEADER_TIME
143 AC_CHECK_HEADERS( \
144 form.h \
145 getopt.h \
146 locale.h \
147 menu.h \
148 nc_alloc.h \
149 nomacros.h \
150 panel.h \
151 sys/ioctl.h \
152 sys/select.h \
153 sys/time.h \
154 termios.h \
155 unistd.h \
156 )
157
158 AC_CHECK_FUNCS( \
159 color_set \
160 getnstr \
161 gettimeofday \
162 napms \
163 resize_term \
164 resizeterm \
165 slk_color \
166 strdup \
167 use_default_colors \
168 vsscanf \
169 wchgat \
170 wresize \
171 )
172
173 AC_TRY_LINK([
174 #include <${cf_cv_ncurses_header-curses.h}>],
175 [
176         (void) assume_default_colors (0, 0);
177         (void) curses_version ();
178         (void) define_key (0, 0);
179         (void) is_term_resized (0, 0);
180         (void) key_defined (0);
181         (void) keybound (0, 0);
182         (void) keyok (0, 0);
183         (void) resize_term (0, 0);
184         (void) resizeterm (0, 0);
185         (void) use_default_colors ();
186         (void) use_extended_names (0);
187         (void) wresize (0, 0, 0);
188         ],[AC_DEFINE(NCURSES_EXT_FUNCS)])
189
190 CF_SYS_TIME_SELECT
191 CF_FUNC_CURSES_VERSION
192 CF_CURSES_ACS_MAP
193 CF_CURSES_WACS_MAP
194 CF_CURSES_CHECK_TYPE(attr_t,long)
195 CF_CURSES_CHECK_TYPE(mbstate_t,long)
196
197 TEST_ARGS="$LIBS"
198 LIBS=
199
200 dnl ---------------------------------------------------------------------------
201
202 AC_OUTPUT(Makefile,[
203         cat >>Makefile <<TEST_EOF
204
205 # These rules are generated so we do not rely on suffix rules, which do not
206 # work consistently for different make-programs (the '\$(MODEL)/' confuses
207 # some, and the '\$x' confuses others).
208 TEST_EOF
209 LIST=`sed -e 's/[[      ]].*//' -e '/^[[#@]]/d' $srcdir/modules`
210 for N in $LIST
211 do
212         cat >>Makefile <<TEST_EOF
213
214 \$(MODEL)/$N.o : $N.c \\
215         test.priv.h \\
216         ncurses_cfg.h
217         @echo compiling $N; \$(CC) -c \$(CFLAGS_DEFAULT) $N.c
218 TEST_EOF
219 done
220 ],[],sort)