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