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