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