ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/autoconf/configure.in
Revision: 1.39
Committed: Sun Sep 5 09:32:59 2004 UTC (19 years, 10 months ago) by root
Branch: MAIN
CVS Tags: rel-4_0
Changes since 1.38: +3 -3 lines
Log Message:
*** empty log message ***

File Contents

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