ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/autoconf/configure.in
Revision: 1.31
Committed: Tue Aug 10 22:36:30 2004 UTC (19 years, 10 months ago) by root
Branch: MAIN
CVS Tags: rel-3_5
Changes since 1.30: +57 -80 lines
Log Message:
*** empty log message ***

File Contents

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