ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/autoconf/configure.in
Revision: 1.34
Committed: Tue Aug 17 08:47:56 2004 UTC (19 years, 10 months ago) by root
Branch: MAIN
Changes since 1.33: +0 -6 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
463 dnl# need a neat way to detect SVR4 or its features
464 dnl# in src/command.c we use these functions:
465 dnl# grantpt(), unlockpt(), ptsname(), which are defined in <sys/ptms.h>
466 dnl# - but are these also defined for other systems?
467
468 dnl# hack to find if this is SVR4 -- who knows?
469 dnl## AC_MSG_CHECKING(for SVR4)
470 dnl## AC_EGREP_CPP(yes,
471 dnl## [#if defined (SVR4) || defined (_SVR4) || defined (__svr4__)
472 dnl## yes;
473 dnl## #endif
474 dnl## ], [AC_MSG_RESULT(yes); AC_DEFINE(PERHAPS_SVR4)], AC_MSG_RESULT(perhaps not?))
475
476 AC_PATH_XTRA
477
478 dnl# the only reasonable way to find libXpm is do-it-yourself
479 dnl# only check if we want xpm-background
480
481 if test x$support_xpm = xyes; then
482 VT_FIND_LIBXPM
483 if test x$no_xpm = xyes; then
484 support_xpm=needsmanualspecification
485 fi
486 fi
487
488 dnl# --------------------------------------------------------------------------
489 dnl# CHECKING FOR HEADER FILES
490 dnl# --------------------------------------------------------------------------
491 AC_HEADER_SYS_WAIT
492 AC_CHECK_HEADERS( \
493 assert.h \
494 fcntl.h \
495 grp.h \
496 libc.h \
497 lastlog.h \
498 stdarg.h \
499 stdlib.h \
500 string.h \
501 termios.h \
502 unistd.h \
503 sys/byteorder.h \
504 sys/ioctl.h \
505 sys/select.h \
506 sys/sockio.h \
507 sys/strredir.h \
508 sys/stropts.h \
509 sys/time.h \
510 utmp.h \
511 utmpx.h \
512 stdint.h \
513 )
514
515 AC_HEADER_TIME
516
517 dnl# check to allow both <termios.h> and <sys/ioctl.h>
518 AC_CACHE_CHECK(whether termios.h and sys/ioctl.h may both be included, rxvt_cv_header_sysioctl,
519 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>
520 #include <sys/ioctl.h>
521 #ifdef HAVE_TERMIOS_H
522 #include <termios.h>
523 #endif]], [[int a = ECHO;]])],[rxvt_cv_header_sysioctl=yes],[rxvt_cv_header_sysioctl=no])])
524
525 dnl# ELF systems may want to store paths for dynamic libraries.
526 dnl# Lets see if the compiler can accept "-Rpath" or "-Wl,-Rpath"
527 dnl# At least one version of SunOS wants "-R path" but it's not checked yet.
528 if test -n "$GCC"; then
529 LDARG="-Wl,"
530 else
531 LDARG=""
532 fi
533 changequote(, )dnl
534 R_TRANSLATE='s/-L\([^ ]*\)/-L\1 '$LDARG'-rpath '$LDARG'\1/g'
535 changequote([, ])dnl
536
537 ac_save_CFLAGS=$CFLAGS
538 ac_save_LIBS=$LIBS
539 CFLAGS="$CFLAGS $X_CFLAGS"
540 LIBS=`echo "$LIBS $X_LIBS $X_EXTRA_LIBS -lX11" | sed "$R_TRANSLATE"`
541 AC_CACHE_CHECK([for -rpath dynamic library path recording], rxvt_cv_rpath,
542 [AC_RUN_IFELSE([AC_LANG_SOURCE([[
543 main()
544 {
545 exit(0);
546 (void) XOpenDisplay("foobar");
547 }]])],[rxvt_cv_rpath=yes],[rxvt_cv_rpath=no],[dnl
548 AC_MSG_WARN(You may need to check the LIBS line)])])
549 if test x$rxvt_cv_rpath != xyes; then
550 changequote(, )dnl
551 R_TRANSLATE='s/-L\([^ ]*\)/-L\1 '$LDARG'-R\1/g'
552 changequote([, ])dnl
553 LIBS=`echo "$ac_save_LIBS $X_LIBS $X_EXTRA_LIBS -lX11" | sed "$R_TRANSLATE"`
554 AC_CACHE_CHECK([for -R dynamic library path recording], rxvt_cv_R,
555 [AC_RUN_IFELSE([AC_LANG_SOURCE([[
556 main()
557 {
558 exit(0);
559 (void) XOpenDisplay("foobar");
560 }]])],[rxvt_cv_R=yes],[rxvt_cv_R=no],[rxvt_cv_R=no])])
561 if test x$rxvt_cv_R != xyes; then
562 LIBS="$ac_save_LIBS $X_LIBS $X_EXTRA_LIBS -lX11"
563 fi
564 fi
565
566 AC_CACHE_CHECK([for XPointer], rxvt_cv_xpointer,
567 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <X11/Xlib.h>]], [[XPointer dummy;]])],[rxvt_cv_xpointer=yes],[rxvt_cv_xpointer=no])])
568 if test x$rxvt_cv_xpointer = xyes; then
569 AC_DEFINE(HAVE_XPOINTER, 1, Define if you have XPointer typedef)
570 fi
571 LIBS=$ac_save_LIBS
572 CFLAGS=$ac_save_CFLAGS
573
574
575 AC_C_CONST
576 AC_C_INLINE
577
578 dnl> AC_HEADER_STDC dnl# skip this test, Sun always fails anyhow.
579
580 dnl# --------------------------------------------------------------------------
581 dnl# CHECKING FOR MISSING TYPEDEFS
582 dnl# --------------------------------------------------------------------------
583 dnl# Missing typedefs and replacements
584 AC_TYPE_MODE_T
585 dnl> AC_CHECK_TYPE(umode_t, int)
586 dnl> AC_CHECK_TYPE(off_t, long)
587 AC_TYPE_PID_T
588 AC_TYPE_UID_T
589
590 AC_CHECK_SIZEOF(char, 1)
591 AC_CHECK_SIZEOF(short, 2)
592 AC_CHECK_SIZEOF(int, 4)
593 AC_CHECK_SIZEOF(long, 4)
594 AC_CHECK_SIZEOF(long long, 8)
595 AC_CHECK_SIZEOF(int *, 4)
596
597 dnl# see usage below
598 AC_DEFUN(RXVT_CHECK_SIZE,
599 [AC_CACHE_CHECK([for $2], $1,
600 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdint.h>]], [[$2 dummy;]])],[$1=yes],[dnl
601 if test $ac_cv_sizeof_char -ge $3; then
602 $1="$4 char"
603 else
604 if test $ac_cv_sizeof_short -ge $3; then
605 $1="$4 short"
606 else
607 if test $ac_cv_sizeof_int -ge $3; then
608 $1="$4 int"
609 else
610 if test $ac_cv_sizeof_long -ge $3; then
611 $1="$4 long"
612 else
613 if test $ac_cv_sizeof_long_long -ge $3; then
614 $1="$4 long long"
615 else
616 $1="$4 $5" # we _must_ have a (possibly wrong) default
617 fi
618 fi
619 fi
620 fi
621 fi])])]
622 if test x"$$1" != xyes; then
623 $6="typedef $$1 $2;"
624 else
625 if test x"$4" = x; then
626 $6="/* typedef $5 $2; */"
627 else
628 $6="/* typedef $4 $5 $2; */"
629 fi
630 fi dnl
631 )
632 dnl#
633 dnl# Look for types the system may know about anyway.
634 dnl#
635 RXVT_CHECK_SIZE(rxvt_cv_int16_t, int16_t, 2, , short, rxvt_int16_typedef)
636 AC_SUBST(rxvt_int16_typedef)
637 RXVT_CHECK_SIZE(rxvt_cv_uint16_t, uint16_t, 2, unsigned, short, rxvt_uint16_typedef)
638 AC_SUBST(rxvt_uint16_typedef)
639 RXVT_CHECK_SIZE(rxvt_cv_int32_t, int32_t, 4, , int, rxvt_int32_typedef)
640 AC_SUBST(rxvt_int32_typedef)
641 RXVT_CHECK_SIZE(rxvt_cv_uint32_t, uint32_t, 4, unsigned, int, rxvt_uint32_typedef)
642 AC_SUBST(rxvt_uint32_typedef)
643 dnl RXVT_CHECK_SIZE(rxvt_cv_int64_t, int64_t, 8, , long long, rxvt_int64_typedef)
644 dnl AC_SUBST(rxvt_int64_typedef)
645 dnl RXVT_CHECK_SIZE(rxvt_cv_uint64_t, uint64_t, 8, unsigned, long long, rxvt_uint64_typedef)
646 dnl AC_SUBST(rxvt_uint64_typedef)
647 dnl#
648 dnl# Now look for another we use
649 dnl#
650 if test $ac_cv_sizeof_int_p -eq 8; then
651 rxvt_intp_define="#define intp_t int64_t"
652 rxvt_u_intp_define="#define u_intp_t u_int64_t"
653 else
654 if test $ac_cv_sizeof_int_p -eq 4; then
655 rxvt_intp_define="#define intp_t int32_t"
656 rxvt_u_intp_define="#define u_intp_t u_int32_t"
657 else
658 if test $ac_cv_sizeof_int_p -eq 2; then
659 rxvt_intp_define="#define intp_t int16_t"
660 rxvt_u_intp_define="#define u_intp_t u_int16_t"
661 else
662 rxvt_intp_define="#error set intp_t"
663 rxvt_u_intp_define="#error set u_intp_t"
664 fi
665 fi
666 fi
667 AC_SUBST(rxvt_intp_define)
668 AC_SUBST(rxvt_u_intp_define)
669
670 dnl# --------------------------------------------------------------------------
671 dnl# CHECKING FOR LIBRARY FUNCTIONS
672 dnl# --------------------------------------------------------------------------
673 AC_TYPE_SIGNAL
674 dnl> AC_FUNC_VPRINTF
675
676 dnl# Note: On Ultrix, setsid() does weirdo stuff, disable it
677 case "$host_alias" in
678 *ultrix) ac_cv_func_setsid='no' ;;
679 *) break;;
680 esac
681
682 AC_CHECK_FUNCS( \
683 atexit \
684 revoke \
685 unsetenv \
686 setutent \
687 seteuid \
688 setreuid \
689 setsid \
690 setpgrp \
691 setpgid \
692 openpty \
693 _getpty \
694 grantpt \
695 unlockpt \
696 isastream \
697 on_exit \
698 nanosleep \
699 updwtmp \
700 ttyslot \
701 )
702 dnl# Note: On NetBSD, openpty() exists in libutil. Don't pull it in
703
704 dnl# --------------------------------------------------------------------------
705 dnl# DO ALL UTMP AND WTMP CHECKING
706 dnl# --------------------------------------------------------------------------
707 dnl# check for host field in utmp structure
708
709 dnl# --------------------------------------------
710 AC_CHECK_HEADER(utmp.h,
711 [AC_CACHE_CHECK([for struct utmp], rxvt_cv_struct_utmp,
712 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
713 #include <stdint.h>
714 #include <utmp.h>]], [[struct utmp ut;]])],[rxvt_cv_struct_utmp=yes],[rxvt_cv_struct_utmp=no])])
715 if test x$rxvt_cv_struct_utmp = xyes; then
716 AC_DEFINE(HAVE_STRUCT_UTMP, 1, Define if utmp.h has struct utmp)
717 fi
718 ]
719
720 AC_CACHE_CHECK(for ut_host in utmp struct, rxvt_cv_struct_utmp_host,
721 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
722 #include <utmp.h>]], [[struct utmp ut; ut.ut_host;]])],[rxvt_cv_struct_utmp_host=yes],[rxvt_cv_struct_utmp_host=no])])
723 if test x$rxvt_cv_struct_utmp_host = xyes; then
724 AC_DEFINE(HAVE_UTMP_HOST, 1, Define if struct utmp contains ut_host)
725 fi
726
727 AC_CACHE_CHECK(for ut_pid in utmp struct, rxvt_cv_struct_utmp_pid,
728 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
729 #include <utmp.h>]], [[struct utmp ut; ut.ut_pid;]])],[rxvt_cv_struct_utmp_pid=yes],[rxvt_cv_struct_utmp_pid=no])])
730 if test x$rxvt_cv_struct_utmp_pid = xyes; then
731 AC_DEFINE(HAVE_UTMP_PID, 1, Define if struct utmp contains ut_pid)
732 fi
733 ) dnl# AC_CHECK_HEADER(utmp.h
734
735 dnl# --------------------------------------------
736
737 AC_CHECK_HEADER(utmpx.h,
738 [AC_CACHE_CHECK([for struct utmpx], rxvt_cv_struct_utmpx,
739 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
740 #include <utmpx.h>]], [[struct utmpx ut;]])],[rxvt_cv_struct_utmpx=yes],[rxvt_cv_struct_utmpx=no])])
741 if test x$rxvt_cv_struct_utmpx = xyes; then
742 AC_DEFINE(HAVE_STRUCT_UTMPX, 1, Define if utmpx.h has struct utmpx)
743 fi
744 ]
745
746 AC_CACHE_CHECK(for host in utmpx struct, rxvt_cv_struct_utmpx_host,
747 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
748 #include <utmpx.h>]], [[struct utmpx utx; utx.ut_host;]])],[rxvt_cv_struct_utmpx_host=yes],[rxvt_cv_struct_utmpx_host=no])])
749 if test x$rxvt_cv_struct_utmpx_host = xyes; then
750 AC_DEFINE(HAVE_UTMPX_HOST, 1, Define if struct utmpx contains ut_host)
751 fi
752 ) dnl# AC_CHECK_HEADER(utmpx.h
753
754
755 dnl# --------------------------------------------------------------------------
756 dnl# check for struct lastlog
757 AC_CACHE_CHECK(for struct lastlog, rxvt_cv_struct_lastlog,
758 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
759 #include <utmp.h>
760 #ifdef HAVE_LASTLOG_H
761 #include <lastlog.h>
762 #endif
763 ]], [[struct lastlog ll;]])],[rxvt_cv_struct_lastlog=yes],[rxvt_cv_struct_lastlog=no])])
764 if test x$rxvt_cv_struct_lastlog = xyes; then
765 AC_DEFINE(HAVE_STRUCT_LASTLOG, 1, Define if utmp.h or lastlog.h has struct lastlog)
766 fi
767
768 dnl# check for struct lastlogx
769 AC_CACHE_CHECK(for struct lastlogx, rxvt_cv_struct_lastlogx,
770 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
771 #include <utmpx.h>
772 #ifdef HAVE_LASTLOG_H
773 #include <lastlog.h>
774 #endif
775 ]], [[struct lastlogx ll;]])],[rxvt_cv_struct_lastlogx=yes],[rxvt_cv_struct_lastlogx=no])])
776 if test x$rxvt_cv_struct_lastlogx = xyes; then
777 AC_DEFINE(HAVE_STRUCT_LASTLOGX, 1, Define if utmpx.h or lastlog.h has struct lastlogx)
778 fi
779
780 dnl# --------------------------------------------------------------------------
781 dnl# FIND FILES
782 dnl# --------------------------------------------------------------------------
783
784 dnl# find utmp
785 AC_CACHE_CHECK(where utmp is located, rxvt_cv_path_utmp,
786 [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
787 #include <sys/types.h>
788 #include <utmp.h>
789 #include <errno.h>
790 main()
791 {
792 char **u, *utmplist[] = {
793 "/var/run/utmp", "/var/adm/utmp", "/etc/utmp", "/usr/etc/utmp", "/usr/adm/utmp", NULL };
794 FILE *a, *f=fopen("conftestval", "w");
795 if (!f) exit(1);
796 #ifdef UTMP_FILE
797 fprintf(f, "%s\n", UTMP_FILE);
798 exit(0);
799 #endif
800 #ifdef _PATH_UTMP
801 fprintf(f, "%s\n", _PATH_UTMP);
802 exit(0);
803 #endif
804 for (u = utmplist; *u; u++) {
805 if ((a = fopen(*u, "r")) != NULL || errno == EACCES) {
806 fprintf(f, "%s\n", *u);
807 exit(0);
808 }
809 }
810 exit(0);
811 }]])],[rxvt_cv_path_utmp=`cat conftestval`],[rxvt_cv_path_utmp=],[dnl
812 AC_MSG_WARN(Define RXVT_UTMP_FILE in config.h manually)])])
813 if test x$rxvt_cv_path_utmp != x; then
814 AC_DEFINE_UNQUOTED(RXVT_UTMP_FILE, "$rxvt_cv_path_utmp", Define location of utmp)
815 fi
816
817 dnl# --------------------------------------------------------------------------
818
819 dnl# find utmpx - if a utmp file exists at the same location and is more than
820 dnl# a day newer, then dump the utmpx. People leave lots of junk around.
821 AC_CACHE_CHECK(where utmpx is located, rxvt_cv_path_utmpx,
822 [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
823 #include <sys/types.h>
824 #include <utmpx.h>
825 #include <errno.h>
826 #include <sys/stat.h>
827 #ifdef HAVE_STRING_H
828 #include <string.h>
829 #endif
830 main()
831 {
832 char **u, *p, *utmplist[] = {
833 #ifdef UTMPX_FILE
834 UTMPX_FILE,
835 #endif
836 #ifdef _PATH_UTMPX
837 _PATH_UTMPX,
838 #endif
839 "/var/adm/utmpx", "/etc/utmpx", NULL };
840 FILE *a, *f=fopen("conftestval", "w");
841 struct stat statu, statux;
842 if (!f) exit(1);
843 for (u = utmplist; *u; u++) {
844 if ((a = fopen(*u, "r")) != NULL || errno == EACCES) {
845 if (stat(*u, &statux) < 0)
846 continue;
847 p = strdup(*u);
848 p[strlen(p) - 1] = '\0';
849 if (stat(p, &statu) >= 0
850 && (statu.st_mtime - statux.st_mtime > 86400))
851 continue;
852 fprintf(f, "%s\n", *u);
853 exit(0);
854 }
855 }
856 exit(0);
857 }]])],[rxvt_cv_path_utmpx=`cat conftestval`],[rxvt_cv_path_utmpx=],[dnl
858 AC_MSG_WARN(Define RXVT_UTMPX_FILE in config.h manually)])])
859 if test x$rxvt_cv_path_utmpx != x; then
860 AC_DEFINE_UNQUOTED(RXVT_UTMPX_FILE, "$rxvt_cv_path_utmpx", Define location of utmpx)
861 fi
862
863 dnl# --------------------------------------------------------------------------
864
865 dnl# find wtmp
866 AC_CACHE_CHECK(where wtmp is located, rxvt_cv_path_wtmp,
867 [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
868 #include <sys/types.h>
869 #ifdef HAVE_UTMP_H
870 #include <utmp.h>
871 #endif
872 #include <errno.h>
873 main()
874 {
875 char **w, *wtmplist[] = {
876 "/var/log/wtmp", "/var/adm/wtmp", "/etc/wtmp", "/usr/etc/wtmp", "/usr/adm/wtmp", NULL };
877 FILE *a, *f=fopen("conftestval", "w");
878 if (!f) exit(1);
879 #ifdef WTMP_FILE
880 fprintf(f, "%s\n", WTMP_FILE);
881 exit(0);
882 #endif
883 #ifdef _PATH_WTMP
884 fprintf(f, "%s\n", _PATH_WTMP);
885 exit(0);
886 #endif
887 for (w = wtmplist; *w; w++) {
888 if ((a = fopen(*w, "r")) != NULL || errno == EACCES) {
889 fprintf(f, "%s\n", *w);
890 exit(0);
891 }
892 }
893 exit(0);
894 }]])],[rxvt_cv_path_wtmp=`cat conftestval`],[rxvt_cv_path_wtmp=],[dnl
895 AC_MSG_WARN(Define RXVT_WTMP_FILE in config.h manually)])])
896 if test x$rxvt_cv_path_wtmp != x; then
897 AC_DEFINE_UNQUOTED(RXVT_WTMP_FILE, "$rxvt_cv_path_wtmp", Define location of wtmp)
898 fi
899 dnl# --------------------------------------------------------------------------
900
901 dnl# find wtmpx
902 AC_CACHE_CHECK(where wtmpx is located, rxvt_cv_path_wtmpx,
903 [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
904 #ifdef HAVE_UTMPX_H
905 #include <utmpx.h>
906 #endif
907 #include <errno.h>
908 main()
909 {
910 char **w, *wtmplist[] = {
911 "/var/log/wtmpx", "/var/adm/wtmpx", NULL };
912 FILE *a, *f=fopen("conftestval", "w");
913 if (!f) exit(1);
914 #ifdef WTMPX_FILE
915 fprintf(f, "%s\n", WTMPX_FILE);
916 exit(0);
917 #endif
918 #ifdef _PATH_WTMPX
919 fprintf(f, "%s\n", _PATH_WTMPX);
920 exit(0);
921 #endif
922 for (w = wtmplist; *w; w++) {
923 if ((a = fopen(*w, "r")) != NULL || errno == EACCES) {
924 fprintf(f, "%s\n", *w);
925 exit(0);
926 }
927 }
928 exit(0);
929 }]])],[rxvt_cv_path_wtmpx=`cat conftestval`],[rxvt_cv_path_wtmpx=],[dnl
930 AC_MSG_WARN(Define RXVT_WTMPX_FILE in config.h manually)])])
931 if test x$rxvt_cv_path_wtmpx != x; then
932 AC_DEFINE_UNQUOTED(RXVT_WTMPX_FILE, "$rxvt_cv_path_wtmpx", Define location of wtmpx)
933 fi
934 dnl# --------------------------------------------------------------------------
935
936 dnl# find lastlog
937 AC_CACHE_CHECK(where lastlog is located, rxvt_cv_path_lastlog,
938 [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
939 #include <sys/types.h>
940 #ifdef HAVE_UTMPX_H
941 #include <utmpx.h>
942 #elif defined(HAVE_UTMP_H)
943 #include <utmp.h>
944 #endif
945 #ifdef HAVE_LASTLOG_H
946 #include <lastlog.h>
947 #endif
948 #include <errno.h>
949 main()
950 {
951 char **w, *lastloglist[] = { "/var/log/lastlog", NULL };
952 FILE *a, *f=fopen("conftestval", "w");
953 if (!f) exit(1);
954 #ifdef LASTLOG_FILE
955 fprintf(f, "%s\n", LASTLOG_FILE);
956 exit(0);
957 #endif
958 #ifdef _PATH_LASTLOG
959 fprintf(f, "%s\n", _PATH_LASTLOG);
960 exit(0);
961 #endif
962 for (w = lastloglist; *w; w++) {
963 if ((a = fopen(*w, "r")) != NULL || errno == EACCES) {
964 fprintf(f, "%s\n", *w);
965 exit(0);
966 }
967 }
968 exit(0);
969 }]])],[rxvt_cv_path_lastlog=`cat conftestval`],[rxvt_cv_path_lastlog=],[dnl
970 AC_MSG_WARN(Define RXVT_LASTLOG_FILE in config.h manually)])])
971 if test x$rxvt_cv_path_lastlog != x; then
972 AC_DEFINE_UNQUOTED(RXVT_LASTLOG_FILE, "$rxvt_cv_path_lastlog", Define location of lastlog)
973 if test -d "$rxvt_cv_path_lastlog"; then
974 AC_DEFINE(LASTLOG_IS_DIR, 1, Define if lastlog is provided via a directory)
975 fi
976 fi
977 dnl# --------------------------------------------------------------------------
978
979 dnl# find lastlogx
980 AC_CACHE_CHECK(where lastlogx is located, rxvt_cv_path_lastlogx,
981 [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
982 #ifdef HAVE_UTMPX_H
983 #include <utmpx.h>
984 #endif
985 #include <errno.h>
986 main()
987 {
988 char **w, *wtmplist[] = { "/var/log/lastlogx", "/var/adm/lastlogx", NULL };
989 FILE *a, *f=fopen("conftestval", "w");
990 if (!f) exit(1);
991 #ifdef LASTLOGX_FILE
992 fprintf(f, "%s\n", LASTLOGX_FILE);
993 exit(0);
994 #endif
995 #ifdef _PATH_LASTLOGX
996 fprintf(f, "%s\n", _PATH_LASTLOGX);
997 exit(0);
998 #endif
999 for (w = wtmplist; *w; w++) {
1000 if ((a = fopen(*w, "r")) != NULL || errno == EACCES) {
1001 fprintf(f, "%s\n", *w);
1002 exit(0);
1003 }
1004 }
1005 exit(0);
1006 }]])],[rxvt_cv_path_lastlogx=`cat conftestval`],[rxvt_cv_path_lastlogx=],[dnl
1007 AC_MSG_WARN(Define RXVT_LASTLOGX_FILE in config.h manually)])])
1008 if test x$rxvt_cv_path_lastlogx != x; then
1009 AC_DEFINE_UNQUOTED(RXVT_LASTLOGX_FILE, "$rxvt_cv_path_lastlogx", Define location of lastlogx)
1010 fi
1011
1012 dnl# --------------------------------------------------------------------------
1013
1014 dnl# find ttys/ttytab
1015 AC_CACHE_CHECK(where ttys/ttytab is located, rxvt_cv_path_ttytab,
1016 [for ttys_file in dnl
1017 /etc/ttys /etc/ttytab;
1018 do
1019 if test -f "$ttys_file" ; then
1020 rxvt_cv_path_ttytab=$ttys_file
1021 break
1022 fi
1023 done
1024 ])
1025 if test x$rxvt_cv_path_ttytab != x; then
1026 AC_DEFINE_UNQUOTED(TTYTAB_FILENAME, "$rxvt_cv_path_ttytab", Define location of ttys/ttytab)
1027 fi
1028
1029 dnl# --------------------------------------------------------------------------
1030 dnl# --------------------------------------------------------------------------
1031
1032 dnl# this is a really hack test for some basic Xlocale stuff
1033 ac_save_LIBS=$LIBS
1034 ac_save_CFLAGS=$CFLAGS
1035 CFLAGS="$CFLAGS $X_CFLAGS"
1036 LIBS="$LIBS $X_LIBS $X_EXTRA_LIBS -lX11"
1037 if test x$rxvt_cv_rpath = xyes -o x$rxvt_cv_R = xyes; then
1038 LIBS=`echo $LIBS | sed "$R_TRANSLATE"`
1039 fi
1040 AC_CACHE_CHECK(for working Xlocale, rxvt_cv_func_xlocale,
1041 [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <X11/Xlib.h>
1042 main() {
1043 char *p;
1044 if ((p = XSetLocaleModifiers("@im=none")) != NULL && *p)
1045 exit (XSupportsLocale() ? 0 : 1);
1046 else
1047 exit (1);}]])],[dnl
1048 rxvt_cv_func_xlocale=yes],[rxvt_cv_func_xlocale=no],[dnl
1049 AC_MSG_WARN(Define NO_XLOCALE in config.h manually)])])
1050 if test x$rxvt_cv_func_xlocale = xyes; then
1051 AC_DEFINE(HAVE_XLOCALE, 1, Define if Xlocale support works)
1052 fi
1053
1054 AC_CACHE_CHECK(for working X setlocale, rxvt_cv_func_xsetlocale,
1055 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define X_LOCALE 1
1056 #include <X11/Xlocale.h>]], [[setlocale(LC_CTYPE, "");]])],[rxvt_cv_func_xsetlocale=yes],[rxvt_cv_func_xsetlocale=no])])
1057 if test x$rxvt_cv_func_xsetlocale = xyes; then
1058 AC_DEFINE(HAVE_XSETLOCALE, 1, Define if setlocale (defined to Xsetlocale) works)
1059 fi
1060 LIBS=$ac_save_LIBS
1061 CFLAGS=$ac_save_CFLAGS
1062
1063 AC_CACHE_CHECK(for working plain setlocale, rxvt_cv_func_setlocale,
1064 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <clocale>]], [[setlocale(LC_CTYPE, "");]])],[rxvt_cv_func_setlocale=yes],[rxvt_cv_func_setlocale=no])])
1065 if test x$rxvt_cv_func_setlocale = xyes; then
1066 AC_DEFINE(HAVE_SETLOCALE, 1, Define if plain old setlocale works)
1067 fi
1068
1069 AC_CACHE_CHECK(for working nl_langinfo, rxvt_cv_func_nl_langinfo,
1070 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <langinfo.h>]], [[nl_langinfo(CODESET);]])],[rxvt_cv_func_nl_langinfo=yes],[rxvt_cv_func_nl_langinfo=no])])
1071 if test x$rxvt_cv_func_nl_langinfo = xyes; then
1072 AC_DEFINE(HAVE_NL_LANGINFO, 1, Define if nl_langinfo(CODESET) works)
1073 fi
1074
1075 AC_CACHE_CHECK(for broken XIM callback, rxvt_broken_ximcb,
1076 [AC_COMPILE_IFELSE([
1077 #include <X11/Xlib.h>
1078
1079 void im_destroy_cb (XIC unused1, XPointer client_data, XPointer unused3);
1080
1081 void f() {
1082 XIMCallback cb;
1083 cb.callback = im_destroy_cb;
1084 }
1085 ],rxvt_broken_ximcb=yes,rxvt_broken_ximcb=no)])
1086
1087 if test x$rxvt_broken_ximcb = xyes; then
1088 AC_DEFINE(XIMCB_PROTO_BROKEN, 1, Define if your XIMCallback specifies XIC as first type.)
1089 fi
1090
1091 AC_CACHE_CHECK(for getpt, rxvt_cv_func_getpt,
1092 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define _GNU_SOURCE
1093 #ifdef HAVE_STDLIB_H
1094 # include <cstdlib>
1095 #endif]], [[(void)getpt();]])],[rxvt_cv_func_getpt=yes],[rxvt_cv_func_getpt=no])])
1096 if test x$rxvt_cv_func_getpt = xyes; then
1097 AC_DEFINE(HAVE_GETPT, 1, Define if you have _GNU_SOURCE getpt() )
1098 fi
1099
1100 dnl# if we don't guess right then it's up to the user
1101 AC_CACHE_CHECK(for pty/tty type, rxvt_cv_ptys,
1102 [if test x$ac_cv_func_openpty = xyes; then
1103 rxvt_cv_ptys=OPENPTY
1104 else if test x$ac_cv_func__getpty = xyes; then
1105 rxvt_cv_ptys=SGI4
1106 else if test -c /dev/ttyp20; then
1107 rxvt_cv_ptys=SCO
1108 else if test -c /dev/ptym/clone; then
1109 rxvt_cv_ptys=HPUX
1110 else if test x$rxvt_cv_func_getpt = xyes; then
1111 rxvt_cv_ptys=GLIBC
1112 else if test -c /dev/ptc -a -c /dev/pts; then
1113 rxvt_cv_ptys=PTC
1114 else if test -c /dev/ptc -a -d /dev/pts; then
1115 rxvt_cv_ptys=PTC
1116 else if test -c /dev/ptmx -a -c /dev/pts/0; then
1117 rxvt_cv_ptys=STREAMS
1118 else if test x$ac_cv_func_grantpt = xyes && test x$ac_cv_func_unlockpt = xyes; then
1119 dnl# catch CYGWIN
1120 rxvt_cv_ptys=STREAMS
1121 else
1122 rxvt_cv_ptys=BSD
1123 fi
1124 fi
1125 fi
1126 fi
1127 fi
1128 fi
1129 fi
1130 fi
1131 fi
1132 ])
1133
1134 if test x$rxvt_cv_ptys = xOPENPTY; then
1135 AC_DEFINE(PTYS_ARE_OPENPTY, 1, Define for this pty type)
1136 fi
1137 if test x$rxvt_cv_ptys = xSCO; then
1138 AC_DEFINE(PTYS_ARE_NUMERIC, 1, Define for this pty type)
1139 fi
1140 if test x$rxvt_cv_ptys = xSTREAMS; then
1141 AC_DEFINE(PTYS_ARE_PTMX, 1, Define for this pty type)
1142 fi
1143 if test x$rxvt_cv_ptys = xPTC; then
1144 AC_DEFINE(PTYS_ARE_PTC, 1, Define for this pty type)
1145 fi
1146 if test x$rxvt_cv_ptys = xSGI4; then
1147 AC_DEFINE(PTYS_ARE__GETPTY, 1, Define for this pty type)
1148 fi
1149 if test x$rxvt_cv_ptys = xCONVEX; then
1150 AC_DEFINE(PTYS_ARE_GETPTY, 1, Define for this pty type)
1151 fi
1152 if test x$rxvt_cv_ptys = xGLIBC; then
1153 AC_DEFINE(PTYS_ARE_GETPT, 1, Define for this pty type)
1154 fi
1155 if test x$rxvt_cv_ptys = xHPUX; then
1156 AC_DEFINE(PTYS_ARE_CLONE, 1, Define for this pty type)
1157 fi
1158 if test x$rxvt_cv_ptys = xBSD -o x$rxvt_cv_ptys = xHPUX -o x$rxvt_cv_ptys = xGLIBC; then
1159 AC_DEFINE(PTYS_ARE_SEARCHED, 1, Define for this pty type)
1160 fi
1161
1162
1163 AS_MESSAGE(checking for pty ranges...)
1164 ptys=`echo /dev/pty??`
1165 pch1=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\).$/\1/g' | sort -u | tr -d '\012'`
1166 pch2=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\)$/\1/g' | sort -u | tr -d '\012'`
1167 if test x$pch1 != x; then
1168 AC_DEFINE_UNQUOTED(PTYCHAR1, "$pch1", Define for first char in devptyXX)
1169 fi
1170 if test x$pch2 != x; then
1171 AC_DEFINE_UNQUOTED(PTYCHAR2, "$pch2", Define for second char in devptyXX)
1172 fi
1173
1174 dnl# --------------------------------------------------------------------------
1175 dnl# now add and remove other stuff
1176 dnl# --------------------------------------------------------------------------
1177 if test x$support_iso14755 = xyes; then
1178 AC_DEFINE(ISO_14755, 1, Define if you want ISO 14755 extended support)
1179 fi
1180 if test x$support_8bitctrls = xyes; then
1181 AC_DEFINE(EIGHT_BIT_CONTROLS, 1, Define if you want 8 bit control sequences)
1182 fi
1183 if test x$support_fading = xyes; then
1184 AC_DEFINE(OFF_FOCUS_FADING, 1, Define if you want faded colors when focus is lost)
1185 fi
1186 if test x$support_tinting = xyes; then
1187 AC_DEFINE(TINTING, 1, Define if you want your background to be tinted)
1188 fi
1189 if test x$support_inheritpixmap = xyes; then
1190 AC_DEFINE(TRANSPARENT, 1, Define if you want your background to use the parent window background)
1191 fi
1192 if test x$support_keepscrolling = xno; then
1193 AC_DEFINE(NO_SCROLLBAR_BUTTON_CONTINUAL_SCROLLING, 1, Define for continual scrolling when you keep the scrollbar button pressed)
1194 fi
1195 if test x$support_selectionscrolling = xyes; then
1196 AC_DEFINE(SELECTION_SCROLLING, 1, Define to allow scrolling when the selection moves to the top or bottom of the screen)
1197 fi
1198 if test x$support_menubar = xyes; then
1199 AC_DEFINE(MENUBAR, 1, Define if you want Menubar support)
1200 fi
1201 if test x$support_frills = xyes; then
1202 AC_DEFINE(ENABLE_FRILLS, 1, Define if you want handling for rarely used but handy features)
1203 fi
1204 if test x$support_linespace = xno; then
1205 AC_DEFINE(NO_LINESPACE, 1, Define if you don't want support linespace)
1206 fi
1207 if test x$support_24bit = xyes; then
1208 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)
1209 fi
1210 if test x$support_mousewheel = xyes; then
1211 AC_DEFINE(MOUSE_WHEEL, 1, Define to use wheel events (button4 and button5) to scroll)
1212 fi
1213 if test x$support_mouseslipwheel = xyes; then
1214 AC_DEFINE(MOUSE_SLIP_WHEELING, 1, Define to have CTRL cause wheel events to accelerate scrolling. Release CTRL to halt scrolling)
1215 fi
1216 if test x$support_utmp = xyes; then
1217 AC_DEFINE(UTMP_SUPPORT, 1, Define if you want to have utmp/utmpx support)
1218 fi
1219 if test x$support_wtmp = xyes; then
1220 AC_DEFINE(WTMP_SUPPORT, 1, Define if you want to have wtmp support when utmp/utmpx is enabled)
1221 fi
1222 if test x$support_lastlog = xyes; then
1223 AC_DEFINE(LASTLOG_SUPPORT, 1, Define if you want to have lastlog support when utmp/utmpx is enabled)
1224 fi
1225 if test x$support_xim = xyes -o x$multichar_set = xyes; then
1226 if test x$rxvt_cv_func_xlocale = xyes; then
1227 AC_DEFINE(USE_XIM, 1, Define if you want to have XIM (X Input Method) protocol support - required for multibyte characters input)
1228 fi
1229 fi
1230 if test x$support_xpm = xyes; then
1231 AC_DEFINE(XPM_BACKGROUND, 1, Define if you want to have sexy-looking background pixmaps. Needs libXpm)
1232 fi
1233 if test x$support_scroll_rxvt = xyes; then
1234 AC_DEFINE(RXVT_SCROLLBAR, 1, Support Rxvt original style scrollbars)
1235 scrolltypes="rxvt"
1236 fi
1237 if test x$support_scroll_next = xyes; then
1238 AC_DEFINE(NEXT_SCROLLBAR, 1, Support NeXT style scrollbars)
1239 scrolltypes="$scrolltypes next"
1240 fi
1241 if test x$support_scroll_xterm = xyes; then
1242 AC_DEFINE(XTERM_SCROLLBAR, 1, Support Xterm style scrollbars)
1243 scrolltypes="$scrolltypes xterm"
1244 fi
1245 if test x$support_scroll_plain = xyes; then
1246 AC_DEFINE(PLAIN_SCROLLBAR, 1, Support plain style scrollbars)
1247 scrolltypes="$scrolltypes plain"
1248 fi
1249 if test x$support_pointer_blank = xyes; then
1250 AC_DEFINE(POINTER_BLANK, 1, Define if you want hide the pointer while typing)
1251 fi
1252 if test x$support_cursor_blink = xyes; then
1253 AC_DEFINE(CURSOR_BLINK, 1, Define if you want blinking cursor support)
1254 fi
1255 if test x$support_text_blink = xyes; then
1256 AC_DEFINE(TEXT_BLINK, 1, Define if you want blinking text support)
1257 fi
1258 if test x$support_unicode3 = xyes; then
1259 AC_DEFINE(UNICODE_3, 1, Define if you want to represent unicode characters outside plane 0)
1260 fi
1261 if test x$support_combining = xyes; then
1262 AC_DEFINE(ENABLE_COMBINING, 1, Define if you want to automatically compose combining characters)
1263 fi
1264 if test x$codesets = xall; then
1265 codesets=jp,jp-ext,kr,cn,cn-ext
1266 fi
1267 AC_DEFINE(ENCODING_EU, 1, Define if you want european extended codesets)
1268 AC_DEFINE(ENCODING_VN, 1, Define if you want vietnamese codesets)
1269 for codeset in `echo $codesets | tr "[a-z,\\-]" "[A-Z _]"`; do
1270 case "$codeset" in
1271 JP ) AC_DEFINE(ENCODING_JP, 1, Define if you want japanese codesets) ;;
1272 JP_EXT ) AC_DEFINE(ENCODING_JP_EXT, 1, Define if you want extended japanese codesets) ;;
1273 KR ) AC_DEFINE(ENCODING_KR, 1, Define if you want korean codesets) ;;
1274 CN ) AC_DEFINE(ENCODING_CN, 1, Define if you want chinese codesets) ;;
1275 CN_EXT ) AC_DEFINE(ENCODING_CN_EXT, 1, Define if you want extended chinese codesets) ;;
1276 esac
1277 done
1278
1279 dnl> AC_CHECK_FUNCS(gettimeofday putenv select socket)
1280
1281 CFLAGS=${CFLAGS--O}
1282 LDFLAGS=${LDFLAGS--O}
1283
1284 CPPFLAGS="$CPPFLAGS"
1285 AC_SUBST(DEBUG)
1286 AC_SUBST(DINCLUDE)
1287 AC_SUBST(CFLAGS)
1288 AC_SUBST(CPPFLAGS)
1289 AC_SUBST(LDFLAGS)
1290 AC_SUBST(X_CFLAGS)
1291
1292 dnl# Attack the libs
1293 if test x$rxvt_cv_rpath = xyes -o x$rxvt_cv_R = xyes; then
1294 DLIB=`echo $DLIB | sed "$R_TRANSLATE"`
1295 LIBS=`echo $LIBS | sed "$R_TRANSLATE"`
1296 X_LIBS=`echo $X_LIBS | sed "$R_TRANSLATE"`
1297 X_EXTRA_LIBS=`echo $X_EXTRA_LIBS | sed "$R_TRANSLATE"`
1298 XPM_LIBS=`echo $XPM_LIBS | sed "$R_TRANSLATE"`
1299 fi
1300 AC_SUBST(DLIB)
1301 AC_SUBST(LIBS)
1302 AC_SUBST(X_LIBS)
1303 AC_SUBST(X_EXTRA_LIBS)
1304
1305 if test x$support_addstrings = xno; then
1306 AC_DEFINE(NO_STRINGS, 1, Define if you don't need to use our replacement string functions)
1307 fi
1308
1309 dnl# common parts of the Makefile
1310 MCOMMON=./autoconf/Make.common
1311 AC_SUBST_FILE(MCOMMON)
1312
1313 AC_ARG_PROGRAM
1314
1315 dnl# test for "sun" or "__sun__" before include sys_ioctl
1316
1317 dnl# revert HAVE_BLAH_H into a "#include <blah.h>"
1318 AC_DEFUN(RXVT_DEFINE_TO_INCLUDE, dnl
1319 [if test "$$3" = "$4" -o "$$5" = "$6"; then
1320 $1="#include <$2>"
1321 else
1322 $1="/* #include <$2> */"
1323 fi dnl
1324 AC_SUBST($1)])
1325
1326 RXVT_DEFINE_TO_INCLUDE(include_stdint_h, stdint.h, ac_cv_header_stdint_h, yes, notset, dontmatch)
1327 RXVT_DEFINE_TO_INCLUDE(include_stdarg_h, cstdarg, ac_cv_header_stdarg_h, yes, notset, dontmatch)
1328 RXVT_DEFINE_TO_INCLUDE(include_stdlib_h, cstdlib, ac_cv_header_stdlib_h, yes, notset, dontmatch)
1329 RXVT_DEFINE_TO_INCLUDE(include_unistd_h, unistd.h, ac_cv_header_unistd_h, yes, notset, dontmatch)
1330 RXVT_DEFINE_TO_INCLUDE(include_string_h, cstring, ac_cv_header_string_h, yes, notset, dontmatch)
1331 RXVT_DEFINE_TO_INCLUDE(include_fcntl_h, fcntl.h, ac_cv_header_fcntl_h, yes, notset, dontmatch)
1332 RXVT_DEFINE_TO_INCLUDE(include_util_h, util.h, ac_cv_header_util_h, yes, notset, dontmatch)
1333 RXVT_DEFINE_TO_INCLUDE(include_assert_h, assert.h, ac_cv_header_assert_h, yes, notset, dontmatch)
1334 RXVT_DEFINE_TO_INCLUDE(include_sys_ioctl_h, sys/ioctl.h, rxvt_cv_header_sysioctl, yes, notset, dontmatch)
1335 RXVT_DEFINE_TO_INCLUDE(include_sys_select_h, sys/select.h, ac_cv_header_sys_select_h, yes, notset, dontmatch)
1336 RXVT_DEFINE_TO_INCLUDE(include_sys_strredir_h, sys/strredir.h, ac_cv_header_sys_strredir_h, yes, notset, dontmatch)
1337 RXVT_DEFINE_TO_INCLUDE(include_sys_time_h, sys/time.h, ac_cv_header_sys_time_h, yes, notset, dontmatch)
1338 RXVT_DEFINE_TO_INCLUDE(include_time_h, time.h, ac_cv_header_sys_time_h, no, ac_cv_header_time, yes)
1339
1340 if test x$support_xft = xyes; then
1341 LIBS="$LIBS `pkg-config xft --libs`"
1342 CFLAGS="$CFLAGS `pkg-config xft --cflags`"
1343 CPPFLAGS="$CPPFLAGS `pkg-config xft --cflags`"
1344
1345 AC_CHECK_HEADERS(X11/Xft/Xft.h,,[support_xft=no])
1346 AC_CHECK_LIB(Xft,XftDrawString32,,[support_xft=no])
1347
1348 if test x$support_xft = xyes; then
1349 AC_DEFINE(XFT, 1, Define to enable xft support)
1350 fi
1351 fi
1352
1353 AC_CONFIG_FILES([autoconf/Make.common \
1354 Makefile \
1355 doc/Makefile \
1356 src/Makefile \
1357 src/test/Makefile \
1358 src/rxvtlib.h \
1359 W11/Makefile \
1360 ])
1361 AC_OUTPUT
1362
1363 echo "Configuration:
1364
1365 Rxvt version: $VERSION : $DATE
1366 Source code location: $srcdir
1367 Install path: ${prefix}/bin
1368 Compiler: $CXX
1369 Compiler flags: $CFLAGS
1370 Linker: $LINKER"
1371
1372 if test "$MALLOC_TYPE" = S; then
1373 echo " malloc support: system default"
1374 fi
1375 if test "$MALLOC_TYPE" = G; then
1376 echo " malloc support: Gray Watson's dmalloc"
1377 fi
1378 if test "$MALLOC_TYPE" = D; then
1379 echo " malloc support: Doug Lea's malloc"
1380 fi
1381
1382 if test x$support_xpm = xyes; then
1383 echo " Xpm library: $XPM_LIBS"
1384 fi
1385
1386 echo "
1387 The following are set in config.h
1388 "
1389 echo " pty/tty type: "$rxvt_cv_ptys
1390 if test x$support_utmp != xyes; then
1391 echo " utmp support: disabled"
1392 echo
1393 else
1394 echo " utmp support: enabled
1395 utmp file: $rxvt_cv_path_utmp
1396 utmpx file: $rxvt_cv_path_utmpx
1397 wtmp file: $rxvt_cv_path_wtmp
1398 wtmpx file: $rxvt_cv_path_wtmpx
1399 lastlog file: $rxvt_cv_path_lastlog
1400 ttys/ttytab file: $rxvt_cv_path_ttytab"
1401 echo
1402 fi
1403 if test x$term != x; then
1404 echo " set TERM to: $term"
1405 fi
1406 if test x$terminfo != x; then
1407 echo " set TERMINFO to: $terminfo"
1408 fi
1409 echo " default resource name: $RESNAME"
1410 echo " resource class: $RESCLASS"
1411 if test x$RESFALLBACK != x; then
1412 echo " resource class fallback: $RESFALLBACK"
1413 fi
1414 echo
1415 if test x$rxvt_cv_ptys = xUNKNOWN; then
1416 echo ".----------------------------------------------------------------."
1417 echo ". WARNING: could not determine pty/tty type. Do not build until ."
1418 echo ". the appropriate PTYS_ARE_* is defined in config.h ."
1419 echo ".----------------------------------------------------------------."
1420 fi
1421 if test x$support_xpm = xneedsmanualspecification; then
1422 echo ".----------------------------------------------------------------."
1423 echo ". WARNING: --enable-xpm-background was specified however the ."
1424 echo ". XPM includes files and libraries could not be found. ."
1425 echo ". XPM backgrounds are now being DISABLED! If you want ."
1426 echo ". to use them you should rerun configure with the ."
1427 echo ". appropriate --with-xpm-includes=/path/to/xpm/includes ."
1428 echo ". and --with-xpm-library=/path/to/xpm/library lines. ."
1429 echo ".----------------------------------------------------------------."
1430 fi
1431 if test x$support_xim = xyes -a x$rxvt_cv_func_xlocale = xno; then
1432 echo ".----------------------------------------------------------------."
1433 echo ". WARNING: --enable-xim was specified however the locale support ."
1434 echo ". functions could not be found. ."
1435 echo ". XIM is now being DISABLED! ."
1436 echo ".----------------------------------------------------------------."
1437 fi
1438
1439 echo " *** Please check src/feature.h for further options ***"
1440 echo
1441
1442 echo ".----------------------------------------------------------------."
1443 echo ". NOTE: most features are disabled by default, try ."
1444 echo ". configure --help to get an idea of the optional features ."
1445 echo ".----------------------------------------------------------------."
1446 echo
1447