2 dnl# Process this file with autoconf to produce a configure script.
7 AC_CONFIG_SRCDIR([src/feature.h])
8 AC_CONFIG_HEADER(config.h:config.h.in)
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`
21 AC_SUBST(LIBVERSION)dnl
23 echo "configuring for rxvt $VERSION"
26 orig_CXXFLAGS="$CXXFLAGS"
28 dnl# Checks for programs.
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++])
50 [AC_LANG_PROGRAM([struct test { }; void f() try { throw new test; } catch (...) { throw; }])],
53 AC_MSG_RESULT([no, making everything bigger and slower])
60 AC_SUBST(LINKER,[$LINKER])
63 dnl# --------------------------------------------------------------------------
64 dnl# Supply default CXXFLAGS, if not specified by `CXXFLAGS=flags ./configure'
66 if test -z "$orig_CXXFLAGS"; then
67 if test x$GCC = xyes && test "x$GXX" = xyes; then
68 CXXFLAGS="-g -O3 -fno-threadsafe-statics -fno-enforce-eh-specs"
69 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [], [CXXFLAGS="-g -O3"])
76 AC_DEFINE(_GNU_SOURCE, 1, Use all glibc features.)
80 AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1, Needed to get declarations for msg_control and msg_controllen on Solaris)
81 AC_DEFINE(_XOPEN_SOURCE, 2, Needed to get declarations for msg_control and msg_controllen on Solaris)
82 AC_DEFINE(__EXTENSIONS__, 1, Needed to get declarations for msg_control and msg_controllen on Solaris)
86 dnl if test x$GXX = xyes; then
87 dnl CXXFLAGS="$CXXFLAGS" dnl I once had -fno-exceptions, but I am using them now...
90 dnl# FreeBSD needs to link libxpg4
91 AC_CHECK_FUNC(setlocale, [], [AC_CHECK_LIB(xpg4, setlocale, [LIBS="$LIBS -lxpg4"])])
93 dnl# solaris needs to link libnsl and socket
94 AC_CHECK_FUNC(gethostbyname, [], [AC_CHECK_LIB(nsl, gethostbyname, [LIBS="$LIBS -lnsl"])])
95 AC_CHECK_FUNC(socket, [], [AC_CHECK_LIB(socket, socket, [LIBS="$LIBS -lsocket"])])
98 AC_CHECK_FUNC(sched_yield, [], [AC_CHECK_LIB(rt, sched_yield, [LIBS="$LIBS -lrt"])])
100 dnl# sched_yield to improve terminal efficiency
101 AC_MSG_CHECKING(for sched_yield support)
102 AC_TRY_LINK([#include <sched.h>],[sched_yield ()],
104 AC_DEFINE(HAVE_SCHED_YIELD, 1, Define if you have sched-h and sched_yield)],
107 dnl AC_ENABLE_SHARED(no)dnl# libtool
108 dnl AC_ENABLE_STATIC(yes)dnl# libtool
109 dnl AC_PROG_LIBTOOL()dnl# libtool
114 support_inheritpixmap=yes
117 support_keepscrolling=yes
118 support_selectionscrolling=yes
119 support_mousewheel=yes
120 support_mouseslipwheel=yes
124 support_text_blink=yes
125 support_pointer_blank=yes
126 support_scroll_rxvt=yes
127 support_scroll_next=yes
128 support_scroll_xterm=yes
129 support_scroll_plain=yes
134 support_combining=yes
141 dnl# --------------------------------------------------------------------------
142 dnl# CHECKING COMMAND LINE OPTIONS
143 dnl# --------------------------------------------------------------------------
145 if test "x$enable_shared" = xyes; then
146 AC_DEFINE(LIBRXVT, 1, Build shared library version - specify via configure only)
149 AC_SUBST(INSTALL_LIBRXVT)
151 AC_ARG_ENABLE(everything,
152 [ --enable-everything enable standard non-multichoice features
153 NOTE: this option is order dependent
154 NOTE: automatically enabled with --enable-shared],
156 if test x$enableval = xno; then
159 support_inheritpixmap=no
162 support_keepscrolling=no
163 support_selectionscrolling=no
165 support_mousewheel=no
166 support_mouseslipwheel=no
167 support_text_blink=no
168 support_pointer_blank=no
169 support_scroll_rxvt=no
170 support_scroll_next=no
171 support_scroll_xterm=no
172 support_scroll_plain=no
186 if test x$enableval = xyes; then
189 support_inheritpixmap=yes
192 support_keepscrolling=yes
193 support_selectionscrolling=yes
195 support_mousewheel=yes
196 support_mouseslipwheel=yes
197 support_text_blink=yes
198 support_pointer_blank=yes
199 support_scroll_rxvt=yes
200 support_scroll_next=yes
201 support_scroll_xterm=yes
202 support_scroll_plain=yes
209 support_combining=yes
210 #support_8bitctrls=yes
218 AC_ARG_ENABLE(unicode3,
219 [ --enable-unicode3 use 21 instead of 16 bits to represent unicode characters],
220 [if test x$enableval = xyes -o x$enableval = xno; then
221 support_unicode3=$enableval
224 AC_ARG_ENABLE(combining,
225 [ --enable-combining enable composition of base and combining characters],
226 [if test x$enableval = xyes -o x$enableval = xno; then
227 support_combining=$enableval
231 [ --enable-xft enable xft support on systems that have it],
232 [if test x$enableval = xyes -o x$enableval = xno; then
233 support_xft=$enableval
236 AC_ARG_ENABLE(font-styles,
237 [ --enable-font-styles enable bold and italic support],
238 [if test x$enableval = xyes -o x$enableval = xno; then
239 support_styles=$enableval
243 [ --enable-utmp enable utmp (utmpx) support],
244 [if test x$enableval = xyes -o x$enableval = xno; then
245 support_utmp=$enableval
249 [ --enable-wtmp enable wtmp (wtmpx) support (requires --enable-utmp)],
250 [if test x$enableval = xyes -o x$enableval = xno; then
251 support_wtmp=$enableval
254 AC_ARG_ENABLE(lastlog,
255 [ --enable-lastlog enable lastlog support (requires --enable-utmp)],
256 [if test x$enableval = xyes -o x$enableval = xno; then
257 support_lastlog=$enableval
260 AC_ARG_ENABLE(xpm-background,
261 [ --enable-xpm-background enable XPM background pixmaps],
262 [if test x$enableval = xyes -o x$enableval = xno; then
263 support_xpm=$enableval
266 AC_ARG_ENABLE(transparency,
267 [ --enable-transparency enable transparent backgrounds],
268 [if test x$enableval = xyes -o x$enableval = xno; then
269 support_inheritpixmap=$enableval
272 AC_ARG_ENABLE(tinting,
273 [ --enable-tinting enable tinting of transparent bg],
274 [if test x$enableval = xyes -o x$enableval = xno; then
275 support_tinting=$enableval
278 AC_ARG_ENABLE(fading,
279 [ --enable-fading enable colors fading when off focus],
280 [if test x$enableval = xyes -o x$enableval = xno; then
281 support_fading=$enableval
284 AC_ARG_ENABLE(rxvt-scroll,
285 [ --enable-rxvt-scroll enable rxvt style scrollbar],
286 [if test x$enableval = xyes -o x$enableval = xno; then
287 support_scroll_rxvt=$enableval
290 AC_ARG_ENABLE(next-scroll,
291 [ --enable-next-scroll enable NeXT style scrollbar],
292 [if test x$enableval = xyes -o x$enableval = xno; then
293 support_scroll_next=$enableval
296 AC_ARG_ENABLE(xterm-scroll,
297 [ --enable-xterm-scroll enable Xterm style scrollbar],
298 [if test x$enableval = xyes -o x$enableval = xno; then
299 support_scroll_xterm=$enableval
303 [ --enable-perl enable embedded perl interpreter],
304 [if test x$enableval = xyes -o x$enableval = xno; then
305 support_perl=$enableval
308 AC_ARG_ENABLE(plain-scroll,
309 [ --enable-plain-scroll enable plain style scrollbar],
310 [if test x$enableval = xyes -o x$enableval = xno; then
311 support_scroll_plain=$enableval
314 dnl AC_ARG_ENABLE(half-shadow,
315 dnl [ --enable-half-shadow use half width/height shadow on rxvt scrollbar],
316 dnl [if test x$enableval = xyes; then
317 dnl AC_DEFINE(HALFSHADOW, 1, Define if you want the depth of scrollbars and menus to be less)
320 AC_ARG_WITH(codesets,
321 [ --with-codesets=NAME,.. compile in additional codesets (jp,jp_ext,kr,zh,zh_ext,all)],
322 [codesets="$withval"])
325 [ --enable-xim XIM (X Input Method) protocol support],
326 [if test x$enableval = xyes -o x$enableval = xno; then
327 support_xim=$enableval
330 AC_ARG_ENABLE(backspace-key,
331 [ --disable-backspace-key disable handling of the backspace key],
332 [if test x$enableval = xno; then
333 AC_DEFINE(NO_BACKSPACE_KEY, 1, Define if you don't want support for the backspace key)
336 AC_ARG_ENABLE(delete-key,
337 [ --disable-delete-key disable handling of the delete key],
338 [if test x$enableval = xno; then
339 AC_DEFINE(NO_DELETE_KEY, 1, Define if you don't want support for the (non-keypad) delete key)
342 AC_ARG_ENABLE(resources,
343 [ --disable-resources disable all resource checking],
344 [if test x$enableval = xno; then
345 AC_DEFINE(NO_RESOURCES, 1, Define if you don't want any resources read)
348 AC_ARG_ENABLE(8bitctrls,
349 [ --enable-8bitctrls enable 8 bit control sequences (not recommended)],
350 [if test x$enableval = xyes -o x$enableval = xno; then
351 support_8bitctrls=$enableval
355 AC_ARG_ENABLE(fallback,
356 [ --enable-fallback(=CLASS) fall back on CLASS resources in addition to URxvt ones (default: Rxvt)],
358 test x$enableval = xyes && enableval=Rxvt
359 test x$enableval = xno && enableval=
360 RESFALLBACK="$enableval"
363 if test x$RESFALLBACK != x; then
364 AC_DEFINE_UNQUOTED(RESFALLBACK, "$RESFALLBACK", [Fallback resource class])
368 AC_ARG_WITH(res-name,
369 [ --with-res-name=NAME use this as default resource name (default: urxvt)],
370 [RESNAME="$withval"])
371 AC_DEFINE_UNQUOTED(RESNAME,"$RESNAME", [Default resource name])
374 AC_ARG_WITH(res-class,
375 [ --with-res-class=CLASS use this as the resource class (default: URxvt)],
376 [RESCLASS="$withval"])
377 AC_DEFINE_UNQUOTED(RESCLASS,"$RESCLASS", [Resource class])
381 [ --with-name=NAME set the basename for the installed binaries (default: urxvt)],
382 [RXVTNAME="$withval"])
383 AC_DEFINE_UNQUOTED(RXVTNAME,"$RXVTNAME", [Binary base name])
385 RXVTNAME=`echo "$RXVTNAME"|sed "$program_transform_name"`
388 AC_ARG_ENABLE(swapscreen,
389 [ --disable-swapscreen disable swap screen support],
390 [if test x$enableval = xno; then
391 AC_DEFINE(NO_SECONDARY_SCREEN, 1, Disable the secondary screen. Many programs use the secondary screen as their workplace)
394 AC_ARG_ENABLE(iso14755,
395 [ --enable-iso14755 enable support for extended ISO 14755 modes],
396 [if test x$enableval = xyes -o x$enableval = xno; then
397 support_iso14755=$enableval
400 AC_ARG_ENABLE(frills,
401 [ --enable-frills enable support for rarely used features],
402 [if test x$enableval = xyes -o x$enableval = xno; then
403 support_frills=$enableval
407 [ --enable-24bit enable support for using 24bit visuals if available],
408 [if test x$enableval = xyes -o x$enableval = xno; then
409 support_24bit=$enableval
412 AC_ARG_ENABLE(keepscrolling,
413 [ --enable-keepscrolling enable continual scrolling on scrollbar arrow press],
414 [if test x$enableval = xyes -o x$enableval = xno; then
415 support_keepscrolling=$enableval
418 AC_ARG_ENABLE(selectionscrolling,
419 [ --enable-selectionscrolling enable scrolling during selections],
420 [if test x$enableval = xyes -o x$enableval = xno; then
421 support_selectionscrolling=$enableval
424 AC_ARG_ENABLE(mousewheel,
425 [ --enable-mousewheel enable scrolling via mouse wheel or buttons 4 & 5],
426 [if test x$enableval = xyes -o x$enableval = xno; then
427 support_mousewheel=$enableval
430 AC_ARG_ENABLE(slipwheeling,
431 [ --enable-slipwheeling enable slip wheel scrolling (requires previous)],
432 [if test x$enableval = xyes -o x$enableval = xno; then
433 support_mouseslipwheel=$enableval
436 AC_ARG_ENABLE(dmalloc,
437 [ --enable-dmalloc enable Gray Watson's malloc - for debugging use],
438 [if test x$enableval = xyes; then
441 DLIB="-L/usr/local/lib -ldmalloc"
442 DINCLUDE=-I/usr/local/include
445 AC_ARG_ENABLE(dlmalloc,
446 [ --enable-dlmalloc enable Doug Lea's malloc - for production use
447 NOTE: enable only one malloc package],
448 [if test x$enableval = xyes; then
451 DLIB="-L/usr/local/lib -ldlmalloc"
455 AC_ARG_ENABLE(smart-resize,
456 [ --enable-smart-resize enable smart growth/shrink behaviour],
457 [if test x$enableval = xyes; then
458 AC_DEFINE(SMART_RESIZE, 1, Define to use "smart" resize behavior)
461 AC_ARG_ENABLE(text-blink,
462 [ --enable-text-blink enable blinking text],
463 [if test x$enableval = xyes -o x$enableval = xno; then
464 support_text_blink=$enableval
467 AC_ARG_ENABLE(pointer-blank,
468 [ --enable-pointer-blank enable pointer blank when typing or inactive pointer],
469 [if test x$enableval = xyes -o x$enableval = xno; then
470 support_pointer_blank=$enableval
474 [ --with-term=NAME set the terminal to NAME (default: rxvt)],
475 [if test x$withval != x; then
476 AC_DEFINE_UNQUOTED(TERMENV, "$withval",Set TERM to the value given by configure) term="$withval"
479 AC_ARG_WITH(terminfo,
480 [ --with-terminfo=PATH set the path to the terminfo tree to PATH],
481 [if test x$withval != x; then
482 AC_DEFINE_UNQUOTED(RXVT_TERMINFO, "$withval", Set TERMINFO value to the value given by configure) terminfo="$withval"
485 dnl# --------------------------------------------------------------------------
487 AC_PATH_PROG(MV, mv, mv)
488 AC_PATH_PROG(RM, rm, rm)
489 AC_PATH_PROG(CP, cp, cp)
490 AC_PATH_PROG(LN, ln, ln)
491 AC_PATH_PROG(SED, sed, sed)
492 AC_PATH_PROG(ECHO, echo, echo)
493 AC_PATH_PROG(CMP, cmp, cmp)
494 AC_PATH_PROG(TIC, tic)
496 dnl# need a neat way to detect SVR4 or its features
497 dnl# in src/command.c we use these functions:
498 dnl# grantpt(), unlockpt(), ptsname(), which are defined in <sys/ptms.h>
499 dnl# - but are these also defined for other systems?
501 dnl# hack to find if this is SVR4 -- who knows?
502 dnl## AC_MSG_CHECKING(for SVR4)
503 dnl## AC_EGREP_CPP(yes,
504 dnl## [#if defined (SVR4) || defined (_SVR4) || defined (__svr4__)
507 dnl## ], [AC_MSG_RESULT(yes); AC_DEFINE(PERHAPS_SVR4)], AC_MSG_RESULT(perhaps not?))
511 dnl# the only reasonable way to find libXpm is do-it-yourself
512 dnl# only check if we want xpm-background
514 if test x$support_xpm = xyes; then
516 if test x$no_xpm = xyes; then
517 support_xpm=needsmanualspecification
521 dnl# --------------------------------------------------------------------------
522 dnl# CHECKING FOR HEADER FILES
523 dnl# --------------------------------------------------------------------------
547 dnl# check to allow both <termios.h> and <sys/ioctl.h>
548 AC_CACHE_CHECK(whether termios.h and sys/ioctl.h may both be included, rxvt_cv_header_sysioctl,
549 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>
550 #include <sys/ioctl.h>
551 #ifdef HAVE_TERMIOS_H
553 #endif]], [[int a = ECHO;]])],[rxvt_cv_header_sysioctl=yes],[rxvt_cv_header_sysioctl=no])])
555 dnl# ELF systems may want to store paths for dynamic libraries.
556 dnl# Lets see if the compiler can accept "-Rpath" or "-Wl,-Rpath"
557 dnl# At least one version of SunOS wants "-R path" but it's not checked yet.
558 if test -n "$GCC"; then
564 R_TRANSLATE='s/-L\([^ ]*\)/-L\1 '$LDARG'-rpath '$LDARG'\1/g'
567 ac_save_CFLAGS=$CFLAGS
569 CFLAGS="$CFLAGS $X_CFLAGS"
570 LIBS=`echo "$LIBS $X_LIBS $X_EXTRA_LIBS -lX11" | sed "$R_TRANSLATE"`
571 AC_CACHE_CHECK([for -rpath dynamic library path recording], rxvt_cv_rpath,
572 [AC_RUN_IFELSE([AC_LANG_SOURCE([[
576 (void) XOpenDisplay("foobar");
577 }]])],[rxvt_cv_rpath=yes],[rxvt_cv_rpath=no],[dnl
578 AC_MSG_WARN(You may need to check the LIBS line)])])
579 if test x$rxvt_cv_rpath != xyes; then
581 R_TRANSLATE='s/-L\([^ ]*\)/-L\1 '$LDARG'-R\1/g'
583 LIBS=`echo "$ac_save_LIBS $X_LIBS $X_EXTRA_LIBS -lX11" | sed "$R_TRANSLATE"`
584 AC_CACHE_CHECK([for -R dynamic library path recording], rxvt_cv_R,
585 [AC_RUN_IFELSE([AC_LANG_SOURCE([[
589 (void) XOpenDisplay("foobar");
590 }]])],[rxvt_cv_R=yes],[rxvt_cv_R=no],[rxvt_cv_R=no])])
591 if test x$rxvt_cv_R != xyes; then
592 LIBS="$ac_save_LIBS $X_LIBS $X_EXTRA_LIBS -lX11"
596 AC_CACHE_CHECK([for XPointer], rxvt_cv_xpointer,
597 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <X11/Xlib.h>]], [[XPointer dummy;]])],[rxvt_cv_xpointer=yes],[rxvt_cv_xpointer=no])])
598 if test x$rxvt_cv_xpointer = xyes; then
599 AC_DEFINE(HAVE_XPOINTER, 1, Define if you have XPointer typedef)
602 CFLAGS=$ac_save_CFLAGS
608 dnl> AC_HEADER_STDC dnl# skip this test, Sun always fails anyhow.
610 dnl# --------------------------------------------------------------------------
611 dnl# CHECKING FOR MISSING TYPEDEFS
612 dnl# --------------------------------------------------------------------------
613 dnl# Missing typedefs and replacements
615 dnl> AC_CHECK_TYPE(umode_t, int)
616 dnl> AC_CHECK_TYPE(off_t, long)
620 AC_CHECK_SIZEOF(short, 2)
621 AC_CHECK_SIZEOF(int, 4)
622 dnl AC_CHECK_SIZEOF(long, 4)
623 AC_CHECK_SIZEOF(long long, 8)
624 AC_CHECK_SIZEOF(int *, 4)
627 AC_DEFUN([RXVT_CHECK_SIZE],
628 [AC_CACHE_CHECK([for $2], $1,
629 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdint.h>]], [[$2 dummy;]])],[$1=yes],[dnl
630 if test "$ac_cv_sizeof_char" -ge $3; then
633 if test "$ac_cv_sizeof_short" -ge $3; then
636 if test "$ac_cv_sizeof_int" -ge $3; then
639 if test "$ac_cv_sizeof_long" -ge $3; then
642 if test "$ac_cv_sizeof_long_long" -ge $3; then
645 $1="$4 $5" # we _must_ have a (possibly wrong) default
651 if test x"$$1" != xyes; then
654 if test x"$4" = x; then
655 $6="/* typedef $5 $2; */"
657 $6="/* typedef $4 $5 $2; */"
662 dnl# Look for types the system may know about anyway.
664 RXVT_CHECK_SIZE(rxvt_cv_int16_t, int16_t, 2, , short, rxvt_int16_typedef)
665 AC_SUBST(rxvt_int16_typedef)
666 RXVT_CHECK_SIZE(rxvt_cv_uint16_t, uint16_t, 2, unsigned, short, rxvt_uint16_typedef)
667 AC_SUBST(rxvt_uint16_typedef)
668 RXVT_CHECK_SIZE(rxvt_cv_int32_t, int32_t, 4, , int, rxvt_int32_typedef)
669 AC_SUBST(rxvt_int32_typedef)
670 RXVT_CHECK_SIZE(rxvt_cv_uint32_t, uint32_t, 4, unsigned, int, rxvt_uint32_typedef)
671 AC_SUBST(rxvt_uint32_typedef)
672 dnl RXVT_CHECK_SIZE(rxvt_cv_int64_t, int64_t, 8, , long long, rxvt_int64_typedef)
673 dnl AC_SUBST(rxvt_int64_typedef)
674 dnl RXVT_CHECK_SIZE(rxvt_cv_uint64_t, uint64_t, 8, unsigned, long long, rxvt_uint64_typedef)
675 dnl AC_SUBST(rxvt_uint64_typedef)
677 dnl# Now look for another we use
679 if test "$ac_cv_sizeof_int_p" -eq 8; then
680 rxvt_intp_define="#define intp_t int64_t"
681 rxvt_u_intp_define="#define u_intp_t u_int64_t"
683 if test "$ac_cv_sizeof_int_p" -eq 4; then
684 rxvt_intp_define="#define intp_t int32_t"
685 rxvt_u_intp_define="#define u_intp_t u_int32_t"
687 if test "$ac_cv_sizeof_int_p" -eq 2; then
688 rxvt_intp_define="#define intp_t int16_t"
689 rxvt_u_intp_define="#define u_intp_t u_int16_t"
691 rxvt_intp_define="#error set intp_t"
692 rxvt_u_intp_define="#error set u_intp_t"
696 AC_SUBST(rxvt_intp_define)
697 AC_SUBST(rxvt_u_intp_define)
699 dnl# --------------------------------------------------------------------------
700 dnl# CHECKING FOR LIBRARY FUNCTIONS
701 dnl# --------------------------------------------------------------------------
716 dnl# --------------------------------------------------------------------------
718 dnl# find ttys/ttytab
719 AC_CACHE_CHECK(where ttys/ttytab is located, rxvt_cv_path_ttytab,
720 [for ttys_file in dnl
721 /etc/ttys /etc/ttytab;
723 if test -f "$ttys_file" ; then
724 rxvt_cv_path_ttytab=$ttys_file
729 if test x$rxvt_cv_path_ttytab != x; then
730 AC_DEFINE_UNQUOTED(TTYTAB_FILENAME, "$rxvt_cv_path_ttytab", Define location of ttys/ttytab)
733 dnl# --------------------------------------------------------------------------
734 dnl# --------------------------------------------------------------------------
736 dnl# this is a really hack test for some basic Xlocale stuff
738 ac_save_CFLAGS=$CFLAGS
739 CFLAGS="$CFLAGS $X_CFLAGS"
740 LIBS="$LIBS $X_LIBS $X_EXTRA_LIBS -lX11"
741 if test x$rxvt_cv_rpath = xyes -o x$rxvt_cv_R = xyes; then
742 LIBS=`echo $LIBS | sed "$R_TRANSLATE"`
744 AC_CACHE_CHECK(for working Xlocale, rxvt_cv_func_xlocale,
745 [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <X11/Xlib.h>
748 if ((p = XSetLocaleModifiers("@im=none")) != NULL && *p)
749 exit (XSupportsLocale() ? 0 : 1);
752 rxvt_cv_func_xlocale=yes],[rxvt_cv_func_xlocale=no],[dnl
753 AC_MSG_WARN(Define NO_XLOCALE in config.h manually)])])
754 if test x$rxvt_cv_func_xlocale = xyes; then
755 AC_DEFINE(HAVE_XLOCALE, 1, Define if Xlocale support works)
758 AC_CACHE_CHECK(for working X setlocale, rxvt_cv_func_xsetlocale,
759 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define X_LOCALE 1
760 #include <X11/Xlocale.h>]], [[setlocale(LC_CTYPE, "");]])],[rxvt_cv_func_xsetlocale=yes],[rxvt_cv_func_xsetlocale=no])])
761 if test x$rxvt_cv_func_xsetlocale = xyes; then
762 AC_DEFINE(HAVE_XSETLOCALE, 1, Define if setlocale (defined to Xsetlocale) works)
765 CFLAGS=$ac_save_CFLAGS
767 AC_CACHE_CHECK(for working plain setlocale, rxvt_cv_func_setlocale,
768 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <clocale>]], [[setlocale(LC_CTYPE, "");]])],[rxvt_cv_func_setlocale=yes],[rxvt_cv_func_setlocale=no])])
769 if test x$rxvt_cv_func_setlocale = xyes; then
770 AC_DEFINE(HAVE_SETLOCALE, 1, Define if plain old setlocale works)
773 AC_CACHE_CHECK(for working nl_langinfo, rxvt_cv_func_nl_langinfo,
774 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <langinfo.h>]], [[nl_langinfo(CODESET);]])],[rxvt_cv_func_nl_langinfo=yes],[rxvt_cv_func_nl_langinfo=no])])
775 if test x$rxvt_cv_func_nl_langinfo = xyes; then
776 AC_DEFINE(HAVE_NL_LANGINFO, 1, Define if nl_langinfo(CODESET) works)
781 AC_CACHE_CHECK(for broken XIM callback, rxvt_broken_ximcb,
783 #include <X11/Xlib.h>
785 void im_destroy_cb (XIC unused1, XPointer client_data, XPointer unused3);
789 cb.callback = im_destroy_cb;
791 ],rxvt_broken_ximcb=yes,rxvt_broken_ximcb=no)])
793 if test x$rxvt_broken_ximcb = xyes; then
794 AC_DEFINE(XIMCB_PROTO_BROKEN, 1, Define if your XIMCallback specifies XIC as first type.)
801 dnl# --------------------------------------------------------------------------
802 dnl# now add and remove other stuff
803 dnl# --------------------------------------------------------------------------
804 if test x$support_xft = xyes; then
805 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
806 if test $PKG_CONFIG != no && $PKG_CONFIG --exists xft; then
807 LIBS="$LIBS `$PKG_CONFIG xft --libs`"
808 CPPFLAGS="$CPPFLAGS `$PKG_CONFIG xft --cflags`"
810 AC_PATH_PROG(XFT_CONFIG, xft-config, no)
811 if test $XFT_CONFIG != no; then
812 LIBS="$LIBS `$XFT_CONFIG --libs`"
813 CPPFLAGS="$CPPFLAGS `$XFT_CONFIG --cflags`"
817 AC_CHECK_HEADERS(X11/Xft/Xft.h,,[support_xft=no])
818 AC_CHECK_LIB(Xft,XftDrawString32,,[support_xft=no])
820 if test x$support_xft = xyes; then
821 AC_DEFINE(XFT, 1, Define to enable xft support)
824 if test x$support_styles = xyes; then
825 AC_DEFINE(ENABLE_STYLES, 1, Define if you want bold and italic support)
827 if test x$support_iso14755 = xyes; then
828 AC_DEFINE(ISO_14755, 1, Define if you want ISO 14755 extended support)
830 if test x$support_8bitctrls = xyes; then
831 AC_DEFINE(EIGHT_BIT_CONTROLS, 1, Define if you want 8 bit control sequences)
833 if test x$support_fading = xyes; then
834 AC_DEFINE(OFF_FOCUS_FADING, 1, Define if you want faded colors when focus is lost)
836 if test x$support_tinting = xyes; then
837 AC_DEFINE(TINTING, 1, Define if you want your background to be tinted)
839 if test x$support_inheritpixmap = xyes; then
840 AC_DEFINE(TRANSPARENT, 1, Define if you want your background to use the parent window background)
842 if test x$support_keepscrolling = xno; then
843 AC_DEFINE(NO_SCROLLBAR_BUTTON_CONTINUAL_SCROLLING, 1, Define for continual scrolling when you keep the scrollbar button pressed)
845 if test x$support_selectionscrolling = xyes; then
846 AC_DEFINE(SELECTION_SCROLLING, 1, Define to allow scrolling when the selection moves to the top or bottom of the screen)
848 if test x$support_frills = xyes; then
849 AC_DEFINE(ENABLE_FRILLS, 1, Define if you want handling for rarely used but handy features)
851 if test x$support_24bit = xyes; then
852 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)
854 if test x$support_mousewheel = xyes; then
855 AC_DEFINE(MOUSE_WHEEL, 1, Define to use wheel events (button4 and button5) to scroll)
857 if test x$support_mouseslipwheel = xyes; then
858 AC_DEFINE(MOUSE_SLIP_WHEELING, 1, Define to have CTRL cause wheel events to accelerate scrolling. Release CTRL to halt scrolling)
860 if test x$support_utmp = xyes; then
861 AC_DEFINE(UTMP_SUPPORT, 1, Define if you want to have utmp/utmpx support)
863 if test x$support_wtmp = xyes; then
864 AC_DEFINE(WTMP_SUPPORT, 1, Define if you want to have wtmp support when utmp/utmpx is enabled)
866 if test x$support_lastlog = xyes; then
867 AC_DEFINE(LASTLOG_SUPPORT, 1, Define if you want to have lastlog support when utmp/utmpx is enabled)
869 if test x$support_xim = xyes -o x$multichar_set = xyes; then
870 if test x$rxvt_cv_func_xlocale = xyes; then
871 AC_DEFINE(USE_XIM, 1, Define if you want to have XIM (X Input Method) protocol support - required for multibyte characters input)
874 if test x$support_xpm = xyes; then
875 AC_DEFINE(XPM_BACKGROUND, 1, Define if you want to have sexy-looking background pixmaps. Needs libXpm)
877 if test x$support_scroll_rxvt = xyes; then
878 AC_DEFINE(RXVT_SCROLLBAR, 1, Support Rxvt original style scrollbars)
881 if test x$support_scroll_next = xyes; then
882 AC_DEFINE(NEXT_SCROLLBAR, 1, Support NeXT style scrollbars)
883 scrolltypes="$scrolltypes next"
885 if test x$support_scroll_xterm = xyes; then
886 AC_DEFINE(XTERM_SCROLLBAR, 1, Support Xterm style scrollbars)
887 scrolltypes="$scrolltypes xterm"
889 if test x$support_scroll_plain = xyes; then
890 AC_DEFINE(PLAIN_SCROLLBAR, 1, Support plain style scrollbars)
891 scrolltypes="$scrolltypes plain"
893 if test x$support_pointer_blank = xyes; then
894 AC_DEFINE(POINTER_BLANK, 1, Define if you want hide the pointer while typing)
896 if test x$support_text_blink = xyes; then
897 AC_DEFINE(TEXT_BLINK, 1, Define if you want blinking text support)
899 if test x$support_unicode3 = xyes; then
900 AC_DEFINE(UNICODE_3, 1, Define if you want to represent unicode characters outside plane 0)
902 if test x$support_combining = xyes; then
903 AC_DEFINE(ENABLE_COMBINING, 1, Define if you want to automatically compose combining characters)
905 if test x$codesets = xall; then
906 codesets=jp,jp-ext,kr,zh,zh-ext
908 AC_DEFINE(ENCODING_EU, 1, Define if you want european extended codesets)
909 AC_DEFINE(ENCODING_VN, 1, Define if you want vietnamese codesets)
910 for codeset in `echo $codesets | tr "[a-z,\\-]" "[A-Z _]"`; do
912 JP ) AC_DEFINE(ENCODING_JP, 1, Define if you want japanese codesets) ;;
913 JP_EXT ) AC_DEFINE(ENCODING_JP_EXT, 1, Define if you want extended japanese codesets) ;;
914 KR ) AC_DEFINE(ENCODING_KR, 1, Define if you want korean codesets) ;;
915 ZH ) AC_DEFINE(ENCODING_ZH, 1, Define if you want chinese codesets) ;;
916 ZH_EXT ) AC_DEFINE(ENCODING_ZH_EXT, 1, Define if you want extended chinese codesets) ;;
921 if test x$support_perl = xyes; then
922 AC_PATH_PROG(PERL, perl5)
923 AC_PATH_PROG(PERL, perl)
925 AC_MSG_CHECKING(for $PERL suitability)
926 if $PERL -MExtUtils::Embed -e "use v5.8" >/dev/null 2>/dev/null; then
928 save_CXXFLAGS="$CXXFLAGS"
930 CXXFLAGS="$CXXFLAGS `$PERL -MExtUtils::Embed -e ccopts`"
931 LIBS="$LIBS `$PERL -MExtUtils::Embed -e ldopts`"
937 PerlInterpreter *perl = perl_alloc ();
938 ],[rxvt_perl_link=yes],[rxvt_perl_link=no])
939 CXXFLAGS="$save_CXXFLAGS"
942 if test x$rxvt_perl_link = xyes; then
944 AC_DEFINE(ENABLE_PERL, 1, Define if you can embed a perl interpreter)
947 PERLFLAGS="`$PERL -MExtUtils::Embed -e ccopts`"
948 PERLLIB="`$PERL -MExtUtils::Embed -e ldopts`"
949 PERLPRIVLIBEXP="`$PERL -MConfig -e 'print $Config{privlibexp}'`"
951 AC_MSG_ERROR([no, unable to link])
954 AC_MSG_ERROR([no working perl found, or perl not version >= 5.8])
959 AC_SUBST(PERLPRIVLIBEXP)
964 if test x$support_perl = xyes; then
968 dnl> AC_CHECK_FUNCS(gettimeofday putenv select socket)
971 LDFLAGS=${LDFLAGS--O}
982 if test x$rxvt_cv_rpath = xyes -o x$rxvt_cv_R = xyes; then
983 DLIB=`echo $DLIB | sed "$R_TRANSLATE"`
984 LIBS=`echo $LIBS | sed "$R_TRANSLATE"`
985 X_LIBS=`echo $X_LIBS | sed "$R_TRANSLATE"`
986 X_EXTRA_LIBS=`echo $X_EXTRA_LIBS | sed "$R_TRANSLATE"`
987 XPM_LIBS=`echo $XPM_LIBS | sed "$R_TRANSLATE"`
992 AC_SUBST(X_EXTRA_LIBS)
996 dnl# test for "sun" or "__sun__" before include sys_ioctl
998 dnl# revert HAVE_BLAH_H into a "#include <blah.h>"
999 AC_DEFUN([RXVT_DEFINE_TO_INCLUDE], dnl
1000 [if test "$$3" = "$4" -o "$$5" = "$6"; then
1003 $1="/* #include <$2> */"
1007 RXVT_DEFINE_TO_INCLUDE(include_stdint_h, stdint.h, ac_cv_header_stdint_h, yes, notset, dontmatch)
1008 RXVT_DEFINE_TO_INCLUDE(include_stdarg_h, cstdarg, ac_cv_header_stdarg_h, yes, notset, dontmatch)
1009 RXVT_DEFINE_TO_INCLUDE(include_stdlib_h, cstdlib, ac_cv_header_stdlib_h, yes, notset, dontmatch)
1010 RXVT_DEFINE_TO_INCLUDE(include_unistd_h, unistd.h, ac_cv_header_unistd_h, yes, notset, dontmatch)
1011 RXVT_DEFINE_TO_INCLUDE(include_string_h, cstring, ac_cv_header_string_h, yes, notset, dontmatch)
1012 RXVT_DEFINE_TO_INCLUDE(include_fcntl_h, fcntl.h, ac_cv_header_fcntl_h, yes, notset, dontmatch)
1013 RXVT_DEFINE_TO_INCLUDE(include_util_h, util.h, ac_cv_header_util_h, yes, notset, dontmatch)
1014 RXVT_DEFINE_TO_INCLUDE(include_assert_h, assert.h, ac_cv_header_assert_h, yes, notset, dontmatch)
1015 RXVT_DEFINE_TO_INCLUDE(include_sys_ioctl_h, sys/ioctl.h, rxvt_cv_header_sysioctl, yes, notset, dontmatch)
1016 RXVT_DEFINE_TO_INCLUDE(include_sys_select_h, sys/select.h, ac_cv_header_sys_select_h, yes, notset, dontmatch)
1017 RXVT_DEFINE_TO_INCLUDE(include_sys_strredir_h, sys/strredir.h, ac_cv_header_sys_strredir_h, yes, notset, dontmatch)
1018 RXVT_DEFINE_TO_INCLUDE(include_sys_time_h, sys/time.h, ac_cv_header_sys_time_h, yes, notset, dontmatch)
1019 RXVT_DEFINE_TO_INCLUDE(include_time_h, time.h, ac_cv_header_sys_time_h, no, ac_cv_header_time, yes)
1021 AC_CONFIG_FILES([Makefile \
1028 echo "Configuration:
1030 Rxvt version: $VERSION : $DATE
1031 Source code location: $srcdir
1032 Install path: ${prefix}/bin
1034 Compiler flags: $CFLAGS
1037 if test "$MALLOC_TYPE" = S; then
1038 echo " malloc support: system default"
1040 if test "$MALLOC_TYPE" = G; then
1041 echo " malloc support: Gray Watson's dmalloc"
1043 if test "$MALLOC_TYPE" = D; then
1044 echo " malloc support: Doug Lea's malloc"
1047 if test x$support_xpm = xyes; then
1048 echo " Xpm library: $XPM_LIBS"
1051 if test x$support_utmp != xyes; then
1052 echo " utmp support: disabled"
1055 echo " utmp support: enabled
1056 utmp file: $path_utmp
1057 utmpx file: $path_utmpx
1058 wtmp file: $path_wtmp
1059 wtmpx file: $path_wtmpx
1060 lastlog file: $path_lastlog
1061 lastlogx file: $path_lastlogx"
1063 if test x$term != x; then
1064 echo " set TERM to: $term"
1066 if test x$terminfo != x; then
1067 echo " set TERMINFO to: $terminfo"
1069 echo " default resource name: $RESNAME"
1070 echo " resource class: $RESCLASS"
1071 if test x$RESFALLBACK != x; then
1072 echo " resource class fallback: $RESFALLBACK"
1075 echo " embedded perl: $support_perl"
1077 if test x$support_xpm = xneedsmanualspecification; then
1078 echo ".----------------------------------------------------------------."
1079 echo ". WARNING: --enable-xpm-background was specified however the ."
1080 echo ". XPM includes files and libraries could not be found. ."
1081 echo ". XPM backgrounds are now being DISABLED! If you want ."
1082 echo ". to use them you should rerun configure with the ."
1083 echo ". appropriate --with-xpm-includes=/path/to/xpm/includes ."
1084 echo ". and --with-xpm-library=/path/to/xpm/library lines. ."
1085 echo ".----------------------------------------------------------------."
1087 if test x$support_xim = xyes -a x$rxvt_cv_func_xlocale = xno; then
1088 echo ".----------------------------------------------------------------."
1089 echo ". WARNING: --enable-xim was specified however the locale support ."
1090 echo ". functions could not be found. ."
1091 echo ". XIM is now being DISABLED! ."
1092 echo ".----------------------------------------------------------------."
1095 echo " *** Optionally check src/feature.h for further options ***"
1098 echo ".----------------------------------------------------------------."
1099 echo ". NOTE: some features are disabled by default, try ."
1100 echo ". configure --help to get an idea of the optional features, ."
1101 echo ". or read ./README.configure ."
1103 echo ". The script ./reconf gives a reasonable baseline, try it if ."
1104 echo ". you do not want to read documentation and still want some ."
1105 echo ". useful features. ."
1106 echo ".----------------------------------------------------------------."