ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/autoconf/configure.in
(Generate patch)

Comparing rxvt-unicode/autoconf/configure.in (file contents):
Revision 1.15 by pcg, Sun Feb 29 22:32:31 2004 UTC vs.
Revision 1.75 by ayin, Mon Jan 16 15:36:55 2006 UTC

1dnl# -*- sh -*- 1dnl# -*- sh -*-
2dnl# 2dnl#
3dnl# Process this file with autoconf to produce a configure script. 3dnl# Process this file with autoconf to produce a configure script.
4dnl# 4dnl#
5AC_INIT(src/feature.h) 5
6AC_INIT
7AC_PREREQ(2.50)
8AC_CONFIG_SRCDIR([src/feature.h])
6AC_CONFIG_AUX_DIR(autoconf) 9AC_CONFIG_AUX_DIR(autoconf)
7AC_CONFIG_HEADER(config.h:autoconf/config.h.in) 10AC_CONFIG_HEADER(config.h:autoconf/config.h.in)
11
12AC_CANONICAL_HOST
8 13
9dnl RXVT version 14dnl RXVT version
10changequote(, )dnl 15changequote(, )dnl
11VERSION=`sed -n -e 's/^.*[ \t]VERSION.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h` 16VERSION=`sed -n -e 's/^.*[ \t]VERSION.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
12DATE=`sed -n -e 's/^.*[ \t]DATE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h` 17DATE=`sed -n -e 's/^.*[ \t]DATE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
13LSMDATE=`sed -n -e 's/^.*[ \t]LSMDATE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
14LIBVERSION=`sed -n -e 's/^.*[ \t]LIBVERSION.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h` 18dnl LIBVERSION=`sed -n -e 's/^.*[ \t]LIBVERSION.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
15changequote([, ])dnl 19changequote([, ])dnl
16AC_SUBST(VERSION)dnl 20AC_SUBST(VERSION)dnl
17AC_SUBST(DATE)dnl 21AC_SUBST(DATE)dnl
18AC_SUBST(LSMDATE)dnl 22AC_SUBST(LSMDATE)dnl
19AC_SUBST(LIBVERSION)dnl 23AC_SUBST(LIBVERSION)dnl
20echo "" 24echo ""
21echo "configuring for rxvt $VERSION" 25echo "configuring for rxvt $VERSION"
22echo "" 26echo ""
23 27
28orig_CXXFLAGS="$CXXFLAGS"
29
24dnl# Checks for programs. 30dnl# Checks for programs.
25dnl AC_MAKE_SET 31dnl AC_MAKE_SET
26 32
27AC_PROG_CC 33AC_PROG_CC
28AC_PROG_CXX 34AC_PROG_CXX
29AC_PROG_CPP 35AC_PROG_CPP
30AC_PROG_INSTALL 36AC_PROG_INSTALL
31AC_PROG_AWK 37AC_PROG_AWK
32 38
39AC_LANG(C)
40
41dnl# --------------------------------------------------------------------------
42dnl# Supply default CFLAGS, if not specified by `CFLAGS=flags ./configure'
43dnl#
44if test -z "$orig_CXXFLAGS"; then
45 if test x$GCC = xyes && test "x$GXX" = xyes; then
46 CXXFLAGS="-g -O3"
47 else
48 CXXFLAGS="-O"
49 fi
50 CFLAGS="$CXXFLAGS"
51fi
52
53LINKER="$CXX"
54if test x$GCC = xyes && test x$GXX = xyes; then
55 AC_CHECK_LIB(supc++, main, [
56 LINKER="$CC"
57 LIBS="$LIBS -lsupc++"
58 ])
59fi
60AC_SUBST(LINKER,[$LINKER])
61
62AC_DEFINE(_GNU_SOURCE, 1, Use all glibc features.)
63
64case $host in
65 *-*-solaris* )
66 AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1, Needed to get declarations for msg_control and msg_controllen on Solaris)
67 AC_DEFINE(_XOPEN_SOURCE, 2, Needed to get declarations for msg_control and msg_controllen on Solaris)
68 AC_DEFINE(__EXTENSIONS__, 1, Needed to get declarations for msg_control and msg_controllen on Solaris)
69 ;;
70esac
71
72dnl if test x$GXX = xyes; then
73dnl CXXFLAGS="$CXXFLAGS" dnl I once had -fno-exceptions, but I am using them now...
74dnl fi
75
76AC_LANG(C++)
77
33dnl# system hacks 78dnl# system hacks
34AC_AIX 79AC_AIX
35AC_ISC_POSIX 80AC_ISC_POSIX
36 81
82dnl# FreeBSD needs to link libxpg4
83AC_CHECK_FUNC(setlocale, [], [AC_CHECK_LIB(xpg4, setlocale, [LIBS="$LIBS -lxpg4"])])
84
85dnl# solaris needs to link libnsl and socket
86AC_CHECK_FUNC(gethostbyname, [], [AC_CHECK_LIB(nsl, gethostbyname, [LIBS="$LIBS -lnsl"])])
87AC_CHECK_FUNC(socket, [], [AC_CHECK_LIB(socket, socket, [LIBS="$LIBS -lsocket"])])
88
89dnl# more solaris
90AC_CHECK_FUNC(sched_yield, [], [AC_CHECK_LIB(rt, sched_yield, [LIBS="$LIBS -lrt"])])
91
92dnl# sched_yield to improve terminal efficiency
93AC_MSG_CHECKING(for sched_yield support)
94AC_TRY_LINK([#include <sched.h>],[sched_yield ()],
95 [AC_MSG_RESULT(yes)
96 AC_DEFINE(HAVE_SCHED_YIELD, 1, Define if you have sched-h and sched_yield)],
97 [AC_MSG_RESULT(no)])
98
37AC_ENABLE_SHARED(no)dnl# libtool 99dnl AC_ENABLE_SHARED(no)dnl# libtool
38AC_ENABLE_STATIC(yes)dnl# libtool 100dnl AC_ENABLE_STATIC(yes)dnl# libtool
39AC_PROG_LIBTOOL()dnl# libtool 101dnl AC_PROG_LIBTOOL()dnl# libtool
40 102
41MALLOC_TYPE=S 103MALLOC_TYPE=S
42support_addstrings=no 104
43support_frills=no 105support_frills=yes
44support_linespace=no
45support_inheritpixmap=no 106support_inheritpixmap=yes
107support_tinting=yes
108support_fading=yes
46support_keepscrolling=no 109support_keepscrolling=yes
47support_selectionscrolling=no 110support_selectionscrolling=yes
48support_menubar=no
49support_mousewheel=no 111support_mousewheel=yes
50support_mouseslipwheel=no 112support_mouseslipwheel=yes
51support_oldselection=no
52support_utmp=no 113support_utmp=yes
53support_wtmp=no 114support_wtmp=yes
54support_lastlog=no 115support_lastlog=yes
55support_cursor_blink=no
56support_text_blink=no 116support_text_blink=yes
57support_pointer_blank=no 117support_pointer_blank=yes
58support_scroll_rxvt=no 118support_scroll_rxvt=yes
59support_scroll_next=no 119support_scroll_next=yes
60support_scroll_xterm=no 120support_scroll_xterm=yes
61support_scroll_plain=no 121support_scroll_plain=yes
62support_xim=no 122support_xim=yes
63support_xpm=no 123support_xpm=yes
64support_xft=no 124support_xft=yes
65support_unicode3=no 125support_unicode3=no
126support_combining=yes
127support_8bitctrls=no
128support_iso14755=yes
129support_styles=yes
130support_perl=yes
66codesets= 131codesets=all
67 132
68dnl# -------------------------------------------------------------------------- 133dnl# --------------------------------------------------------------------------
69dnl# CHECKING COMMAND LINE OPTIONS 134dnl# CHECKING COMMAND LINE OPTIONS
70dnl# -------------------------------------------------------------------------- 135dnl# --------------------------------------------------------------------------
71 136
77 142
78AC_ARG_ENABLE(everything, 143AC_ARG_ENABLE(everything,
79 [ --enable-everything enable standard non-multichoice features 144 [ --enable-everything enable standard non-multichoice features
80 NOTE: this option is order dependent 145 NOTE: this option is order dependent
81 NOTE: automatically enabled with --enable-shared], 146 NOTE: automatically enabled with --enable-shared],
147 [
148 if test x$enableval = xno; then
149 support_24bit=no
150 support_frills=no
151 support_inheritpixmap=no
152 support_tinting=no
153 support_fading=no
154 support_keepscrolling=no
155 support_selectionscrolling=no
156 support_lastlog=no
157 support_mousewheel=no
158 support_mouseslipwheel=no
159 support_text_blink=no
160 support_pointer_blank=no
161 support_scroll_rxvt=no
162 support_scroll_next=no
163 support_scroll_xterm=no
164 support_scroll_plain=no
165 support_utmp=no
166 support_wtmp=no
167 support_xim=no
168 support_xpm=no
169 support_xft=no
170 support_unicode3=no
171 support_combining=no
172 support_8bitctrls=no
173 support_iso14755=no
174 support_styles=no
175 support_perl=no
176 codesets=
177 fi
82 [if test x$enableval = xyes; then 178 if test x$enableval = xyes; then
83 support_24bit=yes 179 support_24bit=yes
84 support_frills=yes 180 support_frills=yes
85 support_linespace=yes
86 support_inheritpixmap=yes 181 support_inheritpixmap=yes
182 support_tinting=yes
183 support_fading=yes
87 support_keepscrolling=yes 184 support_keepscrolling=yes
88 support_selectionscrolling=yes 185 support_selectionscrolling=yes
89 support_lastlog=yes 186 support_lastlog=yes
90 support_menubar=yes
91 support_mousewheel=yes 187 support_mousewheel=yes
92 support_mouseslipwheel=yes 188 support_mouseslipwheel=yes
93 support_oldselection=yes
94 support_cursor_blink=yes
95 support_text_blink=yes 189 support_text_blink=yes
96 support_pointer_blank=yes 190 support_pointer_blank=yes
97 support_scroll_rxvt=yes 191 support_scroll_rxvt=yes
98 support_scroll_next=yes 192 support_scroll_next=yes
99 support_scroll_xterm=yes 193 support_scroll_xterm=yes
100 support_scroll_plain=yes 194 support_scroll_plain=yes
101 support_utmp=yes 195 support_utmp=yes
102 support_wtmp=yes 196 support_wtmp=yes
103 support_xim=yes 197 support_xim=yes
104 support_xpm=yes 198 support_xpm=yes
105 support_xft=yes 199 support_xft=yes
106 support_unicode3=yes 200 support_unicode3=yes
201 support_combining=yes
202 #support_8bitctrls=yes
203 support_iso14755=yes
204 support_styles=yes
205 support_perl=yes
107 codesets=all 206 codesets=all
207 fi
108 fi]) 208 ])
109 209
110AC_ARG_ENABLE(unicode3, 210AC_ARG_ENABLE(unicode3,
111 [ --enable-unicode3 use 21 instead of 16 bits to represent unicode characters], 211 [ --enable-unicode3 use 21 instead of 16 bits to represent unicode characters],
112 [if test x$enableval = xyes -o x$enableval = xno; then 212 [if test x$enableval = xyes -o x$enableval = xno; then
113 support_unicode3=yes 213 support_unicode3=$enableval
214 fi])
215
216AC_ARG_ENABLE(combining,
217 [ --enable-combining enable composition of base and combining characters],
218 [if test x$enableval = xyes -o x$enableval = xno; then
219 support_combining=$enableval
114 fi]) 220 fi])
115 221
116AC_ARG_ENABLE(xft, 222AC_ARG_ENABLE(xft,
117 [ --enable-xft enable xft support on systems that have it], 223 [ --enable-xft enable xft support on systems that have it],
118 [if test x$enableval = xyes -o x$enableval = xno; then 224 [if test x$enableval = xyes -o x$enableval = xno; then
119 support_xft=yes 225 support_xft=$enableval
120 fi]) 226 fi])
121 227
122AC_ARG_WITH(codesets, 228AC_ARG_ENABLE(font-styles,
123 [ --with-codesets=NAME,... compile in additional codesets (jp,jp_ext,kr,cn,cn_ext,vn,all)], 229 [ --enable-font-styles enable bold and italic support],
124 [codesets="$withval"]) 230 [if test x$enableval = xyes -o x$enableval = xno; then
231 support_styles=$enableval
232 fi])
125 233
126AC_ARG_ENABLE(utmp, 234AC_ARG_ENABLE(utmp,
127 [ --enable-utmp enable utmp (utmpx) support], 235 [ --enable-utmp enable utmp (utmpx) support],
128 [if test x$enableval = xyes -o x$enableval = xno; then 236 [if test x$enableval = xyes -o x$enableval = xno; then
129 support_utmp=$enableval 237 support_utmp=$enableval
151 [ --enable-transparency enable transparent backgrounds], 259 [ --enable-transparency enable transparent backgrounds],
152 [if test x$enableval = xyes -o x$enableval = xno; then 260 [if test x$enableval = xyes -o x$enableval = xno; then
153 support_inheritpixmap=$enableval 261 support_inheritpixmap=$enableval
154 fi]) 262 fi])
155 263
156AC_ARG_ENABLE(menubar, 264AC_ARG_ENABLE(tinting,
157 [ --enable-menubar enable menubar], 265 [ --enable-tinting enable tinting of transparent bg],
158 [if test x$enableval = xyes -o x$enableval = xno; then 266 [if test x$enableval = xyes -o x$enableval = xno; then
267 support_tinting=$enableval
268 fi])
269
270AC_ARG_ENABLE(fading,
271 [ --enable-fading enable colors fading when off focus],
272 [if test x$enableval = xyes -o x$enableval = xno; then
159 support_menubar=$enableval 273 support_fading=$enableval
160 fi]) 274 fi])
161 275
162AC_ARG_ENABLE(rxvt-scroll, 276AC_ARG_ENABLE(rxvt-scroll,
163 [ --enable-rxvt-scroll enable rxvt style scrollbar], 277 [ --enable-rxvt-scroll enable rxvt style scrollbar],
164 [if test x$enableval = xyes -o x$enableval = xno; then 278 [if test x$enableval = xyes -o x$enableval = xno; then
175 [ --enable-xterm-scroll enable Xterm style scrollbar], 289 [ --enable-xterm-scroll enable Xterm style scrollbar],
176 [if test x$enableval = xyes -o x$enableval = xno; then 290 [if test x$enableval = xyes -o x$enableval = xno; then
177 support_scroll_xterm=$enableval 291 support_scroll_xterm=$enableval
178 fi]) 292 fi])
179 293
294AC_ARG_ENABLE(perl,
295 [ --enable-perl enable embedded perl interpreter],
296 [if test x$enableval = xyes -o x$enableval = xno; then
297 support_perl=$enableval
298 fi])
299
180AC_ARG_ENABLE(plain-scroll, 300AC_ARG_ENABLE(plain-scroll,
181 [ --enable-plain-scroll enable plain style scrollbar], 301 [ --enable-plain-scroll enable plain style scrollbar],
182 [if test x$enableval = xyes -o x$enableval = xno; then 302 [if test x$enableval = xyes -o x$enableval = xno; then
183 support_scroll_plain=$enableval 303 support_scroll_plain=$enableval
184 fi]) 304 fi])
185 305
186AC_ARG_ENABLE(half-shadow, 306dnl AC_ARG_ENABLE(half-shadow,
187 [ --enable-half-shadow use half width/height shadow on rxvt scrollbar], 307dnl [ --enable-half-shadow use half width/height shadow on rxvt scrollbar],
188 [if test x$enableval = xyes; then 308dnl [if test x$enableval = xyes; then
189 AC_DEFINE(HALFSHADOW, 1, Define if you want the depth of scrollbars and menus to be less) 309dnl AC_DEFINE(HALFSHADOW, 1, Define if you want the depth of scrollbars and menus to be less)
190 fi]) 310dnl fi])
311
312AC_ARG_WITH(codesets,
313 [ --with-codesets=NAME,.. compile in additional codesets (jp,jp_ext,kr,zh,zh_ext,all)],
314 [codesets="$withval"])
191 315
192AC_ARG_ENABLE(xim, 316AC_ARG_ENABLE(xim,
193 [ --enable-xim XIM (X Input Method) protocol support], 317 [ --enable-xim XIM (X Input Method) protocol support],
194 [if test x$enableval = xyes -o x$enableval = xno; then 318 [if test x$enableval = xyes -o x$enableval = xno; then
195 support_xim=$enableval 319 support_xim=$enableval
217 [ --disable-resources disable all resource checking], 341 [ --disable-resources disable all resource checking],
218 [if test x$enableval = xno; then 342 [if test x$enableval = xno; then
219 AC_DEFINE(NO_RESOURCES, 1, Define if you don't want any resources read) 343 AC_DEFINE(NO_RESOURCES, 1, Define if you don't want any resources read)
220 fi]) 344 fi])
221 345
222AC_ARG_ENABLE(xgetdefault,
223 [ --enable-xgetdefault enable resources via X instead of our small version],
224 [if test x$enableval = xyes; then
225 AC_DEFINE(USE_XGETDEFAULT, 1, Define if you want to use XGetDefault instead of our internal version)
226 fi])
227
228AC_ARG_ENABLE(strings, 346AC_ARG_ENABLE(8bitctrls,
229 [ --enable-strings enable some replacement system functions], 347 [ --enable-8bitctrls enable 8 bit control sequences (not recommended)],
230 [if test x$enableval = xyes -o x$enableval = xno; then 348 [if test x$enableval = xyes -o x$enableval = xno; then
231 support_addstrings=$enableval 349 support_8bitctrls=$enableval
350 fi])
351
352RESFALLBACK=Rxvt
353AC_ARG_ENABLE(fallback,
354 [ --enable-fallback(=CLASS) fall back on CLASS resources in addition to URxvt ones (default: Rxvt)],
355 [
356 test x$enableval = xyes && enableval=Rxvt
357 test x$enableval = xno && enableval=
358 RESFALLBACK="$enableval"
232 fi]) 359 ])
360
361if test x$RESFALLBACK != x; then
362 AC_DEFINE_UNQUOTED(RESFALLBACK, "$RESFALLBACK", [Fallback resource class])
363fi
364
365RESNAME=urxvt
366AC_ARG_WITH(res-name,
367 [ --with-res-name=NAME use this as default resource name (default: urxvt)],
368 [RESNAME="$withval"])
369AC_DEFINE_UNQUOTED(RESNAME,"$RESNAME", [Default resource name])
370
371RESCLASS=URxvt
372AC_ARG_WITH(res-class,
373 [ --with-res-class=CLASS use this as the resource class (default: URxvt)],
374 [RESCLASS="$withval"])
375AC_DEFINE_UNQUOTED(RESCLASS,"$RESCLASS", [Resource class])
376
377RXVTNAME=urxvt
378AC_ARG_WITH(name,
379 [ --with-name=NAME set the basename for the installed binaries (default: urxvt)],
380 [RXVTNAME="$withval"])
381AC_DEFINE_UNQUOTED(RXVTNAME,"$RXVTNAME", [Binary base name])
382
383RXVTNAME=`echo "$RXVTNAME"|sed "$program_transform_name"`
384AC_SUBST(RXVTNAME)
233 385
234AC_ARG_ENABLE(swapscreen, 386AC_ARG_ENABLE(swapscreen,
235 [ --disable-swapscreen disable swap screen support], 387 [ --disable-swapscreen disable swap screen support],
236 [if test x$enableval = xno; then 388 [if test x$enableval = xno; then
237 AC_DEFINE(NO_SECONDARY_SCREEN, 1, Disable the secondary screen. Many programs use the secondary screen as their workplace) 389 AC_DEFINE(NO_SECONDARY_SCREEN, 1, Disable the secondary screen. Many programs use the secondary screen as their workplace)
238 fi]) 390 fi])
239 391
392AC_ARG_ENABLE(iso14755,
393 [ --enable-iso14755 enable support for extended ISO 14755 modes],
394 [if test x$enableval = xyes -o x$enableval = xno; then
395 support_iso14755=$enableval
396 fi])
397
240AC_ARG_ENABLE(frills, 398AC_ARG_ENABLE(frills,
241 [ --enable-frills enable support for rarely used features], 399 [ --enable-frills enable support for rarely used features],
242 [if test x$enableval = xyes -o x$enableval = xno; then 400 [if test x$enableval = xyes -o x$enableval = xno; then
243 support_frills=$enableval 401 support_frills=$enableval
244 fi]) 402 fi])
245 403
246AC_ARG_ENABLE(linespace,
247 [ --enable-linespace enable support for linespace],
248 [if test x$enableval = xyes -o x$enableval = xno; then
249 support_linespace=$enableval
250 fi])
251
252AC_ARG_ENABLE(24bit, 404AC_ARG_ENABLE(24bit,
253 [ --enable-24bit enable support for using 24bit visuals if available], 405 [ --enable-24bit enable support for using 24bit visuals if available],
254 [if test x$enableval = xyes -o x$enableval = xno; then 406 [if test x$enableval = xyes -o x$enableval = xno; then
255 support_24bit=$enableval 407 support_24bit=$enableval
256 fi]) 408 fi])
275 427
276AC_ARG_ENABLE(slipwheeling, 428AC_ARG_ENABLE(slipwheeling,
277 [ --enable-slipwheeling enable slip wheel scrolling (requires previous)], 429 [ --enable-slipwheeling enable slip wheel scrolling (requires previous)],
278 [if test x$enableval = xyes -o x$enableval = xno; then 430 [if test x$enableval = xyes -o x$enableval = xno; then
279 support_mouseslipwheel=$enableval 431 support_mouseslipwheel=$enableval
280 fi])
281
282AC_ARG_ENABLE(old-selection,
283 [ --enable-old-selection enable v2.20 (& prior) mouse selection style support],
284 [if test x$enableval = xyes -o x$enableval = xno; then
285 support_oldselection=$enableval
286 fi])
287
288AC_ARG_ENABLE(new-selection,
289 [ --disable-new-selection disable new mouse (xterm) selection style support],
290 [if test x$enableval = xno; then
291 AC_DEFINE(NO_NEW_SELECTION, 1, Define to remove xterm style mouse selection)
292 fi]) 432 fi])
293 433
294AC_ARG_ENABLE(dmalloc, 434AC_ARG_ENABLE(dmalloc,
295 [ --enable-dmalloc enable Gray Watson's malloc - for debugging use], 435 [ --enable-dmalloc enable Gray Watson's malloc - for debugging use],
296 [if test x$enableval = xyes; then 436 [if test x$enableval = xyes; then
314 [ --enable-smart-resize enable smart growth/shrink behaviour], 454 [ --enable-smart-resize enable smart growth/shrink behaviour],
315 [if test x$enableval = xyes; then 455 [if test x$enableval = xyes; then
316 AC_DEFINE(SMART_RESIZE, 1, Define to use "smart" resize behavior) 456 AC_DEFINE(SMART_RESIZE, 1, Define to use "smart" resize behavior)
317 fi]) 457 fi])
318 458
319AC_ARG_ENABLE(256-color,
320 [ --enable-256-color enable 256-color support],
321 [if test x$enableval = xyes; then
322 AC_DEFINE(TTY_256COLOR, 1, Define if you want 256 colour support)
323 fi])
324
325AC_ARG_ENABLE(cursor-blink,
326 [ --enable-cursor-blink enable blinking cursor],
327 [if test x$enableval = xyes -o x$enableval = xno; then
328 support_cursor_blink=$enableval
329 fi])
330
331AC_ARG_ENABLE(text-blink, 459AC_ARG_ENABLE(text-blink,
332 [ --enable-text-blink enable blinking text], 460 [ --enable-text-blink enable blinking text],
333 [if test x$enableval = xyes -o x$enableval = xno; then 461 [if test x$enableval = xyes -o x$enableval = xno; then
334 support_text_blink=$enableval 462 support_text_blink=$enableval
335 fi]) 463 fi])
339 [if test x$enableval = xyes -o x$enableval = xno; then 467 [if test x$enableval = xyes -o x$enableval = xno; then
340 support_pointer_blank=$enableval 468 support_pointer_blank=$enableval
341 fi]) 469 fi])
342 470
343AC_ARG_WITH(term, 471AC_ARG_WITH(term,
344 [ --with-term=NAME set the terminal to NAME (default \"rxvt\")], 472 [ --with-term=NAME set the terminal to NAME (default: rxvt)],
345 [if test x$withval != x; then 473 [if test x$withval != x; then
346 AC_DEFINE_UNQUOTED(TERMENV, "$withval",Set TERM to the value given by configure) term="$withval" 474 AC_DEFINE_UNQUOTED(TERMENV, "$withval",Set TERM to the value given by configure) term="$withval"
347 fi]) 475 fi])
348 476
349AC_ARG_WITH(terminfo, 477AC_ARG_WITH(terminfo,
353 fi]) 481 fi])
354 482
355dnl# -------------------------------------------------------------------------- 483dnl# --------------------------------------------------------------------------
356 484
357AC_DEFINE(PROTOTYPES, 1, Define if you need function prototypes) 485AC_DEFINE(PROTOTYPES, 1, Define if you need function prototypes)
358
359dnl# --------------------------------------------------------------------------
360dnl# Supply default CFLAGS, if not specified by `CFLAGS=flags ./configure'
361dnl#
362if test -z "$CFLAGS"; then
363 if test -z "$CCOPTS"; then
364 CCOPTS='-O'
365dnl> if test "x$GCC" = xyes; then
366dnl> if test x$system = xLinux; then
367dnl> CCOPTS="$CCOPTS "'-O2 -fno-strength-reduce'
368dnl> fi
369dnl> fi
370 fi
371 CFLAGS="$CCOPTS"
372fi
373 486
374AC_PATH_PROG(MV, mv, mv) 487AC_PATH_PROG(MV, mv, mv)
375AC_PATH_PROG(RM, rm, rm) 488AC_PATH_PROG(RM, rm, rm)
376AC_PATH_PROG(CP, cp, cp) 489AC_PATH_PROG(CP, cp, cp)
377AC_PATH_PROG(LN, ln, ln) 490AC_PATH_PROG(LN, ln, ln)
378AC_PATH_PROG(SED, sed, sed) 491AC_PATH_PROG(SED, sed, sed)
379AC_PATH_PROG(ECHO, echo, echo) 492AC_PATH_PROG(ECHO, echo, echo)
380AC_PATH_PROG(CMP, cmp, cmp) 493AC_PATH_PROG(CMP, cmp, cmp)
381AC_PATH_PROG(TBL, tbl) 494AC_PATH_PROG(TBL, tbl)
495AC_PATH_PROG(TIC, tic)
382 496
383dnl# need a neat way to detect SVR4 or its features 497dnl# need a neat way to detect SVR4 or its features
384dnl# in src/command.c we use these functions: 498dnl# in src/command.c we use these functions:
385dnl# grantpt(), unlockpt(), ptsname(), which are defined in <sys/ptms.h> 499dnl# grantpt(), unlockpt(), ptsname(), which are defined in <sys/ptms.h>
386dnl# - but are these also defined for other systems? 500dnl# - but are these also defined for other systems?
423 sys/byteorder.h \ 537 sys/byteorder.h \
424 sys/ioctl.h \ 538 sys/ioctl.h \
425 sys/select.h \ 539 sys/select.h \
426 sys/sockio.h \ 540 sys/sockio.h \
427 sys/strredir.h \ 541 sys/strredir.h \
542 sys/stropts.h \
428 sys/time.h \ 543 sys/time.h \
429 utmp.h \ 544 utmp.h \
430 utmpx.h \ 545 utmpx.h \
431 stdint.h \ 546 stdint.h \
547 pty.h \
548 util.h \
549 libutil.h \
550 wchar.h \
551 cwchar \
552 clocale \
432) 553)
433 554
434AC_HEADER_TIME 555AC_HEADER_TIME
435 556
436dnl# check to allow both <termios.h> and <sys/ioctl.h> 557dnl# check to allow both <termios.h> and <sys/ioctl.h>
437AC_CACHE_CHECK(whether termios.h and sys/ioctl.h may both be included, rxvt_cv_header_sysioctl, 558AC_CACHE_CHECK(whether termios.h and sys/ioctl.h may both be included, rxvt_cv_header_sysioctl,
438[AC_TRY_COMPILE([#include <stdio.h> 559[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>
439#include <sys/ioctl.h> 560#include <sys/ioctl.h>
440#ifdef HAVE_TERMIOS_H 561#ifdef HAVE_TERMIOS_H
441#include <termios.h> 562#include <termios.h>
442#endif], [int a = ECHO;], rxvt_cv_header_sysioctl=yes, rxvt_cv_header_sysioctl=no)]) 563#endif]], [[int a = ECHO;]])],[rxvt_cv_header_sysioctl=yes],[rxvt_cv_header_sysioctl=no])])
443 564
444dnl# ELF systems may want to store paths for dynamic libraries. 565dnl# ELF systems may want to store paths for dynamic libraries.
445dnl# Lets see if the compiler can accept "-Rpath" or "-Wl,-Rpath" 566dnl# Lets see if the compiler can accept "-Rpath" or "-Wl,-Rpath"
446dnl# At least one version of SunOS wants "-R path" but it's not checked yet. 567dnl# At least one version of SunOS wants "-R path" but it's not checked yet.
447if test -n "$GCC"; then 568if test -n "$GCC"; then
456ac_save_CFLAGS=$CFLAGS 577ac_save_CFLAGS=$CFLAGS
457ac_save_LIBS=$LIBS 578ac_save_LIBS=$LIBS
458CFLAGS="$CFLAGS $X_CFLAGS" 579CFLAGS="$CFLAGS $X_CFLAGS"
459LIBS=`echo "$LIBS $X_LIBS $X_EXTRA_LIBS -lX11" | sed "$R_TRANSLATE"` 580LIBS=`echo "$LIBS $X_LIBS $X_EXTRA_LIBS -lX11" | sed "$R_TRANSLATE"`
460AC_CACHE_CHECK([for -rpath dynamic library path recording], rxvt_cv_rpath, 581AC_CACHE_CHECK([for -rpath dynamic library path recording], rxvt_cv_rpath,
461[AC_TRY_RUN([ 582[AC_RUN_IFELSE([AC_LANG_SOURCE([[
462main() 583main()
463{ 584{
464 exit(0); 585 exit(0);
465 (void) XOpenDisplay("foobar"); 586 (void) XOpenDisplay("foobar");
466}], rxvt_cv_rpath=yes, rxvt_cv_rpath=no, dnl 587}]])],[rxvt_cv_rpath=yes],[rxvt_cv_rpath=no],[dnl
467 AC_MSG_WARN([You may need to check the LIBS line]))]) 588 AC_MSG_WARN(You may need to check the LIBS line)])])
468if test x$rxvt_cv_rpath != xyes; then 589if test x$rxvt_cv_rpath != xyes; then
469 changequote(, )dnl 590 changequote(, )dnl
470 R_TRANSLATE='s/-L\([^ ]*\)/-L\1 '$LDARG'-R\1/g' 591 R_TRANSLATE='s/-L\([^ ]*\)/-L\1 '$LDARG'-R\1/g'
471 changequote([, ])dnl 592 changequote([, ])dnl
472 LIBS=`echo "$ac_save_LIBS $X_LIBS $X_EXTRA_LIBS -lX11" | sed "$R_TRANSLATE"` 593 LIBS=`echo "$ac_save_LIBS $X_LIBS $X_EXTRA_LIBS -lX11" | sed "$R_TRANSLATE"`
473 AC_CACHE_CHECK([for -R dynamic library path recording], rxvt_cv_R, 594 AC_CACHE_CHECK([for -R dynamic library path recording], rxvt_cv_R,
474[AC_TRY_RUN([ 595[AC_RUN_IFELSE([AC_LANG_SOURCE([[
475main() 596main()
476{ 597{
477 exit(0); 598 exit(0);
478 (void) XOpenDisplay("foobar"); 599 (void) XOpenDisplay("foobar");
479}], rxvt_cv_R=yes, rxvt_cv_R=no, rxvt_cv_R=no)]) 600}]])],[rxvt_cv_R=yes],[rxvt_cv_R=no],[rxvt_cv_R=no])])
480 if test x$rxvt_cv_R != xyes; then 601 if test x$rxvt_cv_R != xyes; then
481 LIBS="$ac_save_LIBS $X_LIBS $X_EXTRA_LIBS -lX11" 602 LIBS="$ac_save_LIBS $X_LIBS $X_EXTRA_LIBS -lX11"
482 fi 603 fi
483fi 604fi
484 605
485AC_CACHE_CHECK([for XPointer], rxvt_cv_xpointer, 606AC_CACHE_CHECK([for XPointer], rxvt_cv_xpointer,
486[AC_TRY_COMPILE([#include <X11/Xlib.h>], [XPointer dummy;], 607[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <X11/Xlib.h>]], [[XPointer dummy;]])],[rxvt_cv_xpointer=yes],[rxvt_cv_xpointer=no])])
487rxvt_cv_xpointer=yes, rxvt_cv_xpointer=no)])
488if test x$rxvt_cv_xpointer = xyes; then 608if test x$rxvt_cv_xpointer = xyes; then
489 AC_DEFINE(HAVE_XPOINTER, 1, Define if you have XPointer typedef) 609 AC_DEFINE(HAVE_XPOINTER, 1, Define if you have XPointer typedef)
490fi 610fi
491LIBS=$ac_save_LIBS 611LIBS=$ac_save_LIBS
492CFLAGS=$ac_save_CFLAGS 612CFLAGS=$ac_save_CFLAGS
505dnl> AC_CHECK_TYPE(umode_t, int) 625dnl> AC_CHECK_TYPE(umode_t, int)
506dnl> AC_CHECK_TYPE(off_t, long) 626dnl> AC_CHECK_TYPE(off_t, long)
507AC_TYPE_PID_T 627AC_TYPE_PID_T
508AC_TYPE_UID_T 628AC_TYPE_UID_T
509 629
510
511AC_CHECK_SIZEOF(char, 1)
512AC_CHECK_SIZEOF(short, 2) 630AC_CHECK_SIZEOF(short, 2)
513AC_CHECK_SIZEOF(int, 4) 631AC_CHECK_SIZEOF(int, 4)
514AC_CHECK_SIZEOF(long, 4) 632dnl AC_CHECK_SIZEOF(long, 4)
515AC_CHECK_SIZEOF(long long, 8) 633AC_CHECK_SIZEOF(long long, 8)
516AC_CHECK_SIZEOF(int *, 4) 634AC_CHECK_SIZEOF(int *, 4)
517 635
518dnl# see usage below 636dnl# see usage below
519AC_DEFUN(RXVT_CHECK_SIZE, 637AC_DEFUN(RXVT_CHECK_SIZE,
520 [AC_CACHE_CHECK([for $2], $1, 638 [AC_CACHE_CHECK([for $2], $1,
521 [AC_TRY_COMPILE([#include <stdint.h>], $2 dummy;, 639 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdint.h>]], [[$2 dummy;]])],[$1=yes],[dnl
522 [$1=yes],
523 [dnl
524if test $ac_cv_sizeof_char -ge $3; then 640if test "$ac_cv_sizeof_char" -ge $3; then
525 $1="$4 char" 641 $1="$4 char"
526else 642else
527 if test $ac_cv_sizeof_short -ge $3; then 643 if test "$ac_cv_sizeof_short" -ge $3; then
528 $1="$4 short" 644 $1="$4 short"
529 else 645 else
530 if test $ac_cv_sizeof_int -ge $3; then 646 if test "$ac_cv_sizeof_int" -ge $3; then
531 $1="$4 int" 647 $1="$4 int"
532 else 648 else
533 if test $ac_cv_sizeof_long -ge $3; then 649 if test "$ac_cv_sizeof_long" -ge $3; then
534 $1="$4 long" 650 $1="$4 long"
535 else 651 else
536 if test $ac_cv_sizeof_long_long -ge $3; then 652 if test "$ac_cv_sizeof_long_long" -ge $3; then
537 $1="$4 long long" 653 $1="$4 long long"
538 else 654 else
539 $1="$4 $5" # we _must_ have a (possibly wrong) default 655 $1="$4 $5" # we _must_ have a (possibly wrong) default
540 fi 656 fi
541 fi 657 fi
568dnl RXVT_CHECK_SIZE(rxvt_cv_uint64_t, uint64_t, 8, unsigned, long long, rxvt_uint64_typedef) 684dnl RXVT_CHECK_SIZE(rxvt_cv_uint64_t, uint64_t, 8, unsigned, long long, rxvt_uint64_typedef)
569dnl AC_SUBST(rxvt_uint64_typedef) 685dnl AC_SUBST(rxvt_uint64_typedef)
570dnl# 686dnl#
571dnl# Now look for another we use 687dnl# Now look for another we use
572dnl# 688dnl#
573if test $ac_cv_sizeof_int_p -eq 8; then 689if test "$ac_cv_sizeof_int_p" -eq 8; then
574 rxvt_intp_define="#define intp_t int64_t" 690 rxvt_intp_define="#define intp_t int64_t"
575 rxvt_u_intp_define="#define u_intp_t u_int64_t" 691 rxvt_u_intp_define="#define u_intp_t u_int64_t"
576else 692else
577 if test $ac_cv_sizeof_int_p -eq 4; then 693 if test "$ac_cv_sizeof_int_p" -eq 4; then
578 rxvt_intp_define="#define intp_t int32_t" 694 rxvt_intp_define="#define intp_t int32_t"
579 rxvt_u_intp_define="#define u_intp_t u_int32_t" 695 rxvt_u_intp_define="#define u_intp_t u_int32_t"
580 else 696 else
581 if test $ac_cv_sizeof_int_p -eq 2; then 697 if test "$ac_cv_sizeof_int_p" -eq 2; then
582 rxvt_intp_define="#define intp_t int16_t" 698 rxvt_intp_define="#define intp_t int16_t"
583 rxvt_u_intp_define="#define u_intp_t u_int16_t" 699 rxvt_u_intp_define="#define u_intp_t u_int16_t"
584 else 700 else
585 rxvt_intp_define="#error set intp_t" 701 rxvt_intp_define="#error set intp_t"
586 rxvt_u_intp_define="#error set u_intp_t" 702 rxvt_u_intp_define="#error set u_intp_t"
610 seteuid \ 726 seteuid \
611 setreuid \ 727 setreuid \
612 setsid \ 728 setsid \
613 setpgrp \ 729 setpgrp \
614 setpgid \ 730 setpgid \
615 openpty \
616 _getpty \ 731 _getpty \
732 posix_openpt \
617 grantpt \ 733 grantpt \
618 unlockpt \ 734 unlockpt \
619 isastream \ 735 isastream \
620 on_exit \ 736 on_exit \
621 nanosleep \ 737 nanosleep \
622 updwtmp \ 738 updwtmp \
739 updwtmpx \
623 ttyslot \ 740 ttyslot \
624) 741)
625dnl# Note: On NetBSD, openpty() exists in libutil. Don't pull it in
626 742
627dnl# -------------------------------------------------------------------------- 743dnl# --------------------------------------------------------------------------
628dnl# DO ALL UTMP AND WTMP CHECKING 744dnl# DO ALL UTMP AND WTMP CHECKING
629dnl# -------------------------------------------------------------------------- 745dnl# --------------------------------------------------------------------------
630dnl# check for host field in utmp structure 746dnl# check for host field in utmp structure
631 747
632dnl# -------------------------------------------- 748dnl# --------------------------------------------
633AC_CHECK_HEADER(utmp.h, 749AC_CHECK_HEADER(utmp.h,
634[AC_CACHE_CHECK([for struct utmp], rxvt_cv_struct_utmp, 750[AC_CACHE_CHECK([for struct utmp], rxvt_cv_struct_utmp,
635[AC_TRY_COMPILE([#include <sys/types.h> 751[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
636#include <stdint.h> 752#include <stdint.h>
637#include <utmp.h>], 753#include <utmp.h>]], [[struct utmp ut;]])],[rxvt_cv_struct_utmp=yes],[rxvt_cv_struct_utmp=no])])
638[struct utmp ut;],
639rxvt_cv_struct_utmp=yes, rxvt_cv_struct_utmp=no)])
640if test x$rxvt_cv_struct_utmp = xyes; then 754if test x$rxvt_cv_struct_utmp = xyes; then
641 AC_DEFINE(HAVE_STRUCT_UTMP, 1, Define if utmp.h has struct utmp) 755 AC_DEFINE(HAVE_STRUCT_UTMP, 1, Define if utmp.h has struct utmp)
642fi 756fi
643] 757]
644 758
645AC_CACHE_CHECK(for ut_host in utmp struct, rxvt_cv_struct_utmp_host, 759AC_CACHE_CHECK(for ut_host in utmp struct, rxvt_cv_struct_utmp_host,
646[AC_TRY_COMPILE([#include <sys/types.h> 760[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
647#include <utmp.h>], 761#include <utmp.h>]], [[struct utmp ut; ut.ut_host;]])],[rxvt_cv_struct_utmp_host=yes],[rxvt_cv_struct_utmp_host=no])])
648[struct utmp ut; ut.ut_host;],
649rxvt_cv_struct_utmp_host=yes, rxvt_cv_struct_utmp_host=no)])
650if test x$rxvt_cv_struct_utmp_host = xyes; then 762if test x$rxvt_cv_struct_utmp_host = xyes; then
651 AC_DEFINE(HAVE_UTMP_HOST, 1, Define if struct utmp contains ut_host) 763 AC_DEFINE(HAVE_UTMP_HOST, 1, Define if struct utmp contains ut_host)
652fi 764fi
653 765
654AC_CACHE_CHECK(for ut_pid in utmp struct, rxvt_cv_struct_utmp_pid, 766AC_CACHE_CHECK(for ut_pid in utmp struct, rxvt_cv_struct_utmp_pid,
655[AC_TRY_COMPILE([#include <sys/types.h> 767[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
656#include <utmp.h>], 768#include <utmp.h>]], [[struct utmp ut; ut.ut_pid;]])],[rxvt_cv_struct_utmp_pid=yes],[rxvt_cv_struct_utmp_pid=no])])
657[struct utmp ut; ut.ut_pid;],
658rxvt_cv_struct_utmp_pid=yes, rxvt_cv_struct_utmp_pid=no)])
659if test x$rxvt_cv_struct_utmp_pid = xyes; then 769if test x$rxvt_cv_struct_utmp_pid = xyes; then
660 AC_DEFINE(HAVE_UTMP_PID, 1, Define if struct utmp contains ut_pid) 770 AC_DEFINE(HAVE_UTMP_PID, 1, Define if struct utmp contains ut_pid)
661fi 771fi
662) dnl# AC_CHECK_HEADER(utmp.h 772) dnl# AC_CHECK_HEADER(utmp.h
663 773
664dnl# -------------------------------------------- 774dnl# --------------------------------------------
665 775
666AC_CHECK_HEADER(utmpx.h, 776AC_CHECK_HEADER(utmpx.h,
667[AC_CACHE_CHECK([for struct utmpx], rxvt_cv_struct_utmpx, 777[AC_CACHE_CHECK([for struct utmpx], rxvt_cv_struct_utmpx,
778[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
779#include <utmpx.h>]], [[struct utmpx ut;]])],[rxvt_cv_struct_utmpx=yes],[rxvt_cv_struct_utmpx=no])])
780if test x$rxvt_cv_struct_utmpx = xyes; then
781 AC_DEFINE(HAVE_STRUCT_UTMPX, 1, Define if utmpx.h has struct utmpx)
782fi
783]
784
785AC_CACHE_CHECK(for host in utmpx struct, rxvt_cv_struct_utmpx_host,
786[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
787#include <utmpx.h>]], [[struct utmpx utx; utx.ut_host;]])],[rxvt_cv_struct_utmpx_host=yes],[rxvt_cv_struct_utmpx_host=no])])
788if test x$rxvt_cv_struct_utmpx_host = xyes; then
789 AC_DEFINE(HAVE_UTMPX_HOST, 1, Define if struct utmpx contains ut_host)
790fi
791
792AC_CACHE_CHECK(for session in utmpx struct, rxvt_cv_struct_utmpx_session,
668[AC_TRY_COMPILE([#include <sys/types.h> 793[AC_TRY_COMPILE([#include <sys/types.h>
669#include <utmpx.h>], 794#include <utmpx.h>],
670[struct utmpx ut;], 795[struct utmpx utx; utx.ut_session;],
671rxvt_cv_struct_utmpx=yes, rxvt_cv_struct_utmpx=no)]) 796rxvt_cv_struct_utmpx_session=yes, rxvt_cv_struct_utmpx_session=no)])
672if test x$rxvt_cv_struct_utmpx = xyes; then 797if test x$rxvt_cv_struct_utmpx_session = xyes; then
673 AC_DEFINE(HAVE_STRUCT_UTMPX, 1, Define if utmpx.h has struct utmpx)
674fi
675]
676
677AC_CACHE_CHECK(for host in utmpx struct, rxvt_cv_struct_utmpx_host,
678[AC_TRY_COMPILE([#include <sys/types.h>
679#include <utmpx.h>],
680[struct utmpx utx; utx.ut_host;],
681rxvt_cv_struct_utmpx_host=yes, rxvt_cv_struct_utmpx_host=no)])
682if test x$rxvt_cv_struct_utmpx_host = xyes; then
683 AC_DEFINE(HAVE_UTMPX_HOST, 1, Define if struct utmpx contains ut_host) 798 AC_DEFINE(HAVE_UTMPX_SESSION, 1, Define if struct utmpx contains ut_session)
684fi 799fi
685) dnl# AC_CHECK_HEADER(utmpx.h 800) dnl# AC_CHECK_HEADER(utmpx.h
686
687 801
688dnl# -------------------------------------------------------------------------- 802dnl# --------------------------------------------------------------------------
689dnl# check for struct lastlog 803dnl# check for struct lastlog
690AC_CACHE_CHECK(for struct lastlog, rxvt_cv_struct_lastlog, 804AC_CACHE_CHECK(for struct lastlog, rxvt_cv_struct_lastlog,
691[AC_TRY_COMPILE([#include <sys/types.h> 805[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
692#include <utmp.h> 806#include <utmp.h>
693#ifdef HAVE_LASTLOG_H 807#ifdef HAVE_LASTLOG_H
694#include <lastlog.h> 808#include <lastlog.h>
695#endif 809#endif
696],
697[struct lastlog ll;],
698rxvt_cv_struct_lastlog=yes, rxvt_cv_struct_lastlog=no)]) 810]], [[struct lastlog ll;]])],[rxvt_cv_struct_lastlog=yes],[rxvt_cv_struct_lastlog=no])])
699if test x$rxvt_cv_struct_lastlog = xyes; then 811if test x$rxvt_cv_struct_lastlog = xyes; then
700 AC_DEFINE(HAVE_STRUCT_LASTLOG, 1, Define if utmp.h or lastlog.h has struct lastlog) 812 AC_DEFINE(HAVE_STRUCT_LASTLOG, 1, Define if utmp.h or lastlog.h has struct lastlog)
701fi 813fi
702 814
703dnl# check for struct lastlogx 815dnl# check for struct lastlogx
704AC_CACHE_CHECK(for struct lastlogx, rxvt_cv_struct_lastlogx, 816AC_CACHE_CHECK(for struct lastlogx, rxvt_cv_struct_lastlogx,
705[AC_TRY_COMPILE([#include <sys/types.h> 817[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
706#include <utmpx.h> 818#include <utmpx.h>
707#ifdef HAVE_LASTLOG_H 819#ifdef HAVE_LASTLOG_H
708#include <lastlog.h> 820#include <lastlog.h>
709#endif 821#endif
710],
711[struct lastlogx ll;],
712rxvt_cv_struct_lastlogx=yes, rxvt_cv_struct_lastlogx=no)]) 822]], [[struct lastlogx ll;]])],[rxvt_cv_struct_lastlogx=yes],[rxvt_cv_struct_lastlogx=no])])
713if test x$rxvt_cv_struct_lastlogx = xyes; then 823if test x$rxvt_cv_struct_lastlogx = xyes; then
714 AC_DEFINE(HAVE_STRUCT_LASTLOGX, 1, Define if utmpx.h or lastlog.h has struct lastlogx) 824 AC_DEFINE(HAVE_STRUCT_LASTLOGX, 1, Define if utmpx.h or lastlog.h has struct lastlogx)
715fi 825fi
716 826
717dnl# -------------------------------------------------------------------------- 827dnl# --------------------------------------------------------------------------
718dnl# FIND FILES 828dnl# FIND FILES
719dnl# -------------------------------------------------------------------------- 829dnl# --------------------------------------------------------------------------
720 830
721dnl# find utmp 831dnl# find utmp
722AC_CACHE_CHECK(where utmp is located, rxvt_cv_path_utmp, 832AC_CACHE_CHECK(where utmp is located, rxvt_cv_path_utmp,
723[AC_TRY_RUN([#include <stdio.h> 833[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
724#include <sys/types.h> 834#include <sys/types.h>
725#include <utmp.h> 835#include <utmp.h>
726#include <errno.h> 836#include <errno.h>
727main() 837main()
728{ 838{
743 fprintf(f, "%s\n", *u); 853 fprintf(f, "%s\n", *u);
744 exit(0); 854 exit(0);
745 } 855 }
746 } 856 }
747 exit(0); 857 exit(0);
748}], rxvt_cv_path_utmp=`cat conftestval`, rxvt_cv_path_utmp=, dnl 858}]])],[rxvt_cv_path_utmp=`cat conftestval`],[rxvt_cv_path_utmp=],[dnl
749 AC_MSG_WARN([Define RXVT_UTMP_FILE in config.h manually]))]) 859 AC_MSG_WARN(Define RXVT_UTMP_FILE in config.h manually)])])
750if test x$rxvt_cv_path_utmp != x; then 860if test x$rxvt_cv_path_utmp != x; then
751 AC_DEFINE_UNQUOTED(RXVT_UTMP_FILE, "$rxvt_cv_path_utmp", Define location of utmp) 861 AC_DEFINE_UNQUOTED(RXVT_UTMP_FILE, "$rxvt_cv_path_utmp", Define location of utmp)
752fi 862fi
753 863
754dnl# -------------------------------------------------------------------------- 864dnl# --------------------------------------------------------------------------
755 865
756dnl# find utmpx - if a utmp file exists at the same location and is more than 866dnl# find utmpx - if a utmp file exists at the same location and is more than
757dnl# a day newer, then dump the utmpx. People leave lots of junk around. 867dnl# a day newer, then dump the utmpx. People leave lots of junk around.
758AC_CACHE_CHECK(where utmpx is located, rxvt_cv_path_utmpx, 868AC_CACHE_CHECK(where utmpx is located, rxvt_cv_path_utmpx,
759[AC_TRY_RUN([#include <stdio.h> 869[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
760#include <sys/types.h> 870#include <sys/types.h>
761#include <utmpx.h> 871#include <utmpx.h>
762#include <errno.h> 872#include <errno.h>
763#include <sys/stat.h> 873#include <sys/stat.h>
764#ifdef HAVE_STRING_H 874#ifdef HAVE_STRING_H
789 fprintf(f, "%s\n", *u); 899 fprintf(f, "%s\n", *u);
790 exit(0); 900 exit(0);
791 } 901 }
792 } 902 }
793 exit(0); 903 exit(0);
794}], rxvt_cv_path_utmpx=`cat conftestval`, rxvt_cv_path_utmpx=, dnl 904}]])],[rxvt_cv_path_utmpx=`cat conftestval`],[rxvt_cv_path_utmpx=],[dnl
795 AC_MSG_WARN([Define RXVT_UTMPX_FILE in config.h manually]))]) 905 AC_MSG_WARN(Define RXVT_UTMPX_FILE in config.h manually)])])
796if test x$rxvt_cv_path_utmpx != x; then 906if test x$rxvt_cv_path_utmpx != x; then
797 AC_DEFINE_UNQUOTED(RXVT_UTMPX_FILE, "$rxvt_cv_path_utmpx", Define location of utmpx) 907 AC_DEFINE_UNQUOTED(RXVT_UTMPX_FILE, "$rxvt_cv_path_utmpx", Define location of utmpx)
798fi 908fi
799 909
800dnl# -------------------------------------------------------------------------- 910dnl# --------------------------------------------------------------------------
801 911
802dnl# find wtmp 912dnl# find wtmp
803AC_CACHE_CHECK(where wtmp is located, rxvt_cv_path_wtmp, 913AC_CACHE_CHECK(where wtmp is located, rxvt_cv_path_wtmp,
804[AC_TRY_RUN([#include <stdio.h> 914[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
805#include <sys/types.h> 915#include <sys/types.h>
806#ifdef HAVE_UTMP_H 916#ifdef HAVE_UTMP_H
807#include <utmp.h> 917#include <utmp.h>
808#endif 918#endif
809#include <errno.h> 919#include <errno.h>
826 fprintf(f, "%s\n", *w); 936 fprintf(f, "%s\n", *w);
827 exit(0); 937 exit(0);
828 } 938 }
829 } 939 }
830 exit(0); 940 exit(0);
831}], rxvt_cv_path_wtmp=`cat conftestval`, rxvt_cv_path_wtmp=, dnl 941}]])],[rxvt_cv_path_wtmp=`cat conftestval`],[rxvt_cv_path_wtmp=],[dnl
832 AC_MSG_WARN([Define RXVT_WTMP_FILE in config.h manually]))]) 942 AC_MSG_WARN(Define RXVT_WTMP_FILE in config.h manually)])])
833if test x$rxvt_cv_path_wtmp != x; then 943if test x$rxvt_cv_path_wtmp != x; then
834 AC_DEFINE_UNQUOTED(RXVT_WTMP_FILE, "$rxvt_cv_path_wtmp", Define location of wtmp) 944 AC_DEFINE_UNQUOTED(RXVT_WTMP_FILE, "$rxvt_cv_path_wtmp", Define location of wtmp)
835fi 945fi
836dnl# -------------------------------------------------------------------------- 946dnl# --------------------------------------------------------------------------
837 947
838dnl# find wtmpx 948dnl# find wtmpx
839AC_CACHE_CHECK(where wtmpx is located, rxvt_cv_path_wtmpx, 949AC_CACHE_CHECK(where wtmpx is located, rxvt_cv_path_wtmpx,
840[AC_TRY_RUN([#include <stdio.h> 950[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
841#ifdef HAVE_UTMPX_H 951#ifdef HAVE_UTMPX_H
842#include <utmpx.h> 952#include <utmpx.h>
843#endif 953#endif
844#include <errno.h> 954#include <errno.h>
845main() 955main()
861 fprintf(f, "%s\n", *w); 971 fprintf(f, "%s\n", *w);
862 exit(0); 972 exit(0);
863 } 973 }
864 } 974 }
865 exit(0); 975 exit(0);
866}], rxvt_cv_path_wtmpx=`cat conftestval`, rxvt_cv_path_wtmpx=, dnl 976}]])],[rxvt_cv_path_wtmpx=`cat conftestval`],[rxvt_cv_path_wtmpx=],[dnl
867 AC_MSG_WARN([Define RXVT_WTMPX_FILE in config.h manually]))]) 977 AC_MSG_WARN(Define RXVT_WTMPX_FILE in config.h manually)])])
868if test x$rxvt_cv_path_wtmpx != x; then 978if test x$rxvt_cv_path_wtmpx != x; then
869 AC_DEFINE_UNQUOTED(RXVT_WTMPX_FILE, "$rxvt_cv_path_wtmpx", Define location of wtmpx) 979 AC_DEFINE_UNQUOTED(RXVT_WTMPX_FILE, "$rxvt_cv_path_wtmpx", Define location of wtmpx)
870fi 980fi
871dnl# -------------------------------------------------------------------------- 981dnl# --------------------------------------------------------------------------
872 982
873dnl# find lastlog 983dnl# find lastlog
874AC_CACHE_CHECK(where lastlog is located, rxvt_cv_path_lastlog, 984AC_CACHE_CHECK(where lastlog is located, rxvt_cv_path_lastlog,
875[AC_TRY_RUN([#include <stdio.h> 985[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
876#include <sys/types.h> 986#include <sys/types.h>
877#ifdef HAVE_UTMPX_H 987#ifdef HAVE_UTMPX_H
878#include <utmpx.h> 988#include <utmpx.h>
879#elif defined(HAVE_UTMP_H) 989#elif defined(HAVE_UTMP_H)
880#include <utmp.h> 990#include <utmp.h>
901 fprintf(f, "%s\n", *w); 1011 fprintf(f, "%s\n", *w);
902 exit(0); 1012 exit(0);
903 } 1013 }
904 } 1014 }
905 exit(0); 1015 exit(0);
906}], rxvt_cv_path_lastlog=`cat conftestval`, rxvt_cv_path_lastlog=, dnl 1016}]])],[rxvt_cv_path_lastlog=`cat conftestval`],[rxvt_cv_path_lastlog=],[dnl
907 AC_MSG_WARN([Define RXVT_LASTLOG_FILE in config.h manually]))]) 1017 AC_MSG_WARN(Define RXVT_LASTLOG_FILE in config.h manually)])])
908if test x$rxvt_cv_path_lastlog != x; then 1018if test x$rxvt_cv_path_lastlog != x; then
909 AC_DEFINE_UNQUOTED(RXVT_LASTLOG_FILE, "$rxvt_cv_path_lastlog", Define location of lastlog) 1019 AC_DEFINE_UNQUOTED(RXVT_LASTLOG_FILE, "$rxvt_cv_path_lastlog", Define location of lastlog)
910 if test -d "$rxvt_cv_path_lastlog"; then 1020 if test -d "$rxvt_cv_path_lastlog"; then
911 AC_DEFINE(LASTLOG_IS_DIR, 1, Define if lastlog is provided via a directory) 1021 AC_DEFINE(LASTLOG_IS_DIR, 1, Define if lastlog is provided via a directory)
912 fi 1022 fi
913fi 1023fi
914dnl# -------------------------------------------------------------------------- 1024dnl# --------------------------------------------------------------------------
915 1025
916dnl# find lastlogx 1026dnl# find lastlogx
917AC_CACHE_CHECK(where lastlogx is located, rxvt_cv_path_lastlogx, 1027AC_CACHE_CHECK(where lastlogx is located, rxvt_cv_path_lastlogx,
918[AC_TRY_RUN([#include <stdio.h> 1028[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
919#ifdef HAVE_UTMPX_H 1029#ifdef HAVE_UTMPX_H
920#include <utmpx.h> 1030#include <utmpx.h>
921#endif 1031#endif
922#include <errno.h> 1032#include <errno.h>
923main() 1033main()
938 fprintf(f, "%s\n", *w); 1048 fprintf(f, "%s\n", *w);
939 exit(0); 1049 exit(0);
940 } 1050 }
941 } 1051 }
942 exit(0); 1052 exit(0);
943}], rxvt_cv_path_lastlogx=`cat conftestval`, rxvt_cv_path_lastlogx=, dnl 1053}]])],[rxvt_cv_path_lastlogx=`cat conftestval`],[rxvt_cv_path_lastlogx=],[dnl
944 AC_MSG_WARN([Define RXVT_LASTLOGX_FILE in config.h manually]))]) 1054 AC_MSG_WARN(Define RXVT_LASTLOGX_FILE in config.h manually)])])
945if test x$rxvt_cv_path_lastlogx != x; then 1055if test x$rxvt_cv_path_lastlogx != x; then
946 AC_DEFINE_UNQUOTED(RXVT_LASTLOGX_FILE, "$rxvt_cv_path_lastlogx", Define location of lastlogx) 1056 AC_DEFINE_UNQUOTED(RXVT_LASTLOGX_FILE, "$rxvt_cv_path_lastlogx", Define location of lastlogx)
947fi 1057fi
948 1058
949dnl# -------------------------------------------------------------------------- 1059dnl# --------------------------------------------------------------------------
973LIBS="$LIBS $X_LIBS $X_EXTRA_LIBS -lX11" 1083LIBS="$LIBS $X_LIBS $X_EXTRA_LIBS -lX11"
974if test x$rxvt_cv_rpath = xyes -o x$rxvt_cv_R = xyes; then 1084if test x$rxvt_cv_rpath = xyes -o x$rxvt_cv_R = xyes; then
975 LIBS=`echo $LIBS | sed "$R_TRANSLATE"` 1085 LIBS=`echo $LIBS | sed "$R_TRANSLATE"`
976fi 1086fi
977AC_CACHE_CHECK(for working Xlocale, rxvt_cv_func_xlocale, 1087AC_CACHE_CHECK(for working Xlocale, rxvt_cv_func_xlocale,
978[AC_TRY_RUN([#include <X11/Xlib.h> 1088[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <X11/Xlib.h>
979main() { 1089main() {
980char *p; 1090char *p;
981if ((p = XSetLocaleModifiers("@im=none")) != NULL && *p) 1091if ((p = XSetLocaleModifiers("@im=none")) != NULL && *p)
982exit (XSupportsLocale() ? 0 : 1); 1092exit (XSupportsLocale() ? 0 : 1);
983else 1093else
984exit (1);}], dnl 1094exit (1);}]])],[dnl
985 rxvt_cv_func_xlocale=yes, rxvt_cv_func_xlocale=no, dnl 1095 rxvt_cv_func_xlocale=yes],[rxvt_cv_func_xlocale=no],[dnl
986 AC_MSG_WARN([Define NO_XLOCALE in config.h manually]))]) 1096 AC_MSG_WARN(Define NO_XLOCALE in config.h manually)])])
987if test x$rxvt_cv_func_xlocale = xyes; then 1097if test x$rxvt_cv_func_xlocale = xyes; then
988 AC_DEFINE(HAVE_XLOCALE, 1, Define if Xlocale support works) 1098 AC_DEFINE(HAVE_XLOCALE, 1, Define if Xlocale support works)
989fi 1099fi
990 1100
991AC_CACHE_CHECK(for working X setlocale, rxvt_cv_func_xsetlocale, 1101AC_CACHE_CHECK(for working X setlocale, rxvt_cv_func_xsetlocale,
992[AC_TRY_LINK([#define X_LOCALE 1 1102[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define X_LOCALE 1
993#include <X11/Xlocale.h>], 1103#include <X11/Xlocale.h>]], [[setlocale(LC_CTYPE, "");]])],[rxvt_cv_func_xsetlocale=yes],[rxvt_cv_func_xsetlocale=no])])
994 [setlocale(LC_CTYPE, "");],
995 rxvt_cv_func_xsetlocale=yes, rxvt_cv_func_xsetlocale=no)])
996if test x$rxvt_cv_func_xsetlocale = xyes; then 1104if test x$rxvt_cv_func_xsetlocale = xyes; then
997 AC_DEFINE(HAVE_XSETLOCALE, 1, Define if setlocale (defined to Xsetlocale) works) 1105 AC_DEFINE(HAVE_XSETLOCALE, 1, Define if setlocale (defined to Xsetlocale) works)
998fi 1106fi
999LIBS=$ac_save_LIBS 1107LIBS=$ac_save_LIBS
1000CFLAGS=$ac_save_CFLAGS 1108CFLAGS=$ac_save_CFLAGS
1001 1109
1002AC_CACHE_CHECK(for working plain setlocale, rxvt_cv_func_setlocale, 1110AC_CACHE_CHECK(for working plain setlocale, rxvt_cv_func_setlocale,
1003[AC_TRY_LINK([#include <locale.h>], 1111[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <clocale>]], [[setlocale(LC_CTYPE, "");]])],[rxvt_cv_func_setlocale=yes],[rxvt_cv_func_setlocale=no])])
1004 [setlocale(LC_CTYPE, "");],
1005 rxvt_cv_func_setlocale=yes, rxvt_cv_func_setlocale=no)])
1006if test x$rxvt_cv_func_setlocale = xyes; then 1112if test x$rxvt_cv_func_setlocale = xyes; then
1007 AC_DEFINE(HAVE_SETLOCALE, 1, Define if plain old setlocale works) 1113 AC_DEFINE(HAVE_SETLOCALE, 1, Define if plain old setlocale works)
1008fi 1114fi
1009 1115
1010AC_CACHE_CHECK(for working nl_langinfo, rxvt_cv_func_nl_langinfo, 1116AC_CACHE_CHECK(for working nl_langinfo, rxvt_cv_func_nl_langinfo,
1011[AC_TRY_LINK([#include <langinfo.h>], 1117[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <langinfo.h>]], [[nl_langinfo(CODESET);]])],[rxvt_cv_func_nl_langinfo=yes],[rxvt_cv_func_nl_langinfo=no])])
1012 [nl_langinfo(CODESET);],
1013 rxvt_cv_func_nl_langinfo=yes, rxvt_cv_func_nl_langinfo=no)])
1014if test x$rxvt_cv_func_nl_langinfo = xyes; then 1118if test x$rxvt_cv_func_nl_langinfo = xyes; then
1015 AC_DEFINE(HAVE_NL_LANGINFO, 1, Define if nl_langinfo(CODESET) works) 1119 AC_DEFINE(HAVE_NL_LANGINFO, 1, Define if nl_langinfo(CODESET) works)
1016fi 1120fi
1017 1121
1018AC_CACHE_CHECK(for getpt, rxvt_cv_func_getpt, 1122AC_CACHE_CHECK(for unix-compliant filehandle passing ability, rxvt_can_pass_fds,
1019[AC_TRY_LINK([#define _GNU_SOURCE 1123[AC_TRY_LINK([
1020#ifdef HAVE_STDLIB_H 1124#include <sys/types.h>
1125#include <sys/socket.h>
1126],[
1127{
1128 msghdr msg;
1129 iovec iov;
1130 char buf [100];
1131 char data = 0;
1132
1133 iov.iov_base = &data;
1134 iov.iov_len = 1;
1135
1136 msg.msg_iov = &iov;
1137 msg.msg_iovlen = 1;
1138 msg.msg_control = buf;
1139 msg.msg_controllen = sizeof buf;
1140
1141 cmsghdr *cmsg = CMSG_FIRSTHDR (&msg);
1142 cmsg->cmsg_level = SOL_SOCKET;
1143 cmsg->cmsg_type = SCM_RIGHTS;
1144 cmsg->cmsg_len = 100;
1145
1146 *(int *)CMSG_DATA (cmsg) = 5;
1147
1148 return sendmsg (3, &msg, 0);
1149}
1150],[rxvt_can_pass_fds=yes],[rxvt_can_pass_fds=no])])
1151if test x$rxvt_can_pass_fds = xyes; then
1152 AC_DEFINE(HAVE_UNIX_FDPASS, 1, Define if sys/socket.h defines the necessary macros/functions for file handle passing)
1153fi
1154
1155AC_CACHE_CHECK(for broken XIM callback, rxvt_broken_ximcb,
1156[AC_COMPILE_IFELSE([
1021# include <stdlib.h> 1157#include <X11/Xlib.h>
1022#endif], 1158
1023 [(void)getpt();], 1159void im_destroy_cb (XIC unused1, XPointer client_data, XPointer unused3);
1024 rxvt_cv_func_getpt=yes, rxvt_cv_func_getpt=no)]) 1160
1025if test x$rxvt_cv_func_getpt = xyes; then 1161void f() {
1026 AC_DEFINE(HAVE_GETPT, 1, Define if you have _GNU_SOURCE getpt() ) 1162 XIMCallback cb;
1163 cb.callback = im_destroy_cb;
1164}
1165],rxvt_broken_ximcb=yes,rxvt_broken_ximcb=no)])
1166
1167if test x$rxvt_broken_ximcb = xyes; then
1168 AC_DEFINE(XIMCB_PROTO_BROKEN, 1, Define if your XIMCallback specifies XIC as first type.)
1169fi
1170
1171if test x$ac_cv_func_posix_openpt = xno; then
1172 AC_CHECK_FUNC(openpty, [], [AC_CHECK_LIB(util, openpty, [LIBS="$LIBS -lutil"])])
1027fi 1173fi
1028 1174
1029dnl# if we don't guess right then it's up to the user 1175dnl# if we don't guess right then it's up to the user
1030AC_CACHE_CHECK(for pty/tty type, rxvt_cv_ptys, 1176AC_CACHE_CHECK(for pty/tty type, rxvt_cv_ptys,
1031[if test x$ac_cv_func_openpty = xyes; then 1177[if test x$ac_cv_func_openpty = xyes -o x$ac_cv_lib_util_openpty = xyes; then
1032 rxvt_cv_ptys=OPENPTY 1178 rxvt_cv_ptys=OPENPTY
1179 else if test x$ac_cv_func_posix_openpt = xyes; then
1180 rxvt_cv_ptys=POSIX
1033 else if test x$ac_cv_func__getpty = xyes; then 1181 else if test x$ac_cv_func__getpty = xyes; then
1034 rxvt_cv_ptys=SGI4 1182 rxvt_cv_ptys=SGI4
1035 else if test -c /dev/ttyp20; then 1183 else if test -c /dev/ttyp20; then
1036 rxvt_cv_ptys=SCO 1184 rxvt_cv_ptys=SCO
1037 else if test -c /dev/ptym/clone; then 1185 else if test -c /dev/ptym/clone; then
1038 rxvt_cv_ptys=HPUX 1186 rxvt_cv_ptys=HPUX
1039 else if test x$rxvt_cv_func_getpt = xyes; then
1040 rxvt_cv_ptys=GLIBC
1041 else if test -c /dev/ptc -a -c /dev/pts; then 1187 else if test -c /dev/ptc -a -c /dev/pts; then
1042 rxvt_cv_ptys=PTC 1188 rxvt_cv_ptys=PTC
1043 else if test -c /dev/ptc -a -d /dev/pts; then 1189 else if test -c /dev/ptc -a -d /dev/pts; then
1044 rxvt_cv_ptys=PTC 1190 rxvt_cv_ptys=PTC
1045 else if test -c /dev/ptmx -a -c /dev/pts/0; then 1191 else if test -c /dev/ptmx -a -c /dev/pts/0; then
1058fi 1204fi
1059fi 1205fi
1060fi 1206fi
1061]) 1207])
1062 1208
1209if test x$rxvt_cv_ptys = xPOSIX; then
1210 AC_DEFINE(PTYS_ARE_POSIX, 1, Define for this pty type)
1211fi
1063if test x$rxvt_cv_ptys = xOPENPTY; then 1212if test x$rxvt_cv_ptys = xOPENPTY; then
1064 AC_DEFINE(PTYS_ARE_OPENPTY, 1, Define for this pty type) 1213 AC_DEFINE(PTYS_ARE_OPENPTY, 1, Define for this pty type)
1065fi 1214fi
1066if test x$rxvt_cv_ptys = xSCO; then 1215if test x$rxvt_cv_ptys = xSCO; then
1067 AC_DEFINE(PTYS_ARE_NUMERIC, 1, Define for this pty type) 1216 AC_DEFINE(PTYS_ARE_NUMERIC, 1, Define for this pty type)
1073 AC_DEFINE(PTYS_ARE_PTC, 1, Define for this pty type) 1222 AC_DEFINE(PTYS_ARE_PTC, 1, Define for this pty type)
1074fi 1223fi
1075if test x$rxvt_cv_ptys = xSGI4; then 1224if test x$rxvt_cv_ptys = xSGI4; then
1076 AC_DEFINE(PTYS_ARE__GETPTY, 1, Define for this pty type) 1225 AC_DEFINE(PTYS_ARE__GETPTY, 1, Define for this pty type)
1077fi 1226fi
1078if test x$rxvt_cv_ptys = xCONVEX; then
1079 AC_DEFINE(PTYS_ARE_GETPTY, 1, Define for this pty type)
1080fi
1081if test x$rxvt_cv_ptys = xGLIBC; then
1082 AC_DEFINE(PTYS_ARE_GETPT, 1, Define for this pty type)
1083fi
1084if test x$rxvt_cv_ptys = xHPUX; then 1227if test x$rxvt_cv_ptys = xHPUX; then
1085 AC_DEFINE(PTYS_ARE_CLONE, 1, Define for this pty type) 1228 AC_DEFINE(PTYS_ARE_CLONE, 1, Define for this pty type)
1086fi 1229fi
1087if test x$rxvt_cv_ptys = xBSD -o x$rxvt_cv_ptys = xHPUX -o x$rxvt_cv_ptys = xGLIBC; then 1230if test x$rxvt_cv_ptys = xBSD -o x$rxvt_cv_ptys = xHPUX -o x$rxvt_cv_ptys = xPOSIX; then
1088 AC_DEFINE(PTYS_ARE_SEARCHED, 1, Define for this pty type) 1231 AC_DEFINE(PTYS_ARE_SEARCHED, 1, Define for this pty type)
1089fi 1232fi
1090 1233
1091 1234
1092AC_CHECKING(for pty ranges) 1235AS_MESSAGE(checking for pty ranges...)
1093ptys=`echo /dev/pty??` 1236ptys=`echo /dev/pty??`
1094pch1=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\).$/\1/g' | sort -u | tr -d '\012'` 1237pch1=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\).$/\1/g' | sort -u | tr -d '\012'`
1095pch2=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\)$/\1/g' | sort -u | tr -d '\012'` 1238pch2=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\)$/\1/g' | sort -u | tr -d '\012'`
1096if test x$pch1 != x; then 1239if test x$pch1 != x; then
1097 AC_DEFINE_UNQUOTED(PTYCHAR1, "$pch1", Define for first char in devptyXX) 1240 AC_DEFINE_UNQUOTED(PTYCHAR1, "$pch1", Define for first char in devptyXX)
1098fi 1241fi
1099if test x$pch2 != x; then 1242if test x$pch2 != x; then
1100 AC_DEFINE_UNQUOTED(PTYCHAR2, "$pch2", Define for second char in devptyXX) 1243 AC_DEFINE_UNQUOTED(PTYCHAR2, "$pch2", Define for second char in devptyXX)
1101fi 1244fi
1102 1245
1103dnl# FreeBSD needs to link libxpg4
1104AC_CHECK_LIB(xpg4, setlocale, [LIBS="$LIBS -lxpg4"])
1105
1106dnl# -------------------------------------------------------------------------- 1246dnl# --------------------------------------------------------------------------
1107dnl# now add and remove other stuff 1247dnl# now add and remove other stuff
1108dnl# -------------------------------------------------------------------------- 1248dnl# --------------------------------------------------------------------------
1249if test x$support_xft = xyes; then
1250 LIBS="$LIBS `pkg-config xft --libs`"
1251 CPPFLAGS="$CPPFLAGS `pkg-config xft --cflags`"
1252
1253 AC_CHECK_HEADERS(X11/Xft/Xft.h,,[support_xft=no])
1254 AC_CHECK_LIB(Xft,XftDrawString32,,[support_xft=no])
1255
1256 if test x$support_xft = xyes; then
1257 AC_DEFINE(XFT, 1, Define to enable xft support)
1258 fi
1259fi
1260if test x$support_styles = xyes; then
1261 AC_DEFINE(ENABLE_STYLES, 1, Define if you want bold and italic support)
1262fi
1263if test x$support_iso14755 = xyes; then
1264 AC_DEFINE(ISO_14755, 1, Define if you want ISO 14755 extended support)
1265fi
1266if test x$support_8bitctrls = xyes; then
1267 AC_DEFINE(EIGHT_BIT_CONTROLS, 1, Define if you want 8 bit control sequences)
1268fi
1269if test x$support_fading = xyes; then
1270 AC_DEFINE(OFF_FOCUS_FADING, 1, Define if you want faded colors when focus is lost)
1271fi
1272if test x$support_tinting = xyes; then
1273 AC_DEFINE(TINTING, 1, Define if you want your background to be tinted)
1274fi
1109if test x$support_inheritpixmap = xyes; then 1275if test x$support_inheritpixmap = xyes; then
1110 AC_DEFINE(TRANSPARENT, 1, Define if you want your background to use the parent window background) 1276 AC_DEFINE(TRANSPARENT, 1, Define if you want your background to use the parent window background)
1111fi 1277fi
1112if test x$support_keepscrolling = xno; then 1278if test x$support_keepscrolling = xno; then
1113 AC_DEFINE(NO_SCROLLBAR_BUTTON_CONTINUAL_SCROLLING, 1, Define for continual scrolling when you keep the scrollbar button pressed) 1279 AC_DEFINE(NO_SCROLLBAR_BUTTON_CONTINUAL_SCROLLING, 1, Define for continual scrolling when you keep the scrollbar button pressed)
1114fi 1280fi
1115if test x$support_selectionscrolling = xyes; then 1281if test x$support_selectionscrolling = xyes; then
1116 AC_DEFINE(SELECTION_SCROLLING, 1, Define to allow scrolling when the selection moves to the top or bottom of the screen) 1282 AC_DEFINE(SELECTION_SCROLLING, 1, Define to allow scrolling when the selection moves to the top or bottom of the screen)
1117fi 1283fi
1118if test x$support_menubar = xyes; then
1119 AC_DEFINE(MENUBAR, 1, Define if you want Menubar support)
1120fi
1121if test x$support_frills = xno; then 1284if test x$support_frills = xyes; then
1122 AC_DEFINE(NO_FRILLS, 1, Define if you don't want handling for rarely used features) 1285 AC_DEFINE(ENABLE_FRILLS, 1, Define if you want handling for rarely used but handy features)
1123fi
1124if test x$support_linespace = xno; then
1125 AC_DEFINE(NO_LINESPACE, 1, Define if you don't want support linespace)
1126fi 1286fi
1127if test x$support_24bit = xyes; then 1287if test x$support_24bit = xyes; then
1128 AC_DEFINE(PREFER_24BIT, 1, Define to use a 24 bit visual if the screen has 24 bit mode, even if the default is 8 bit) 1288 AC_DEFINE(PREFER_24BIT, 1, Define to use a 24 bit visual if the screen has 24 bit mode, even if the default is 8 bit)
1129fi 1289fi
1130if test x$support_mousewheel = xyes; then 1290if test x$support_mousewheel = xyes; then
1131 AC_DEFINE(MOUSE_WHEEL, 1, Define to use wheel events (button4 and button5) to scroll) 1291 AC_DEFINE(MOUSE_WHEEL, 1, Define to use wheel events (button4 and button5) to scroll)
1132fi 1292fi
1133if test x$support_mouseslipwheel = xyes; then 1293if test x$support_mouseslipwheel = xyes; then
1134 AC_DEFINE(MOUSE_SLIP_WHEELING, 1, Define to have CTRL cause wheel events to accelerate scrolling. Release CTRL to halt scrolling) 1294 AC_DEFINE(MOUSE_SLIP_WHEELING, 1, Define to have CTRL cause wheel events to accelerate scrolling. Release CTRL to halt scrolling)
1135fi
1136if test x$support_oldselection = xno; then
1137 AC_DEFINE(NO_OLD_SELECTION, 1, Define to remove old rxvt (ver 2.20 and before) style selection)
1138fi 1295fi
1139if test x$support_utmp = xyes; then 1296if test x$support_utmp = xyes; then
1140 AC_DEFINE(UTMP_SUPPORT, 1, Define if you want to have utmp/utmpx support) 1297 AC_DEFINE(UTMP_SUPPORT, 1, Define if you want to have utmp/utmpx support)
1141fi 1298fi
1142if test x$support_wtmp = xyes; then 1299if test x$support_wtmp = xyes; then
1170 scrolltypes="$scrolltypes plain" 1327 scrolltypes="$scrolltypes plain"
1171fi 1328fi
1172if test x$support_pointer_blank = xyes; then 1329if test x$support_pointer_blank = xyes; then
1173 AC_DEFINE(POINTER_BLANK, 1, Define if you want hide the pointer while typing) 1330 AC_DEFINE(POINTER_BLANK, 1, Define if you want hide the pointer while typing)
1174fi 1331fi
1175if test x$support_cursor_blink = xyes; then
1176 AC_DEFINE(CURSOR_BLINK, 1, Define if you want blinking cursor support)
1177fi
1178if test x$support_text_blink = xyes; then 1332if test x$support_text_blink = xyes; then
1179 AC_DEFINE(TEXT_BLINK, 1, Define if you want blinking text support) 1333 AC_DEFINE(TEXT_BLINK, 1, Define if you want blinking text support)
1180fi 1334fi
1181if test x$support_unicode3 = xyes; then 1335if test x$support_unicode3 = xyes; then
1182 AC_DEFINE(UNICODE_3, 1, Define if you want to represent unicode characters outside plane 0) 1336 AC_DEFINE(UNICODE_3, 1, Define if you want to represent unicode characters outside plane 0)
1183fi 1337fi
1338if test x$support_combining = xyes; then
1339 AC_DEFINE(ENABLE_COMBINING, 1, Define if you want to automatically compose combining characters)
1340fi
1184if test x$codesets = xall; then 1341if test x$codesets = xall; then
1185 codesets=jp,jp-ext,kr,cn,cn-ext,vn 1342 codesets=jp,jp-ext,kr,zh,zh-ext
1186fi 1343fi
1344AC_DEFINE(ENCODING_EU, 1, Define if you want european extended codesets)
1345AC_DEFINE(ENCODING_VN, 1, Define if you want vietnamese codesets)
1187for codeset in `echo $codesets | tr "[a-z,\\-]" "[A-Z _]"`; do 1346for codeset in `echo $codesets | tr "[a-z,\\-]" "[A-Z _]"`; do
1188 AC_DEFINE(ENCODING_EU, 1, Define if you want european extended codesets)
1189 case "$codeset" in 1347 case "$codeset" in
1190 VN ) AC_DEFINE(ENCODING_VN, 1, Define if you want vietnamese codesets) ;;
1191 JP ) AC_DEFINE(ENCODING_JP, 1, Define if you want japanese codesets) ;; 1348 JP ) AC_DEFINE(ENCODING_JP, 1, Define if you want japanese codesets) ;;
1192 JP_EXT ) AC_DEFINE(ENCODING_JP_EXT, 1, Define if you want extended japanese codesets) ;; 1349 JP_EXT ) AC_DEFINE(ENCODING_JP_EXT, 1, Define if you want extended japanese codesets) ;;
1193 KR ) AC_DEFINE(ENCODING_KR, 1, Define if you want korean codesets) ;; 1350 KR ) AC_DEFINE(ENCODING_KR, 1, Define if you want korean codesets) ;;
1194 CN ) AC_DEFINE(ENCODING_CN, 1, Define if you want chinese codesets) ;; 1351 ZH ) AC_DEFINE(ENCODING_ZH, 1, Define if you want chinese codesets) ;;
1195 CN_EXT ) AC_DEFINE(ENCODING_CN_EXT, 1, Define if you want extended chinese codesets) ;; 1352 ZH_EXT ) AC_DEFINE(ENCODING_ZH_EXT, 1, Define if you want extended chinese codesets) ;;
1196 esac 1353 esac
1197done 1354done
1355
1356IF_PERL=\#
1357if test x$support_perl = xyes; then
1358 AC_PATH_PROG(PERL, perl5)
1359 AC_PATH_PROG(PERL, perl)
1360
1361 AC_MSG_CHECKING(for $PERL suitability)
1362 if $PERL -MExtUtils::Embed -e "use v5.8" >/dev/null 2>/dev/null; then
1363
1364 save_CXXFLAGS="$CXXFLAGS"
1365 save_LIBS="$LIBS"
1366 CXXFLAGS="$CXXFLAGS `$PERL -MExtUtils::Embed -e ccopts`"
1367 LIBS="$LIBS `$PERL -MExtUtils::Embed -e ldopts`"
1368 AC_TRY_LINK([
1369#include <EXTERN.h>
1370#include <perl.h>
1371#include <XSUB.h>
1372],[
1373 PerlInterpreter *perl = perl_alloc ();
1374],[rxvt_perl_link=yes],[rxvt_perl_link=no])
1375 CXXFLAGS="$save_CXXFLAGS"
1376 LIBS="$save_LIBS"
1377
1378 if test x$rxvt_perl_link = xyes; then
1379 AC_MSG_RESULT(ok)
1380 AC_DEFINE(ENABLE_PERL, 1, Define if you can embed a perl interpreter)
1381 IF_PERL=
1382 PERL_O=rxvtperl.o
1383 PERLFLAGS="`$PERL -MExtUtils::Embed -e ccopts`"
1384 PERLLIB="`$PERL -MExtUtils::Embed -e ldopts`"
1385 PERLPRIVLIBEXP="`$PERL -MConfig -e 'print $Config{privlibexp}'`"
1386 else
1387 support_perl=no
1388 AC_MSG_RESULT([no, unable to link])
1389 fi
1390 else
1391 AC_MSG_ERROR(no working perl found, or perl not version >= 5.8)
1392 support_perl=no
1393 fi
1394fi
1395AC_SUBST(PERLLIB)
1396AC_SUBST(PERLFLAGS)
1397AC_SUBST(PERLPRIVLIBEXP)
1398AC_SUBST(PERL)
1399AC_SUBST(IF_PERL)
1400AC_SUBST(PERL_O)
1401
1402if test x$support_perl = xyes; then
1403 support_frills=yes
1404fi
1198 1405
1199dnl> AC_CHECK_FUNCS(gettimeofday putenv select socket) 1406dnl> AC_CHECK_FUNCS(gettimeofday putenv select socket)
1200 1407
1201CFLAGS=${CFLAGS--O} 1408CFLAGS=${CFLAGS--O}
1202LDFLAGS=${LDFLAGS--O} 1409LDFLAGS=${LDFLAGS--O}
1220AC_SUBST(DLIB) 1427AC_SUBST(DLIB)
1221AC_SUBST(LIBS) 1428AC_SUBST(LIBS)
1222AC_SUBST(X_LIBS) 1429AC_SUBST(X_LIBS)
1223AC_SUBST(X_EXTRA_LIBS) 1430AC_SUBST(X_EXTRA_LIBS)
1224 1431
1225if test x$support_addstrings = xno; then
1226 AC_DEFINE(NO_STRINGS, 1, Define if you don't need to use our replacement string functions)
1227fi
1228
1229dnl# common parts of the Makefile 1432dnl# common parts of the Makefile
1230MCOMMON=./autoconf/Make.common 1433MCOMMON=./autoconf/Make.common
1231AC_SUBST_FILE(MCOMMON) 1434AC_SUBST_FILE(MCOMMON)
1232 1435
1233AC_ARG_PROGRAM 1436AC_ARG_PROGRAM
1234
1235RXVTNAME=`echo rxvt|sed "$program_transform_name"`
1236AC_SUBST(RXVTNAME)
1237 1437
1238dnl# test for "sun" or "__sun__" before include sys_ioctl 1438dnl# test for "sun" or "__sun__" before include sys_ioctl
1239 1439
1240dnl# revert HAVE_BLAH_H into a "#include <blah.h>" 1440dnl# revert HAVE_BLAH_H into a "#include <blah.h>"
1241AC_DEFUN(RXVT_DEFINE_TO_INCLUDE, dnl 1441AC_DEFUN(RXVT_DEFINE_TO_INCLUDE, dnl
1245 $1="/* #include <$2> */" 1445 $1="/* #include <$2> */"
1246fi dnl 1446fi dnl
1247AC_SUBST($1)]) 1447AC_SUBST($1)])
1248 1448
1249RXVT_DEFINE_TO_INCLUDE(include_stdint_h, stdint.h, ac_cv_header_stdint_h, yes, notset, dontmatch) 1449RXVT_DEFINE_TO_INCLUDE(include_stdint_h, stdint.h, ac_cv_header_stdint_h, yes, notset, dontmatch)
1250RXVT_DEFINE_TO_INCLUDE(include_stdarg_h, stdarg.h, ac_cv_header_stdarg_h, yes, notset, dontmatch) 1450RXVT_DEFINE_TO_INCLUDE(include_stdarg_h, cstdarg, ac_cv_header_stdarg_h, yes, notset, dontmatch)
1251RXVT_DEFINE_TO_INCLUDE(include_stdlib_h, stdlib.h, ac_cv_header_stdlib_h, yes, notset, dontmatch) 1451RXVT_DEFINE_TO_INCLUDE(include_stdlib_h, cstdlib, ac_cv_header_stdlib_h, yes, notset, dontmatch)
1252RXVT_DEFINE_TO_INCLUDE(include_unistd_h, unistd.h, ac_cv_header_unistd_h, yes, notset, dontmatch) 1452RXVT_DEFINE_TO_INCLUDE(include_unistd_h, unistd.h, ac_cv_header_unistd_h, yes, notset, dontmatch)
1253RXVT_DEFINE_TO_INCLUDE(include_string_h, string.h, ac_cv_header_string_h, yes, notset, dontmatch) 1453RXVT_DEFINE_TO_INCLUDE(include_string_h, cstring, ac_cv_header_string_h, yes, notset, dontmatch)
1254RXVT_DEFINE_TO_INCLUDE(include_fcntl_h, fcntl.h, ac_cv_header_fcntl_h, yes, notset, dontmatch) 1454RXVT_DEFINE_TO_INCLUDE(include_fcntl_h, fcntl.h, ac_cv_header_fcntl_h, yes, notset, dontmatch)
1255RXVT_DEFINE_TO_INCLUDE(include_util_h, util.h, ac_cv_header_util_h, yes, notset, dontmatch) 1455RXVT_DEFINE_TO_INCLUDE(include_util_h, util.h, ac_cv_header_util_h, yes, notset, dontmatch)
1256RXVT_DEFINE_TO_INCLUDE(include_assert_h, assert.h, ac_cv_header_assert_h, yes, notset, dontmatch) 1456RXVT_DEFINE_TO_INCLUDE(include_assert_h, assert.h, ac_cv_header_assert_h, yes, notset, dontmatch)
1257RXVT_DEFINE_TO_INCLUDE(include_sys_ioctl_h, sys/ioctl.h, rxvt_cv_header_sysioctl, yes, notset, dontmatch) 1457RXVT_DEFINE_TO_INCLUDE(include_sys_ioctl_h, sys/ioctl.h, rxvt_cv_header_sysioctl, yes, notset, dontmatch)
1258RXVT_DEFINE_TO_INCLUDE(include_sys_select_h, sys/select.h, ac_cv_header_sys_select_h, yes, notset, dontmatch) 1458RXVT_DEFINE_TO_INCLUDE(include_sys_select_h, sys/select.h, ac_cv_header_sys_select_h, yes, notset, dontmatch)
1259RXVT_DEFINE_TO_INCLUDE(include_sys_strredir_h, sys/strredir.h, ac_cv_header_sys_strredir_h, yes, notset, dontmatch) 1459RXVT_DEFINE_TO_INCLUDE(include_sys_strredir_h, sys/strredir.h, ac_cv_header_sys_strredir_h, yes, notset, dontmatch)
1260RXVT_DEFINE_TO_INCLUDE(include_sys_time_h, sys/time.h, ac_cv_header_sys_time_h, yes, notset, dontmatch) 1460RXVT_DEFINE_TO_INCLUDE(include_sys_time_h, sys/time.h, ac_cv_header_sys_time_h, yes, notset, dontmatch)
1261RXVT_DEFINE_TO_INCLUDE(include_time_h, time.h, ac_cv_header_sys_time_h, no, ac_cv_header_time, yes) 1461RXVT_DEFINE_TO_INCLUDE(include_time_h, time.h, ac_cv_header_sys_time_h, no, ac_cv_header_time, yes)
1262 1462
1263if test x$support_xft = xyes; then
1264 LIBS="$LIBS `pkg-config xft --libs`"
1265 CFLAGS="$CFLAGS `pkg-config xft --cflags`"
1266 CPPFLAGS="$CPPFLAGS `pkg-config xft --cflags`"
1267
1268 AC_CHECK_HEADERS(X11/Xft/Xft.h,,[support_xft=no])
1269 AC_CHECK_LIB(Xft,XftDrawString32,,[support_xft=no])
1270
1271 if test x$support_xft = xyes; then
1272 AC_DEFINE(XFT, 1, Define to enable xft support)
1273 fi
1274fi
1275
1276AC_OUTPUT(autoconf/Make.common \ 1463AC_CONFIG_FILES([autoconf/Make.common \
1277Makefile \ 1464Makefile \
1278doc/Makefile \ 1465doc/Makefile \
1279src/Makefile \ 1466src/Makefile \
1280src/test/Makefile \
1281src/rxvtlib.h \ 1467src/rxvtlib.h \
1282W11/Makefile \ 1468])
1283) 1469AC_OUTPUT
1284 1470
1285echo "Configuration: 1471echo "Configuration:
1286 1472
1287 Rxvt version: $VERSION : $DATE 1473 Rxvt version: $VERSION : $DATE
1288 Source code location: $srcdir 1474 Source code location: $srcdir
1289 Install path: ${prefix}/bin 1475 Install path: ${prefix}/bin
1290 Compiler: $CC 1476 Compiler: $CXX
1291 Compiler flags: $CFLAGS" 1477 Compiler flags: $CFLAGS
1478 Linker: $LINKER"
1292 1479
1293if test "$MALLOC_TYPE" = S; then 1480if test "$MALLOC_TYPE" = S; then
1294 echo " malloc support: system default" 1481 echo " malloc support: system default"
1295fi 1482fi
1296if test "$MALLOC_TYPE" = G; then 1483if test "$MALLOC_TYPE" = G; then
1307echo " 1494echo "
1308The following are set in config.h 1495The following are set in config.h
1309" 1496"
1310echo " pty/tty type: "$rxvt_cv_ptys 1497echo " pty/tty type: "$rxvt_cv_ptys
1311if test x$support_utmp != xyes; then 1498if test x$support_utmp != xyes; then
1312 echo " utmp support: disabled 1499 echo " utmp support: disabled"
1313" 1500 echo
1314else 1501else
1315 echo " utmp support: enabled 1502 echo " utmp support: enabled
1316 utmp file: $rxvt_cv_path_utmp 1503 utmp file: $rxvt_cv_path_utmp
1317 utmpx file: $rxvt_cv_path_utmpx 1504 utmpx file: $rxvt_cv_path_utmpx
1318 wtmp file: $rxvt_cv_path_wtmp 1505 wtmp file: $rxvt_cv_path_wtmp
1319 wtmpx file: $rxvt_cv_path_wtmpx 1506 wtmpx file: $rxvt_cv_path_wtmpx
1320 lastlog file: $rxvt_cv_path_lastlog 1507 lastlog file: $rxvt_cv_path_lastlog
1321 ttys/ttytab file: $rxvt_cv_path_ttytab 1508 ttys/ttytab file: $rxvt_cv_path_ttytab
1322" 1509 embedded perl: $support_perl"
1510 echo
1323fi 1511fi
1324if test x$term != x; then 1512if test x$term != x; then
1325 echo " set TERM to: $term 1513 echo " set TERM to: $term"
1326"
1327fi 1514fi
1328if test x$terminfo != x; then 1515if test x$terminfo != x; then
1329 echo " set TERMINFO to: $terminfo 1516 echo " set TERMINFO to: $terminfo"
1330"
1331fi 1517fi
1518echo " default resource name: $RESNAME"
1519echo " resource class: $RESCLASS"
1520if test x$RESFALLBACK != x; then
1521 echo " resource class fallback: $RESFALLBACK"
1522fi
1523echo
1332if test x$rxvt_cv_ptys = xUNKNOWN; then 1524if test x$rxvt_cv_ptys = xUNKNOWN; then
1333 echo ".----------------------------------------------------------------." 1525 echo ".----------------------------------------------------------------."
1334 echo ". WARNING: could not determine pty/tty type. Do not build until ." 1526 echo ". WARNING: could not determine pty/tty type. Do not build until ."
1335 echo ". the appropriate PTYS_ARE_* is defined in config.h ." 1527 echo ". the appropriate PTYS_ARE_* is defined in config.h ."
1336 echo ".----------------------------------------------------------------." 1528 echo ".----------------------------------------------------------------."
1350 echo ". WARNING: --enable-xim was specified however the locale support ." 1542 echo ". WARNING: --enable-xim was specified however the locale support ."
1351 echo ". functions could not be found. ." 1543 echo ". functions could not be found. ."
1352 echo ". XIM is now being DISABLED! ." 1544 echo ". XIM is now being DISABLED! ."
1353 echo ".----------------------------------------------------------------." 1545 echo ".----------------------------------------------------------------."
1354fi 1546fi
1547
1355echo " *** Please check src/feature.h for further options *** 1548echo " *** Optionally check src/feature.h for further options ***"
1356" 1549echo
1550
1551echo ".----------------------------------------------------------------."
1552echo ". NOTE: some features are disabled by default, try ."
1553echo ". configure --help to get an idea of the optional features, ."
1554echo ". or read ./README.configure ."
1555echo ". ."
1556echo ". The script ./reconf gives a reasonable baseline, try it if ."
1557echo ". you do not want to read documentation and still want some ."
1558echo ". useful features. ."
1559echo ".----------------------------------------------------------------."
1560echo
1561

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines