ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/configure.ac
Revision: 1.69
Committed: Wed Aug 1 18:38:15 2007 UTC (16 years, 11 months ago) by root
Branch: MAIN
CVS Tags: rel-8_3
Changes since 1.68: +21 -16 lines
Log Message:
fix lots of configure bugs

File Contents

# Content
1 dnl#
2 dnl# Process this file with autoconf to produce a configure script.
3 dnl#
4
5 AC_INIT
6 AC_PREREQ(2.50)
7 AC_CONFIG_SRCDIR([src/feature.h])
8 AC_CONFIG_HEADER(config.h:config.h.in)
9
10 AC_CANONICAL_HOST
11
12 dnl RXVT version
13 changequote(, )dnl
14 VERSION=`sed -n -e 's/^.*[ \t]VERSION.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
15 DATE=`sed -n -e 's/^.*[ \t]DATE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
16 dnl LIBVERSION=`sed -n -e 's/^.*[ \t]LIBVERSION.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
17 changequote([, ])dnl
18 AC_SUBST(VERSION)dnl
19 AC_SUBST(DATE)dnl
20 AC_SUBST(LSMDATE)dnl
21 AC_SUBST(LIBVERSION)dnl
22 echo ""
23 echo "configuring for rxvt $VERSION"
24 echo ""
25
26 orig_CXXFLAGS="$CXXFLAGS"
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
36 AC_AIX
37 AC_ISC_POSIX
38 AC_LANG(C++)
39
40 dnl check wether we can link with gcc -lsupc++
41 if test x$GCC = xyes && test x$GXX = xyes; then
42 dnl FreeBSD (at least up to 5.3) has a broken GCC, workaround it
43 AC_MSG_CHECKING([for working libsupc++])
44 save_CXX="$CXX"
45 save_LIBS="$LIBS"
46 CXX="$CC"
47 LIBS="$LIBS -lsupc++"
48 LINKER="$CC"
49 AC_LINK_IFELSE(
50 [AC_LANG_PROGRAM([struct test { }; void f() try { throw new test; } catch (...) { throw; }],[])],
51 [AC_MSG_RESULT(ok)],
52 [
53 AC_MSG_RESULT([no, making everything bigger and slower])
54 LIBS="$save_LIBS"
55 LINKER="$save_CXX"
56 ]
57 )
58 CXX="$save_CXX"
59 fi
60 AC_SUBST(LINKER,[$LINKER])
61
62 dnl# --------------------------------------------------------------------------
63 dnl# Supply default CXXFLAGS, if not specified by `CXXFLAGS=flags ./configure'
64 dnl#
65 if test -z "$orig_CXXFLAGS"; then
66 if test x$GCC = xyes && test "x$GXX" = xyes; then
67 CXXFLAGS="-g -O3 -fno-threadsafe-statics -fno-enforce-eh-specs"
68 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])], [], [CXXFLAGS="-g -O3"])
69 else
70 CXXFLAGS="-O"
71 fi
72 CFLAGS="$CXXFLAGS"
73 fi
74
75 AC_DEFINE(_GNU_SOURCE, 1, Use all glibc features.)
76
77 case $host in
78 *-*-solaris* )
79 AC_DEFINE(_XOPEN_SOURCE, 500, Needed to get declarations for msg_control and msg_controllen on Solaris)
80 ;;
81 esac
82
83 dnl if test x$GXX = xyes; then
84 dnl CXXFLAGS="$CXXFLAGS" dnl I once had -fno-exceptions, but I am using them now...
85 dnl fi
86
87 dnl# FreeBSD needs to link libxpg4
88 AC_CHECK_FUNC(setlocale, [], [AC_CHECK_LIB(xpg4, setlocale, [LIBS="$LIBS -lxpg4"])])
89
90 dnl# solaris needs to link libnsl and socket
91 AC_CHECK_FUNC(gethostbyname, [], [AC_CHECK_LIB(nsl, gethostbyname, [LIBS="$LIBS -lnsl"])])
92 AC_CHECK_FUNC(socket, [], [AC_CHECK_LIB(socket, socket, [LIBS="$LIBS -lsocket"])])
93
94 dnl AC_ENABLE_SHARED(no)dnl# libtool
95 dnl AC_ENABLE_STATIC(yes)dnl# libtool
96 dnl AC_PROG_LIBTOOL()dnl# libtool
97
98 support_frills=yes
99 support_inheritpixmap=yes
100 support_tinting=yes
101 support_fading=yes
102 support_keepscrolling=yes
103 support_selectionscrolling=yes
104 support_mousewheel=yes
105 support_mouseslipwheel=yes
106 support_text_blink=yes
107 support_pointer_blank=yes
108 support_scroll_rxvt=yes
109 support_scroll_next=yes
110 support_scroll_xterm=yes
111 support_scroll_plain=yes
112 support_xim=yes
113 support_xpm=yes
114 support_afterimage=yes
115 support_afterstep=yes
116 support_xft=yes
117 support_unicode3=no
118 support_combining=yes
119 support_8bitctrls=no
120 support_iso14755=yes
121 support_styles=yes
122 support_perl=yes
123 codesets=all
124
125 dnl# --------------------------------------------------------------------------
126 dnl# CHECKING COMMAND LINE OPTIONS
127 dnl# --------------------------------------------------------------------------
128
129 if test "x$enable_shared" = xyes; then
130 AC_DEFINE(LIBRXVT, 1, Build shared library version - specify via configure only)
131 INSTALL_LIBRXVT=yes
132 fi
133 AC_SUBST(INSTALL_LIBRXVT)
134
135 AC_ARG_ENABLE(everything,
136 [ --enable-everything enable standard non-multichoice features
137 NOTE: this option is order dependent
138 NOTE: automatically enabled with --enable-shared],
139 [
140 if test x$enableval = xno; then
141 support_frills=no
142 support_inheritpixmap=no
143 support_tinting=no
144 support_fading=no
145 support_keepscrolling=no
146 support_selectionscrolling=no
147 support_lastlog=no
148 support_mousewheel=no
149 support_mouseslipwheel=no
150 support_text_blink=no
151 support_pointer_blank=no
152 support_scroll_rxvt=no
153 support_scroll_next=no
154 support_scroll_xterm=no
155 support_scroll_plain=no
156 support_utmp=no
157 support_wtmp=no
158 support_xim=no
159 support_xpm=no
160 support_afterimage=no
161 support_afterstep=no
162 support_xft=no
163 support_unicode3=no
164 support_combining=no
165 support_8bitctrls=no
166 support_iso14755=no
167 support_styles=no
168 support_perl=no
169 codesets=
170 fi
171 if test x$enableval = xyes; then
172 support_frills=yes
173 support_inheritpixmap=yes
174 support_tinting=yes
175 support_fading=yes
176 support_keepscrolling=yes
177 support_selectionscrolling=yes
178 support_lastlog=yes
179 support_mousewheel=yes
180 support_mouseslipwheel=yes
181 support_text_blink=yes
182 support_pointer_blank=yes
183 support_scroll_rxvt=yes
184 support_scroll_next=yes
185 support_scroll_xterm=yes
186 support_scroll_plain=yes
187 support_utmp=yes
188 support_wtmp=yes
189 support_xim=yes
190 support_xpm=yes
191 support_afterimage=yes
192 support_afterstep=yes
193 support_xft=yes
194 support_unicode3=yes
195 support_combining=yes
196 #support_8bitctrls=yes
197 support_iso14755=yes
198 support_styles=yes
199 support_perl=yes
200 codesets=all
201 fi
202 ])
203
204 AC_ARG_ENABLE(unicode3,
205 [ --enable-unicode3 use 21 instead of 16 bits to represent unicode characters],
206 [if test x$enableval = xyes -o x$enableval = xno; then
207 support_unicode3=$enableval
208 fi])
209
210 AC_ARG_ENABLE(combining,
211 [ --enable-combining enable composition of base and combining characters],
212 [if test x$enableval = xyes -o x$enableval = xno; then
213 support_combining=$enableval
214 fi])
215
216 AC_ARG_ENABLE(xft,
217 [ --enable-xft enable xft support on systems that have it],
218 [if test x$enableval = xyes -o x$enableval = xno; then
219 support_xft=$enableval
220 fi])
221
222 AC_ARG_ENABLE(font-styles,
223 [ --enable-font-styles enable bold and italic support],
224 [if test x$enableval = xyes -o x$enableval = xno; then
225 support_styles=$enableval
226 fi])
227
228 AC_ARG_ENABLE(xpm-background,
229 [ --enable-xpm-background enable background pixmaps],
230 [if test x$enableval = xyes -o x$enableval = xno; then
231 support_xpm=$enableval
232 fi])
233
234 AC_ARG_ENABLE(afterimage,
235 [ --enable-afterimage enable integration with libAfterImage for background images],
236 [if test x$enableval = xyes -o x$enableval = xno; then
237 support_afterimage=$enableval
238 fi])
239
240 AC_ARG_WITH(afterimage_config,
241 [ --with-afterimage-config=DIR use libAfterImage config script in DIR],
242 [if test "x$withval" != x; then
243 afterimage_config=$withval/afterimage-config
244 fi])
245
246 dnl AC_ARG_ENABLE(afterstep,
247 dnl [ --enable-afterstep enable integration with AfterStep window manager],
248 dnl [if test x$enableval = xyes -o x$enableval = xno; then
249 dnl support_afterstep=$enableval
250 dnl fi])
251
252 AC_ARG_ENABLE(transparency,
253 [ --enable-transparency enable transparent backgrounds],
254 [if test x$enableval = xyes -o x$enableval = xno; then
255 support_inheritpixmap=$enableval
256 fi])
257
258 AC_ARG_ENABLE(tinting,
259 [ --enable-tinting enable tinting of transparent bg],
260 [if test x$enableval = xyes -o x$enableval = xno; then
261 support_tinting=$enableval
262 fi])
263
264 AC_ARG_ENABLE(fading,
265 [ --enable-fading enable colors fading when off focus],
266 [if test x$enableval = xyes -o x$enableval = xno; then
267 support_fading=$enableval
268 fi])
269
270 AC_ARG_ENABLE(rxvt-scroll,
271 [ --enable-rxvt-scroll enable rxvt style scrollbar],
272 [if test x$enableval = xyes -o x$enableval = xno; then
273 support_scroll_rxvt=$enableval
274 fi])
275
276 AC_ARG_ENABLE(next-scroll,
277 [ --enable-next-scroll enable NeXT style scrollbar],
278 [if test x$enableval = xyes -o x$enableval = xno; then
279 support_scroll_next=$enableval
280 fi])
281
282 AC_ARG_ENABLE(xterm-scroll,
283 [ --enable-xterm-scroll enable Xterm style scrollbar],
284 [if test x$enableval = xyes -o x$enableval = xno; then
285 support_scroll_xterm=$enableval
286 fi])
287
288 AC_ARG_ENABLE(perl,
289 [ --enable-perl enable embedded perl interpreter],
290 [if test x$enableval = xyes -o x$enableval = xno; then
291 support_perl=$enableval
292 fi])
293
294 AC_ARG_ENABLE(plain-scroll,
295 [ --enable-plain-scroll enable plain style scrollbar],
296 [if test x$enableval = xyes -o x$enableval = xno; then
297 support_scroll_plain=$enableval
298 fi])
299
300 AC_ARG_WITH(codesets,
301 [ --with-codesets=NAME,.. compile in additional codesets (jp,jp_ext,kr,zh,zh_ext,all)],
302 [codesets="$withval"])
303
304 AC_ARG_ENABLE(xim,
305 [ --enable-xim XIM (X Input Method) protocol support],
306 [if test x$enableval = xyes -o x$enableval = xno; then
307 support_xim=$enableval
308 fi])
309
310 AC_ARG_ENABLE(backspace-key,
311 [ --disable-backspace-key disable handling of the backspace key],
312 [if test x$enableval = xno; then
313 AC_DEFINE(NO_BACKSPACE_KEY, 1, Define if you don't want support for the backspace key)
314 fi])
315
316 AC_ARG_ENABLE(delete-key,
317 [ --disable-delete-key disable handling of the delete key],
318 [if test x$enableval = xno; then
319 AC_DEFINE(NO_DELETE_KEY, 1, Define if you don't want support for the (non-keypad) delete key)
320 fi])
321
322 AC_ARG_ENABLE(resources,
323 [ --disable-resources disable all resource checking],
324 [if test x$enableval = xno; then
325 AC_DEFINE(NO_RESOURCES, 1, Define if you don't want any resources read)
326 fi])
327
328 AC_ARG_ENABLE(8bitctrls,
329 [ --enable-8bitctrls enable 8 bit control sequences (not recommended)],
330 [if test x$enableval = xyes -o x$enableval = xno; then
331 support_8bitctrls=$enableval
332 fi])
333
334 RESFALLBACK=Rxvt
335 AC_ARG_ENABLE(fallback,
336 [ --enable-fallback(=CLASS) fall back on CLASS resources in addition to URxvt ones (default: Rxvt)],
337 [
338 test x$enableval = xyes && enableval=Rxvt
339 test x$enableval = xno && enableval=
340 RESFALLBACK="$enableval"
341 ])
342
343 if test x$RESFALLBACK != x; then
344 AC_DEFINE_UNQUOTED(RESFALLBACK, "$RESFALLBACK", [Fallback resource class])
345 fi
346
347 RESNAME=urxvt
348 AC_ARG_WITH(res-name,
349 [ --with-res-name=NAME use this as default resource name (default: urxvt)],
350 [RESNAME="$withval"])
351 AC_DEFINE_UNQUOTED(RESNAME,"$RESNAME", [Default resource name])
352
353 RESCLASS=URxvt
354 AC_ARG_WITH(res-class,
355 [ --with-res-class=CLASS use this as the resource class (default: URxvt)],
356 [RESCLASS="$withval"])
357 AC_DEFINE_UNQUOTED(RESCLASS,"$RESCLASS", [Resource class])
358
359 RXVTNAME=urxvt
360 AC_ARG_WITH(name,
361 [ --with-name=NAME set the basename for the installed binaries (default: urxvt)],
362 [RXVTNAME="$withval"])
363 AC_DEFINE_UNQUOTED(RXVTNAME,"$RXVTNAME", [Binary base name])
364
365 RXVTNAME=`echo "$RXVTNAME"|sed "$program_transform_name"`
366 AC_SUBST(RXVTNAME)
367
368 AC_ARG_ENABLE(swapscreen,
369 [ --disable-swapscreen disable swap screen support],
370 [if test x$enableval = xno; then
371 AC_DEFINE(NO_SECONDARY_SCREEN, 1, Disable the secondary screen. Many programs use the secondary screen as their workplace)
372 fi])
373
374 AC_ARG_ENABLE(iso14755,
375 [ --enable-iso14755 enable support for extended ISO 14755 modes],
376 [if test x$enableval = xyes -o x$enableval = xno; then
377 support_iso14755=$enableval
378 fi])
379
380 AC_ARG_ENABLE(frills,
381 [ --enable-frills enable support for rarely used features],
382 [if test x$enableval = xyes -o x$enableval = xno; then
383 support_frills=$enableval
384 fi])
385
386 AC_ARG_ENABLE(keepscrolling,
387 [ --enable-keepscrolling enable continual scrolling on scrollbar arrow press],
388 [if test x$enableval = xyes -o x$enableval = xno; then
389 support_keepscrolling=$enableval
390 fi])
391
392 AC_ARG_ENABLE(selectionscrolling,
393 [ --enable-selectionscrolling enable scrolling during selections],
394 [if test x$enableval = xyes -o x$enableval = xno; then
395 support_selectionscrolling=$enableval
396 fi])
397
398 AC_ARG_ENABLE(mousewheel,
399 [ --enable-mousewheel enable scrolling via mouse wheel or buttons 4 & 5],
400 [if test x$enableval = xyes -o x$enableval = xno; then
401 support_mousewheel=$enableval
402 fi])
403
404 AC_ARG_ENABLE(slipwheeling,
405 [ --enable-slipwheeling enable slip wheel scrolling (requires previous)],
406 [if test x$enableval = xyes -o x$enableval = xno; then
407 support_mouseslipwheel=$enableval
408 fi])
409
410 AC_ARG_ENABLE(smart-resize,
411 [ --enable-smart-resize enable smart growth/shrink behaviour],
412 [if test x$enableval = xyes; then
413 AC_DEFINE(SMART_RESIZE, 1, Define to use "smart" resize behavior)
414 fi])
415
416 AC_ARG_ENABLE(text-blink,
417 [ --enable-text-blink enable blinking text],
418 [if test x$enableval = xyes -o x$enableval = xno; then
419 support_text_blink=$enableval
420 fi])
421
422 AC_ARG_ENABLE(pointer-blank,
423 [ --enable-pointer-blank enable pointer blank when typing or inactive pointer],
424 [if test x$enableval = xyes -o x$enableval = xno; then
425 support_pointer_blank=$enableval
426 fi])
427
428 AC_ARG_WITH(term,
429 [ --with-term=NAME set the terminal to NAME (default: rxvt)],
430 [if test x$withval != x; then
431 AC_DEFINE_UNQUOTED(TERMENV, "$withval",Set TERM to the value given by configure) term="$withval"
432 fi])
433
434 AC_ARG_WITH(terminfo,
435 [ --with-terminfo=PATH set the path to the terminfo tree to PATH],
436 [if test x$withval != x; then
437 AC_DEFINE_UNQUOTED(RXVT_TERMINFO, "$withval", Set TERMINFO value to the value given by configure) terminfo="$withval"
438 fi])
439
440 dnl# --------------------------------------------------------------------------
441
442 AC_PATH_PROG(TIC, tic)
443
444 dnl# need a neat way to detect SVR4 or its features
445 dnl# in src/command.c we use these functions:
446 dnl# grantpt(), unlockpt(), ptsname(), which are defined in <sys/ptms.h>
447 dnl# - but are these also defined for other systems?
448
449 dnl# hack to find if this is SVR4 -- who knows?
450 dnl## AC_MSG_CHECKING(for SVR4)
451 dnl## AC_EGREP_CPP(yes,
452 dnl## [#if defined (SVR4) || defined (_SVR4) || defined (__svr4__)
453 dnl## yes;
454 dnl## #endif
455 dnl## ], [AC_MSG_RESULT(yes); AC_DEFINE(PERHAPS_SVR4)], AC_MSG_RESULT(perhaps not?))
456
457 AC_PATH_XTRA
458
459 dnl# the only reasonable way to find libXpm is do-it-yourself
460 dnl# only check if we want xpm-background
461
462 AFTERIMAGE_CFLAGS=
463 AFTERIMAGE_LIBS=
464 AFTERIMAGE_VERSION=
465
466 if test x$support_afterimage = xyes; then
467 support_afterimage=no
468
469 if test "x$afterimage_config" = "x" ; then
470 AC_PATH_PROG(afterimage_config, afterimage-config, no)
471 fi
472 if test "x$afterimage_config" != "xno" ; then
473 AC_MSG_CHECKING(for libAfterImage version >= 1.15)
474 xAFTERIMAGE_VERSION=`$afterimage_config --version`
475 if test -n "$xAFTERIMAGE_VERSION" ; then
476 xAFTERIMAGE_CFLAGS=`$afterimage_config --cflags`
477 xAFTERIMAGE_LIBS=`$afterimage_config --libs`
478 if test "x$xAFTERIMAGE_LIBS" != "x"; then
479 libai_ver_major=`echo $xAFTERIMAGE_VERSION | cut -f 1 -d .`
480 libai_ver_minor=`echo $xAFTERIMAGE_VERSION | cut -f 2 -d .`
481 if test $libai_ver_major -gt 1 -o \( $libai_ver_major -eq 1 -a $libai_ver_minor -ge 15 \); then
482 support_afterimage=yes
483 AFTERIMAGE_CFLAGS="$xAFTERIMAGE_CFLAGS"
484 AFTERIMAGE_LIBS="$xAFTERIMAGE_LIBS"
485 AFTERIMAGE_VERSION="$xAFTERIMAGE_VERSION"
486 fi
487 fi
488 fi
489 if test "x$support_afterimage" = "xyes"; then
490 AC_MSG_RESULT($AFTERIMAGE_LIBS)
491 else
492 AC_MSG_RESULT(no)
493 fi
494 fi
495 fi
496
497 if test x$support_afterimage != xyes -a x$support_xpm = xyes ; then
498 VT_FIND_LIBXPM
499 if test x$no_xpm = xyes; then
500 support_xpm=needsmanualspecification
501 fi
502 fi
503
504 dnl# --------------------------------------------------------------------------
505 dnl# CHECKING FOR HEADER FILES
506 dnl# --------------------------------------------------------------------------
507 AC_HEADER_SYS_WAIT
508 AC_CHECK_HEADERS( \
509 assert.h \
510 fcntl.h \
511 stdarg.h \
512 stdlib.h \
513 string.h \
514 termios.h \
515 unistd.h \
516 sys/byteorder.h \
517 sys/ioctl.h \
518 sys/select.h \
519 sys/sockio.h \
520 sys/strredir.h \
521 sys/time.h \
522 stdint.h \
523 wchar.h \
524 cwchar \
525 clocale \
526 )
527
528 AC_HEADER_TIME
529
530 dnl# check to allow both <termios.h> and <sys/ioctl.h>
531 AC_CACHE_CHECK(whether termios.h and sys/ioctl.h may both be included, rxvt_cv_header_sysioctl,
532 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>
533 #include <sys/ioctl.h>
534 #ifdef HAVE_TERMIOS_H
535 #include <termios.h>
536 #endif]], [[int a = ECHO;]])],[rxvt_cv_header_sysioctl=yes],[rxvt_cv_header_sysioctl=no])])
537
538 AC_CACHE_CHECK([for XPointer], rxvt_cv_xpointer,
539 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <X11/Xlib.h>]], [[XPointer dummy;]])],[rxvt_cv_xpointer=yes],[rxvt_cv_xpointer=no])])
540 if test x$rxvt_cv_xpointer = xyes; then
541 AC_DEFINE(HAVE_XPOINTER, 1, Define if you have XPointer typedef)
542 fi
543
544 AC_CACHE_CHECK([for XLIB_ILLEGAL_ACCESS], rxvt_xlib_illegal_access,
545 [AC_COMPILE_IFELSE(
546 [AC_LANG_PROGRAM([
547 #define XLIB_ILLEGAL_ACCESS
548 #include <X11/Xlib.h>
549 ],[
550 Display *dpy;
551 dpy->xdefaults = (char *)0;
552 ])],
553 [rxvt_xlib_illegal_access=yes],[rxvt_xlib_illegal_access=no]
554 )])
555 if test x$rxvt_xlib_illegal_access = xyes; then
556 AC_DEFINE(XLIB_ILLEGAL_ACCESS, 1, Define ONLY iff Xlib.h supports it)
557 fi
558
559 AC_C_CONST
560 AC_C_INLINE
561
562 dnl> AC_HEADER_STDC dnl# skip this test, Sun always fails anyhow.
563
564 dnl# --------------------------------------------------------------------------
565 dnl# CHECKING FOR MISSING TYPEDEFS
566 dnl# --------------------------------------------------------------------------
567 dnl# Missing typedefs and replacements
568 AC_TYPE_MODE_T
569 dnl> AC_CHECK_TYPE(umode_t, int)
570 dnl> AC_CHECK_TYPE(off_t, long)
571 AC_TYPE_PID_T
572 AC_TYPE_UID_T
573
574 AC_CHECK_SIZEOF(short, 2)
575 AC_CHECK_SIZEOF(int, 4)
576 dnl AC_CHECK_SIZEOF(long, 4)
577 AC_CHECK_SIZEOF(long long, 8)
578 AC_CHECK_SIZEOF(int *, 4)
579
580 dnl# see usage below
581 AC_DEFUN([RXVT_CHECK_SIZE],
582 [AC_CACHE_CHECK([for $2], $1,
583 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdint.h>]], [[$2 dummy;]])],[$1=yes],[dnl
584 if test "$ac_cv_sizeof_char" -ge $3; then
585 $1="$4 char"
586 else
587 if test "$ac_cv_sizeof_short" -ge $3; then
588 $1="$4 short"
589 else
590 if test "$ac_cv_sizeof_int" -ge $3; then
591 $1="$4 int"
592 else
593 if test "$ac_cv_sizeof_long" -ge $3; then
594 $1="$4 long"
595 else
596 if test "$ac_cv_sizeof_long_long" -ge $3; then
597 $1="$4 long long"
598 else
599 $1="$4 $5" # we _must_ have a (possibly wrong) default
600 fi
601 fi
602 fi
603 fi
604 fi])])]
605 if test x"$$1" != xyes; then
606 $6="typedef $$1 $2;"
607 else
608 if test x"$4" = x; then
609 $6="/* typedef $5 $2; */"
610 else
611 $6="/* typedef $4 $5 $2; */"
612 fi
613 fi dnl
614 )
615 dnl#
616 dnl# Look for types the system may know about anyway.
617 dnl#
618 RXVT_CHECK_SIZE(rxvt_cv_int16_t, int16_t, 2, , short, rxvt_int16_typedef)
619 AC_SUBST(rxvt_int16_typedef)
620 RXVT_CHECK_SIZE(rxvt_cv_uint16_t, uint16_t, 2, unsigned, short, rxvt_uint16_typedef)
621 AC_SUBST(rxvt_uint16_typedef)
622 RXVT_CHECK_SIZE(rxvt_cv_int32_t, int32_t, 4, , int, rxvt_int32_typedef)
623 AC_SUBST(rxvt_int32_typedef)
624 RXVT_CHECK_SIZE(rxvt_cv_uint32_t, uint32_t, 4, unsigned, int, rxvt_uint32_typedef)
625 AC_SUBST(rxvt_uint32_typedef)
626 dnl RXVT_CHECK_SIZE(rxvt_cv_int64_t, int64_t, 8, , long long, rxvt_int64_typedef)
627 dnl AC_SUBST(rxvt_int64_typedef)
628 dnl RXVT_CHECK_SIZE(rxvt_cv_uint64_t, uint64_t, 8, unsigned, long long, rxvt_uint64_typedef)
629 dnl AC_SUBST(rxvt_uint64_typedef)
630 dnl#
631 dnl# Now look for another we use
632 dnl#
633 if test "$ac_cv_sizeof_int_p" -eq 8; then
634 rxvt_intp_define="#define intp_t int64_t"
635 rxvt_u_intp_define="#define u_intp_t u_int64_t"
636 else
637 if test "$ac_cv_sizeof_int_p" -eq 4; then
638 rxvt_intp_define="#define intp_t int32_t"
639 rxvt_u_intp_define="#define u_intp_t u_int32_t"
640 else
641 if test "$ac_cv_sizeof_int_p" -eq 2; then
642 rxvt_intp_define="#define intp_t int16_t"
643 rxvt_u_intp_define="#define u_intp_t u_int16_t"
644 else
645 rxvt_intp_define="#error set intp_t"
646 rxvt_u_intp_define="#error set u_intp_t"
647 fi
648 fi
649 fi
650 AC_SUBST(rxvt_intp_define)
651 AC_SUBST(rxvt_u_intp_define)
652
653 dnl# --------------------------------------------------------------------------
654 dnl# CHECKING FOR LIBRARY FUNCTIONS
655 dnl# --------------------------------------------------------------------------
656 AC_TYPE_SIGNAL
657 dnl> AC_FUNC_VPRINTF
658
659 AC_CHECK_FUNCS( \
660 unsetenv \
661 setutent \
662 on_exit \
663 )
664
665 UTMP_CHECK
666
667 dnl# --------------------------------------------------------------------------
668
669 dnl# find ttys/ttytab
670 AC_CACHE_CHECK(where ttys/ttytab is located, rxvt_cv_path_ttytab,
671 [for ttys_file in dnl
672 /etc/ttys /etc/ttytab;
673 do
674 if test -f "$ttys_file" ; then
675 rxvt_cv_path_ttytab=$ttys_file
676 break
677 fi
678 done
679 ])
680 if test x$rxvt_cv_path_ttytab != x; then
681 AC_DEFINE_UNQUOTED(TTYTAB_FILENAME, "$rxvt_cv_path_ttytab", Define location of ttys/ttytab)
682 fi
683
684 dnl# --------------------------------------------------------------------------
685 dnl# --------------------------------------------------------------------------
686
687 dnl# this is a really hack test for some basic Xlocale stuff
688 ac_save_LIBS=$LIBS
689 ac_save_CFLAGS=$CFLAGS
690 CFLAGS="$CFLAGS $X_CFLAGS"
691 LIBS="$LIBS $X_LIBS $X_EXTRA_LIBS -lX11"
692 AC_CACHE_CHECK(for working Xlocale, rxvt_cv_func_xlocale,
693 [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <X11/Xlib.h>
694 #include <stdlib.h>
695 main() {
696 char *p;
697 if ((p = XSetLocaleModifiers("@im=none")) != NULL && *p)
698 exit (XSupportsLocale() ? 0 : 1);
699 else
700 exit (1);}]])],[dnl
701 rxvt_cv_func_xlocale=yes],[rxvt_cv_func_xlocale=no],[dnl
702 :])])
703 if test x$support_xim = xyes; then
704 if test x$rxvt_cv_func_xlocale = xyes; then
705 AC_DEFINE(USE_XIM, 1, Define if you want to have XIM (X Input Method) protocol support - required for multibyte characters input)
706 fi
707 fi
708
709 AC_CACHE_CHECK(for working X setlocale, rxvt_cv_func_xsetlocale,
710 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define X_LOCALE 1
711 #include <X11/Xlocale.h>]], [[setlocale(LC_CTYPE, "");]])],[rxvt_cv_func_xsetlocale=yes],[rxvt_cv_func_xsetlocale=no])])
712 if test x$rxvt_cv_func_xsetlocale = xyes; then
713 AC_DEFINE(HAVE_XSETLOCALE, 1, Define if setlocale (defined to Xsetlocale) works)
714 fi
715 LIBS=$ac_save_LIBS
716 CFLAGS=$ac_save_CFLAGS
717
718 AC_CACHE_CHECK(for working plain setlocale, rxvt_cv_func_setlocale,
719 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <clocale>]], [[setlocale(LC_CTYPE, "");]])],[rxvt_cv_func_setlocale=yes],[rxvt_cv_func_setlocale=no])])
720 if test x$rxvt_cv_func_setlocale = xyes; then
721 AC_DEFINE(HAVE_SETLOCALE, 1, Define if plain old setlocale works)
722 fi
723
724 AC_CACHE_CHECK(for working nl_langinfo, rxvt_cv_func_nl_langinfo,
725 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <langinfo.h>]], [[nl_langinfo(CODESET);]])],[rxvt_cv_func_nl_langinfo=yes],[rxvt_cv_func_nl_langinfo=no])])
726 if test x$rxvt_cv_func_nl_langinfo = xyes; then
727 AC_DEFINE(HAVE_NL_LANGINFO, 1, Define if nl_langinfo(CODESET) works)
728 fi
729
730 SCM_RIGHTS_CHECK
731
732 AC_CACHE_CHECK(for broken XIM callback, rxvt_broken_ximcb,
733 [AC_COMPILE_IFELSE([
734 #include <X11/Xlib.h>
735
736 void im_destroy_cb (XIC unused1, XPointer client_data, XPointer unused3);
737
738 void f() {
739 XIMCallback cb;
740 cb.callback = im_destroy_cb;
741 }
742 ],rxvt_broken_ximcb=yes,rxvt_broken_ximcb=no)])
743
744 if test x$rxvt_broken_ximcb = xyes; then
745 AC_DEFINE(XIMCB_PROTO_BROKEN, 1, Define if your XIMCallback specifies XIC as first type.)
746 fi
747
748 PTY_CHECK
749
750 TTY_GROUP_CHECK
751
752 dnl# --------------------------------------------------------------------------
753 dnl# now add and remove other stuff
754 dnl# --------------------------------------------------------------------------
755 if test x$support_xft = xyes; then
756 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
757 if test $PKG_CONFIG != no && $PKG_CONFIG --exists xft; then
758 LIBS="$LIBS `$PKG_CONFIG xft --libs`"
759 CPPFLAGS="$CPPFLAGS `$PKG_CONFIG xft --cflags`"
760 else
761 AC_PATH_PROG(XFT_CONFIG, xft-config, no)
762 if test $XFT_CONFIG != no; then
763 LIBS="$LIBS `$XFT_CONFIG --libs`"
764 CPPFLAGS="$CPPFLAGS `$XFT_CONFIG --cflags`"
765 fi
766 fi
767
768 AC_CHECK_HEADERS(X11/Xft/Xft.h,,[support_xft=no])
769 AC_CHECK_LIB(Xft,XftDrawString32,,[support_xft=no])
770
771 if test x$support_xft = xyes; then
772 AC_DEFINE(XFT, 1, Define to enable xft support)
773 fi
774 fi
775 if test x$support_styles = xyes; then
776 AC_DEFINE(ENABLE_STYLES, 1, Define if you want bold and italic support)
777 fi
778 if test x$support_iso14755 = xyes; then
779 AC_DEFINE(ISO_14755, 1, Define if you want ISO 14755 extended support)
780 fi
781 if test x$support_8bitctrls = xyes; then
782 AC_DEFINE(EIGHT_BIT_CONTROLS, 1, Define if you want 8 bit control sequences)
783 fi
784 if test x$support_fading = xyes; then
785 AC_DEFINE(OFF_FOCUS_FADING, 1, Define if you want faded colors when focus is lost)
786 fi
787 if test x$support_tinting = xyes; then
788 AC_DEFINE(TINTING, 1, Define if you want your background to be tinted)
789 fi
790 if test x$support_inheritpixmap = xyes; then
791 AC_DEFINE(ENABLE_TRANSPARENCY, 1, Define if you want your background to use the parent window background)
792 fi
793 if test x$support_keepscrolling = xno; then
794 AC_DEFINE(NO_SCROLLBAR_BUTTON_CONTINUAL_SCROLLING, 1, Define for continual scrolling when you keep the scrollbar button pressed)
795 fi
796 if test x$support_selectionscrolling = xyes; then
797 AC_DEFINE(SELECTION_SCROLLING, 1, Define to allow scrolling when the selection moves to the top or bottom of the screen)
798 fi
799 if test x$support_mousewheel = xyes; then
800 AC_DEFINE(MOUSE_WHEEL, 1, Define to use wheel events (button4 and button5) to scroll)
801 fi
802 if test x$support_mouseslipwheel = xyes; then
803 AC_DEFINE(MOUSE_SLIP_WHEELING, 1, Define to have CTRL cause wheel events to accelerate scrolling. Release CTRL to halt scrolling)
804 fi
805 if test x$support_xpm = xyes -o x$support_afterimage = xyes ; then
806 AC_DEFINE(XPM_BACKGROUND, 1, Define if you want to have sexy-looking background pixmaps. Needs libXpm or libAfterImage)
807 fi
808
809 if test x$support_afterimage = xyes; then
810 AC_DEFINE(HAVE_AFTERIMAGE, 1, Define if you want to use libAfterImage for image processing)
811 fi
812
813 dnl if test x$support_afterstep = xyes; then
814 dnl AC_DEFINE(AFTERSTEP_INTEGRATION, 1, Define if you want to integrate with AfterStep window manager)
815 dnl fi
816
817 if test x$support_scroll_rxvt = xyes; then
818 AC_DEFINE(RXVT_SCROLLBAR, 1, Support Rxvt original style scrollbars)
819 scrolltypes="rxvt"
820 fi
821 if test x$support_scroll_next = xyes; then
822 AC_DEFINE(NEXT_SCROLLBAR, 1, Support NeXT style scrollbars)
823 scrolltypes="$scrolltypes next"
824 fi
825 if test x$support_scroll_xterm = xyes; then
826 AC_DEFINE(XTERM_SCROLLBAR, 1, Support Xterm style scrollbars)
827 scrolltypes="$scrolltypes xterm"
828 fi
829 if test x$support_scroll_plain = xyes; then
830 AC_DEFINE(PLAIN_SCROLLBAR, 1, Support plain style scrollbars)
831 scrolltypes="$scrolltypes plain"
832 fi
833 if test x$support_pointer_blank = xyes; then
834 AC_DEFINE(POINTER_BLANK, 1, Define if you want hide the pointer while typing)
835 fi
836 if test x$support_text_blink = xyes; then
837 AC_DEFINE(TEXT_BLINK, 1, Define if you want blinking text support)
838 fi
839 if test x$support_unicode3 = xyes; then
840 AC_DEFINE(UNICODE_3, 1, Define if you want to represent unicode characters outside plane 0)
841 fi
842 if test x$support_combining = xyes; then
843 AC_DEFINE(ENABLE_COMBINING, 1, Define if you want to automatically compose combining characters)
844 fi
845 if test x$codesets = xall; then
846 codesets=jp,jp-ext,kr,zh,zh-ext
847 fi
848 AC_DEFINE(ENCODING_EU, 1, Define if you want european extended codesets)
849 AC_DEFINE(ENCODING_VN, 1, Define if you want vietnamese codesets)
850 for codeset in `echo $codesets | tr "[a-z,\\-]" "[A-Z _]"`; do
851 case "$codeset" in
852 JP ) AC_DEFINE(ENCODING_JP, 1, Define if you want japanese codesets) ;;
853 JP_EXT ) AC_DEFINE(ENCODING_JP_EXT, 1, Define if you want extended japanese codesets) ;;
854 KR ) AC_DEFINE(ENCODING_KR, 1, Define if you want korean codesets) ;;
855 ZH ) AC_DEFINE(ENCODING_ZH, 1, Define if you want chinese codesets) ;;
856 ZH_EXT ) AC_DEFINE(ENCODING_ZH_EXT, 1, Define if you want extended chinese codesets) ;;
857 esac
858 done
859
860 IF_PERL=\#
861 if test x$support_perl = xyes; then
862 AC_PATH_PROG(PERL, perl5)
863 AC_PATH_PROG(PERL, perl)
864
865 AC_MSG_CHECKING(for $PERL suitability)
866 if $PERL -MExtUtils::Embed -e "use v5.8" >/dev/null 2>/dev/null; then
867
868 save_CXXFLAGS="$CXXFLAGS"
869 save_LIBS="$LIBS"
870 CXXFLAGS="$CXXFLAGS `$PERL -MExtUtils::Embed -e ccopts`"
871 LIBS="$LIBS `$PERL -MExtUtils::Embed -e ldopts`"
872 AC_TRY_LINK([
873 #include <EXTERN.h>
874 #include <perl.h>
875 #include <XSUB.h>
876 ],[
877 PerlInterpreter *perl = perl_alloc ();
878 ],[rxvt_perl_link=yes],[rxvt_perl_link=no])
879 CXXFLAGS="$save_CXXFLAGS"
880 LIBS="$save_LIBS"
881
882 if test x$rxvt_perl_link = xyes; then
883 AC_MSG_RESULT(ok)
884 AC_DEFINE(ENABLE_PERL, 1, Define if you can embed a perl interpreter)
885 IF_PERL=
886 PERL_O=rxvtperl.o
887 PERLFLAGS="`$PERL -MExtUtils::Embed -e ccopts`"
888 PERLLIB="`$PERL -MExtUtils::Embed -e ldopts`"
889 PERLPRIVLIBEXP="`$PERL -MConfig -e 'print $Config{privlibexp}'`"
890 else
891 AC_MSG_ERROR([no, unable to link])
892 fi
893 else
894 AC_MSG_ERROR([no working perl found, or perl not version >= 5.8])
895 fi
896 fi
897 AC_SUBST(PERLLIB)
898 AC_SUBST(PERLFLAGS)
899 AC_SUBST(PERLPRIVLIBEXP)
900 AC_SUBST(PERL)
901 AC_SUBST(IF_PERL)
902 AC_SUBST(PERL_O)
903
904 if test x$support_perl = xyes; then
905 support_frills=yes
906 fi
907
908 if test x$support_frills = xyes; then
909 AC_DEFINE(ENABLE_FRILLS, 1, Define if you want handling for rarely used but handy features)
910 fi
911
912 AC_SUBST(CFLAGS)
913 AC_SUBST(CPPFLAGS)
914 AC_SUBST(LDFLAGS)
915 AC_SUBST(X_CFLAGS)
916
917 dnl# Attack the libs
918 AC_SUBST(LIBS)
919 AC_SUBST(X_LIBS)
920 AC_SUBST(X_EXTRA_LIBS)
921
922 AC_SUBST(AFTERIMAGE_CFLAGS)
923 AC_SUBST(AFTERIMAGE_LIBS)
924
925 AC_ARG_PROGRAM
926
927 dnl# test for "sun" or "__sun__" before include sys_ioctl
928
929 dnl# revert HAVE_BLAH_H into a "#include <blah.h>"
930 AC_DEFUN([RXVT_DEFINE_TO_INCLUDE], dnl
931 [if test "$$3" = "$4" -o "$$5" = "$6"; then
932 $1="#include <$2>"
933 else
934 $1="/* #include <$2> */"
935 fi dnl
936 AC_SUBST($1)])
937
938 RXVT_DEFINE_TO_INCLUDE(include_stdint_h, stdint.h, ac_cv_header_stdint_h, yes, notset, dontmatch)
939 RXVT_DEFINE_TO_INCLUDE(include_stdarg_h, cstdarg, ac_cv_header_stdarg_h, yes, notset, dontmatch)
940 RXVT_DEFINE_TO_INCLUDE(include_stdlib_h, cstdlib, ac_cv_header_stdlib_h, yes, notset, dontmatch)
941 RXVT_DEFINE_TO_INCLUDE(include_unistd_h, unistd.h, ac_cv_header_unistd_h, yes, notset, dontmatch)
942 RXVT_DEFINE_TO_INCLUDE(include_string_h, cstring, ac_cv_header_string_h, yes, notset, dontmatch)
943 RXVT_DEFINE_TO_INCLUDE(include_fcntl_h, fcntl.h, ac_cv_header_fcntl_h, yes, notset, dontmatch)
944 RXVT_DEFINE_TO_INCLUDE(include_util_h, util.h, ac_cv_header_util_h, yes, notset, dontmatch)
945 RXVT_DEFINE_TO_INCLUDE(include_assert_h, assert.h, ac_cv_header_assert_h, yes, notset, dontmatch)
946 RXVT_DEFINE_TO_INCLUDE(include_sys_ioctl_h, sys/ioctl.h, rxvt_cv_header_sysioctl, yes, notset, dontmatch)
947 RXVT_DEFINE_TO_INCLUDE(include_sys_select_h, sys/select.h, ac_cv_header_sys_select_h, yes, notset, dontmatch)
948 RXVT_DEFINE_TO_INCLUDE(include_sys_strredir_h, sys/strredir.h, ac_cv_header_sys_strredir_h, yes, notset, dontmatch)
949 RXVT_DEFINE_TO_INCLUDE(include_sys_time_h, sys/time.h, ac_cv_header_sys_time_h, yes, notset, dontmatch)
950 RXVT_DEFINE_TO_INCLUDE(include_time_h, time.h, ac_cv_header_sys_time_h, no, ac_cv_header_time, yes)
951
952 AC_CONFIG_FILES([Makefile \
953 doc/Makefile \
954 src/Makefile \
955 src/rxvtlib.h \
956 ])
957 AC_OUTPUT
958
959 echo "Configuration:
960
961 Rxvt version: $VERSION : $DATE
962 Source code location: $srcdir
963 Install path: ${prefix}/bin
964 Compiler: $CXX
965 Compiler flags: $CXXFLAGS
966 Linker: $LINKER"
967
968 if test x$support_xpm = xyes; then
969 echo " Xpm library: $XPM_LIBS"
970 fi
971
972 if test x$support_afterimage = xyes; then
973 echo " AfterImage support: yes"
974 fi
975
976 dnl if test x$support_afterstep = xyes; then
977 dnl echo " AfterStep integration: yes"
978 dnl fi
979
980 if test x$term != x; then
981 echo " set TERM to: $term"
982 fi
983 if test x$terminfo != x; then
984 echo " set TERMINFO to: $terminfo"
985 fi
986 echo " default resource name: $RESNAME"
987 echo " resource class: $RESCLASS"
988 if test x$RESFALLBACK != x; then
989 echo " resource class fallback: $RESFALLBACK"
990 fi
991 echo
992 echo " embedded perl: $support_perl"
993 echo " libafterimage: $support_afterimage"
994 echo
995 if test x$support_xpm = xneedsmanualspecification; then
996 echo ".----------------------------------------------------------------."
997 echo ". WARNING: --enable-xpm-background was specified however the ."
998 echo ". XPM includes files and libraries could not be found. ."
999 echo ". XPM backgrounds are now being DISABLED! If you want ."
1000 echo ". to use them you should rerun configure with the ."
1001 echo ". appropriate --with-xpm-includes=/path/to/xpm/includes ."
1002 echo ". and --with-xpm-library=/path/to/xpm/library lines. ."
1003 echo ".----------------------------------------------------------------."
1004 fi
1005 if test x$support_xim = xyes -a x$rxvt_cv_func_xlocale = xno; then
1006 echo ".----------------------------------------------------------------."
1007 echo ". WARNING: --enable-xim was specified however the locale support ."
1008 echo ". functions could not be found. ."
1009 echo ". XIM is now being DISABLED! ."
1010 echo ".----------------------------------------------------------------."
1011 fi
1012
1013 echo "*** Optionally check src/feature.h for further, rarely used options ***"
1014 echo
1015