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