ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/autoconf/configure.in
Revision: 1.58
Committed: Sun Jan 1 06:18:20 2006 UTC (18 years, 6 months ago) by root
Branch: MAIN
Changes since 1.57: +7 -0 lines
Log Message:
*** empty log message ***

File Contents

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