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