ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/autoconf/configure.in
Revision: 1.32
Committed: Fri Aug 13 03:36:56 2004 UTC (19 years, 10 months ago) by root
Branch: MAIN
CVS Tags: rel-3_6
Changes since 1.31: +3 -2 lines
Log Message:
*** empty log message ***

File Contents

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