ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/autoconf/configure.in
Revision: 1.35
Committed: Tue Aug 17 09:16:40 2004 UTC (19 years, 10 months ago) by root
Branch: MAIN
Changes since 1.34: +1 -0 lines
Log Message:
*** empty log message ***

File Contents

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