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