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
242 AC_ARG_ENABLE(xpm-background,
243 [ --enable-xpm-background enable XPM background pixmaps],
244 [if test x$enableval = xyes -o x$enableval = xno; then
245 support_xpm=$enableval
248 AC_ARG_ENABLE(transparency,
249 [ --enable-transparency enable transparent backgrounds],
250 [if test x$enableval = xyes -o x$enableval = xno; then
251 support_inheritpixmap=$enableval
254 AC_ARG_ENABLE(tinting,
255 [ --enable-tinting enable tinting of transparent bg],
256 [if test x$enableval = xyes -o x$enableval = xno; then
257 support_tinting=$enableval
260 AC_ARG_ENABLE(fading,
261 [ --enable-fading enable colors fading when off focus],
262 [if test x$enableval = xyes -o x$enableval = xno; then
263 support_fading=$enableval
266 AC_ARG_ENABLE(rxvt-scroll,
267 [ --enable-rxvt-scroll enable rxvt style scrollbar],
268 [if test x$enableval = xyes -o x$enableval = xno; then
269 support_scroll_rxvt=$enableval
272 AC_ARG_ENABLE(next-scroll,
273 [ --enable-next-scroll enable NeXT style scrollbar],
274 [if test x$enableval = xyes -o x$enableval = xno; then
275 support_scroll_next=$enableval
278 AC_ARG_ENABLE(xterm-scroll,
279 [ --enable-xterm-scroll enable Xterm style scrollbar],
280 [if test x$enableval = xyes -o x$enableval = xno; then
281 support_scroll_xterm=$enableval
285 [ --enable-perl enable embedded perl interpreter],
286 [if test x$enableval = xyes -o x$enableval = xno; then
287 support_perl=$enableval
290 AC_ARG_ENABLE(plain-scroll,
291 [ --enable-plain-scroll enable plain style scrollbar],
292 [if test x$enableval = xyes -o x$enableval = xno; then
293 support_scroll_plain=$enableval
296 dnl AC_ARG_ENABLE(half-shadow,
297 dnl [ --enable-half-shadow use half width/height shadow on rxvt scrollbar],
298 dnl [if test x$enableval = xyes; then
299 dnl AC_DEFINE(HALFSHADOW, 1, Define if you want the depth of scrollbars and menus to be less)
302 AC_ARG_WITH(codesets,
303 [ --with-codesets=NAME,.. compile in additional codesets (jp,jp_ext,kr,zh,zh_ext,all)],
304 [codesets="$withval"])
307 [ --enable-xim XIM (X Input Method) protocol support],
308 [if test x$enableval = xyes -o x$enableval = xno; then
309 support_xim=$enableval
312 AC_ARG_ENABLE(backspace-key,
313 [ --disable-backspace-key disable handling of the backspace key],
314 [if test x$enableval = xno; then
315 AC_DEFINE(NO_BACKSPACE_KEY, 1, Define if you don't want support for the backspace key)
318 AC_ARG_ENABLE(delete-key,
319 [ --disable-delete-key disable handling of the delete key],
320 [if test x$enableval = xno; then
321 AC_DEFINE(NO_DELETE_KEY, 1, Define if you don't want support for the (non-keypad) delete key)
324 AC_ARG_ENABLE(resources,
325 [ --disable-resources disable all resource checking],
326 [if test x$enableval = xno; then
327 AC_DEFINE(NO_RESOURCES, 1, Define if you don't want any resources read)
330 AC_ARG_ENABLE(8bitctrls,
331 [ --enable-8bitctrls enable 8 bit control sequences (not recommended)],
332 [if test x$enableval = xyes -o x$enableval = xno; then
333 support_8bitctrls=$enableval
337 AC_ARG_ENABLE(fallback,
338 [ --enable-fallback(=CLASS) fall back on CLASS resources in addition to URxvt ones (default: Rxvt)],
340 test x$enableval = xyes && enableval=Rxvt
341 test x$enableval = xno && enableval=
342 RESFALLBACK="$enableval"
345 if test x$RESFALLBACK != x; then
346 AC_DEFINE_UNQUOTED(RESFALLBACK, "$RESFALLBACK", [Fallback resource class])
350 AC_ARG_WITH(res-name,
351 [ --with-res-name=NAME use this as default resource name (default: urxvt)],
352 [RESNAME="$withval"])
353 AC_DEFINE_UNQUOTED(RESNAME,"$RESNAME", [Default resource name])
356 AC_ARG_WITH(res-class,
357 [ --with-res-class=CLASS use this as the resource class (default: URxvt)],
358 [RESCLASS="$withval"])
359 AC_DEFINE_UNQUOTED(RESCLASS,"$RESCLASS", [Resource class])
363 [ --with-name=NAME set the basename for the installed binaries (default: urxvt)],
364 [RXVTNAME="$withval"])
365 AC_DEFINE_UNQUOTED(RXVTNAME,"$RXVTNAME", [Binary base name])
367 RXVTNAME=`echo "$RXVTNAME"|sed "$program_transform_name"`
370 AC_ARG_ENABLE(swapscreen,
371 [ --disable-swapscreen disable swap screen support],
372 [if test x$enableval = xno; then
373 AC_DEFINE(NO_SECONDARY_SCREEN, 1, Disable the secondary screen. Many programs use the secondary screen as their workplace)
376 AC_ARG_ENABLE(iso14755,
377 [ --enable-iso14755 enable support for extended ISO 14755 modes],
378 [if test x$enableval = xyes -o x$enableval = xno; then
379 support_iso14755=$enableval
382 AC_ARG_ENABLE(frills,
383 [ --enable-frills enable support for rarely used features],
384 [if test x$enableval = xyes -o x$enableval = xno; then
385 support_frills=$enableval
389 [ --enable-24bit enable support for using 24bit visuals if available],
390 [if test x$enableval = xyes -o x$enableval = xno; then
391 support_24bit=$enableval
394 AC_ARG_ENABLE(keepscrolling,
395 [ --enable-keepscrolling enable continual scrolling on scrollbar arrow press],
396 [if test x$enableval = xyes -o x$enableval = xno; then
397 support_keepscrolling=$enableval
400 AC_ARG_ENABLE(selectionscrolling,
401 [ --enable-selectionscrolling enable scrolling during selections],
402 [if test x$enableval = xyes -o x$enableval = xno; then
403 support_selectionscrolling=$enableval
406 AC_ARG_ENABLE(mousewheel,
407 [ --enable-mousewheel enable scrolling via mouse wheel or buttons 4 & 5],
408 [if test x$enableval = xyes -o x$enableval = xno; then
409 support_mousewheel=$enableval
412 AC_ARG_ENABLE(slipwheeling,
413 [ --enable-slipwheeling enable slip wheel scrolling (requires previous)],
414 [if test x$enableval = xyes -o x$enableval = xno; then
415 support_mouseslipwheel=$enableval
418 AC_ARG_ENABLE(dmalloc,
419 [ --enable-dmalloc enable Gray Watson's malloc - for debugging use],
420 [if test x$enableval = xyes; then
423 DLIB="-L/usr/local/lib -ldmalloc"
424 DINCLUDE=-I/usr/local/include
427 AC_ARG_ENABLE(dlmalloc,
428 [ --enable-dlmalloc enable Doug Lea's malloc - for production use
429 NOTE: enable only one malloc package],
430 [if test x$enableval = xyes; then
433 DLIB="-L/usr/local/lib -ldlmalloc"
437 AC_ARG_ENABLE(smart-resize,
438 [ --enable-smart-resize enable smart growth/shrink behaviour],
439 [if test x$enableval = xyes; then
440 AC_DEFINE(SMART_RESIZE, 1, Define to use "smart" resize behavior)
443 AC_ARG_ENABLE(text-blink,
444 [ --enable-text-blink enable blinking text],
445 [if test x$enableval = xyes -o x$enableval = xno; then
446 support_text_blink=$enableval
449 AC_ARG_ENABLE(pointer-blank,
450 [ --enable-pointer-blank enable pointer blank when typing or inactive pointer],
451 [if test x$enableval = xyes -o x$enableval = xno; then
452 support_pointer_blank=$enableval
456 [ --with-term=NAME set the terminal to NAME (default: rxvt)],
457 [if test x$withval != x; then
458 AC_DEFINE_UNQUOTED(TERMENV, "$withval",Set TERM to the value given by configure) term="$withval"
461 AC_ARG_WITH(terminfo,
462 [ --with-terminfo=PATH set the path to the terminfo tree to PATH],
463 [if test x$withval != x; then
464 AC_DEFINE_UNQUOTED(RXVT_TERMINFO, "$withval", Set TERMINFO value to the value given by configure) terminfo="$withval"
467 dnl# --------------------------------------------------------------------------
469 AC_PATH_PROG(MV, mv, mv)
470 AC_PATH_PROG(CP, cp, cp)
471 AC_PATH_PROG(LN, ln, ln)
472 AC_PATH_PROG(SED, sed, sed)
473 AC_PATH_PROG(ECHO, echo, echo)
474 AC_PATH_PROG(CMP, cmp, cmp)
475 AC_PATH_PROG(TIC, tic)
477 dnl# need a neat way to detect SVR4 or its features
478 dnl# in src/command.c we use these functions:
479 dnl# grantpt(), unlockpt(), ptsname(), which are defined in <sys/ptms.h>
480 dnl# - but are these also defined for other systems?
482 dnl# hack to find if this is SVR4 -- who knows?
483 dnl## AC_MSG_CHECKING(for SVR4)
484 dnl## AC_EGREP_CPP(yes,
485 dnl## [#if defined (SVR4) || defined (_SVR4) || defined (__svr4__)
488 dnl## ], [AC_MSG_RESULT(yes); AC_DEFINE(PERHAPS_SVR4)], AC_MSG_RESULT(perhaps not?))
492 dnl# the only reasonable way to find libXpm is do-it-yourself
493 dnl# only check if we want xpm-background
495 if test x$support_xpm = xyes; then
497 if test x$no_xpm = xyes; then
498 support_xpm=needsmanualspecification
502 dnl# --------------------------------------------------------------------------
503 dnl# CHECKING FOR HEADER FILES
504 dnl# --------------------------------------------------------------------------
528 dnl# check to allow both <termios.h> and <sys/ioctl.h>
529 AC_CACHE_CHECK(whether termios.h and sys/ioctl.h may both be included, rxvt_cv_header_sysioctl,
530 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>
531 #include <sys/ioctl.h>
532 #ifdef HAVE_TERMIOS_H
534 #endif]], [[int a = ECHO;]])],[rxvt_cv_header_sysioctl=yes],[rxvt_cv_header_sysioctl=no])])
536 dnl# ELF systems may want to store paths for dynamic libraries.
537 dnl# Lets see if the compiler can accept "-Rpath" or "-Wl,-Rpath"
538 dnl# At least one version of SunOS wants "-R path" but it's not checked yet.
539 if test -n "$GCC"; then
545 R_TRANSLATE='s/-L\([^ ]*\)/-L\1 '$LDARG'-rpath '$LDARG'\1/g'
548 ac_save_CFLAGS=$CFLAGS
550 CFLAGS="$CFLAGS $X_CFLAGS"
551 LIBS=`echo "$LIBS $X_LIBS $X_EXTRA_LIBS -lX11" | sed "$R_TRANSLATE"`
552 AC_CACHE_CHECK([for -rpath dynamic library path recording], rxvt_cv_rpath,
553 [AC_RUN_IFELSE([AC_LANG_SOURCE([[
557 (void) XOpenDisplay("foobar");
558 }]])],[rxvt_cv_rpath=yes],[rxvt_cv_rpath=no],[dnl
559 AC_MSG_WARN(You may need to check the LIBS line)])])
560 if test x$rxvt_cv_rpath != xyes; then
562 R_TRANSLATE='s/-L\([^ ]*\)/-L\1 '$LDARG'-R\1/g'
564 LIBS=`echo "$ac_save_LIBS $X_LIBS $X_EXTRA_LIBS -lX11" | sed "$R_TRANSLATE"`
565 AC_CACHE_CHECK([for -R dynamic library path recording], rxvt_cv_R,
566 [AC_RUN_IFELSE([AC_LANG_SOURCE([[
570 (void) XOpenDisplay("foobar");
571 }]])],[rxvt_cv_R=yes],[rxvt_cv_R=no],[rxvt_cv_R=no])])
572 if test x$rxvt_cv_R != xyes; then
573 LIBS="$ac_save_LIBS $X_LIBS $X_EXTRA_LIBS -lX11"
577 AC_CACHE_CHECK([for XPointer], rxvt_cv_xpointer,
578 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <X11/Xlib.h>]], [[XPointer dummy;]])],[rxvt_cv_xpointer=yes],[rxvt_cv_xpointer=no])])
579 if test x$rxvt_cv_xpointer = xyes; then
580 AC_DEFINE(HAVE_XPOINTER, 1, Define if you have XPointer typedef)
583 CFLAGS=$ac_save_CFLAGS
589 dnl> AC_HEADER_STDC dnl# skip this test, Sun always fails anyhow.
591 dnl# --------------------------------------------------------------------------
592 dnl# CHECKING FOR MISSING TYPEDEFS
593 dnl# --------------------------------------------------------------------------
594 dnl# Missing typedefs and replacements
596 dnl> AC_CHECK_TYPE(umode_t, int)
597 dnl> AC_CHECK_TYPE(off_t, long)
601 AC_CHECK_SIZEOF(short, 2)
602 AC_CHECK_SIZEOF(int, 4)
603 dnl AC_CHECK_SIZEOF(long, 4)
604 AC_CHECK_SIZEOF(long long, 8)
605 AC_CHECK_SIZEOF(int *, 4)
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
614 if test "$ac_cv_sizeof_short" -ge $3; then
617 if test "$ac_cv_sizeof_int" -ge $3; then
620 if test "$ac_cv_sizeof_long" -ge $3; then
623 if test "$ac_cv_sizeof_long_long" -ge $3; then
626 $1="$4 $5" # we _must_ have a (possibly wrong) default
632 if test x"$$1" != xyes; then
635 if test x"$4" = x; then
636 $6="/* typedef $5 $2; */"
638 $6="/* typedef $4 $5 $2; */"
643 dnl# Look for types the system may know about anyway.
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)
658 dnl# Now look for another we use
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"
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"
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"
672 rxvt_intp_define="#error set intp_t"
673 rxvt_u_intp_define="#error set u_intp_t"
677 AC_SUBST(rxvt_intp_define)
678 AC_SUBST(rxvt_u_intp_define)
680 dnl# --------------------------------------------------------------------------
681 dnl# CHECKING FOR LIBRARY FUNCTIONS
682 dnl# --------------------------------------------------------------------------
697 dnl# --------------------------------------------------------------------------
699 dnl# find ttys/ttytab
700 AC_CACHE_CHECK(where ttys/ttytab is located, rxvt_cv_path_ttytab,
701 [for ttys_file in dnl
702 /etc/ttys /etc/ttytab;
704 if test -f "$ttys_file" ; then
705 rxvt_cv_path_ttytab=$ttys_file
710 if test x$rxvt_cv_path_ttytab != x; then
711 AC_DEFINE_UNQUOTED(TTYTAB_FILENAME, "$rxvt_cv_path_ttytab", Define location of ttys/ttytab)
714 dnl# --------------------------------------------------------------------------
715 dnl# --------------------------------------------------------------------------
717 dnl# this is a really hack test for some basic Xlocale stuff
719 ac_save_CFLAGS=$CFLAGS
720 CFLAGS="$CFLAGS $X_CFLAGS"
721 LIBS="$LIBS $X_LIBS $X_EXTRA_LIBS -lX11"
722 if test x$rxvt_cv_rpath = xyes -o x$rxvt_cv_R = xyes; then
723 LIBS=`echo $LIBS | sed "$R_TRANSLATE"`
725 AC_CACHE_CHECK(for working Xlocale, rxvt_cv_func_xlocale,
726 [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <X11/Xlib.h>
729 if ((p = XSetLocaleModifiers("@im=none")) != NULL && *p)
730 exit (XSupportsLocale() ? 0 : 1);
733 rxvt_cv_func_xlocale=yes],[rxvt_cv_func_xlocale=no],[dnl
734 AC_MSG_WARN(Define NO_XLOCALE in config.h manually)])])
735 if test x$rxvt_cv_func_xlocale = xyes; then
736 AC_DEFINE(HAVE_XLOCALE, 1, Define if Xlocale support works)
739 AC_CACHE_CHECK(for working X setlocale, rxvt_cv_func_xsetlocale,
740 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define X_LOCALE 1
741 #include <X11/Xlocale.h>]], [[setlocale(LC_CTYPE, "");]])],[rxvt_cv_func_xsetlocale=yes],[rxvt_cv_func_xsetlocale=no])])
742 if test x$rxvt_cv_func_xsetlocale = xyes; then
743 AC_DEFINE(HAVE_XSETLOCALE, 1, Define if setlocale (defined to Xsetlocale) works)
746 CFLAGS=$ac_save_CFLAGS
748 AC_CACHE_CHECK(for working plain setlocale, rxvt_cv_func_setlocale,
749 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <clocale>]], [[setlocale(LC_CTYPE, "");]])],[rxvt_cv_func_setlocale=yes],[rxvt_cv_func_setlocale=no])])
750 if test x$rxvt_cv_func_setlocale = xyes; then
751 AC_DEFINE(HAVE_SETLOCALE, 1, Define if plain old setlocale works)
754 AC_CACHE_CHECK(for working nl_langinfo, rxvt_cv_func_nl_langinfo,
755 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <langinfo.h>]], [[nl_langinfo(CODESET);]])],[rxvt_cv_func_nl_langinfo=yes],[rxvt_cv_func_nl_langinfo=no])])
756 if test x$rxvt_cv_func_nl_langinfo = xyes; then
757 AC_DEFINE(HAVE_NL_LANGINFO, 1, Define if nl_langinfo(CODESET) works)
762 AC_CACHE_CHECK(for broken XIM callback, rxvt_broken_ximcb,
764 #include <X11/Xlib.h>
766 void im_destroy_cb (XIC unused1, XPointer client_data, XPointer unused3);
770 cb.callback = im_destroy_cb;
772 ],rxvt_broken_ximcb=yes,rxvt_broken_ximcb=no)])
774 if test x$rxvt_broken_ximcb = xyes; then
775 AC_DEFINE(XIMCB_PROTO_BROKEN, 1, Define if your XIMCallback specifies XIC as first type.)
782 dnl# --------------------------------------------------------------------------
783 dnl# now add and remove other stuff
784 dnl# --------------------------------------------------------------------------
785 if test x$support_xft = xyes; then
786 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
787 if test $PKG_CONFIG != no && $PKG_CONFIG --exists xft; then
788 LIBS="$LIBS `$PKG_CONFIG xft --libs`"
789 CPPFLAGS="$CPPFLAGS `$PKG_CONFIG xft --cflags`"
791 AC_PATH_PROG(XFT_CONFIG, xft-config, no)
792 if test $XFT_CONFIG != no; then
793 LIBS="$LIBS `$XFT_CONFIG --libs`"
794 CPPFLAGS="$CPPFLAGS `$XFT_CONFIG --cflags`"
798 AC_CHECK_HEADERS(X11/Xft/Xft.h,,[support_xft=no])
799 AC_CHECK_LIB(Xft,XftDrawString32,,[support_xft=no])
801 if test x$support_xft = xyes; then
802 AC_DEFINE(XFT, 1, Define to enable xft support)
805 if test x$support_styles = xyes; then
806 AC_DEFINE(ENABLE_STYLES, 1, Define if you want bold and italic support)
808 if test x$support_iso14755 = xyes; then
809 AC_DEFINE(ISO_14755, 1, Define if you want ISO 14755 extended support)
811 if test x$support_8bitctrls = xyes; then
812 AC_DEFINE(EIGHT_BIT_CONTROLS, 1, Define if you want 8 bit control sequences)
814 if test x$support_fading = xyes; then
815 AC_DEFINE(OFF_FOCUS_FADING, 1, Define if you want faded colors when focus is lost)
817 if test x$support_tinting = xyes; then
818 AC_DEFINE(TINTING, 1, Define if you want your background to be tinted)
820 if test x$support_inheritpixmap = xyes; then
821 AC_DEFINE(TRANSPARENT, 1, Define if you want your background to use the parent window background)
823 if test x$support_keepscrolling = xno; then
824 AC_DEFINE(NO_SCROLLBAR_BUTTON_CONTINUAL_SCROLLING, 1, Define for continual scrolling when you keep the scrollbar button pressed)
826 if test x$support_selectionscrolling = xyes; then
827 AC_DEFINE(SELECTION_SCROLLING, 1, Define to allow scrolling when the selection moves to the top or bottom of the screen)
829 if test x$support_frills = xyes; then
830 AC_DEFINE(ENABLE_FRILLS, 1, Define if you want handling for rarely used but handy features)
832 if test x$support_24bit = xyes; then
833 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)
835 if test x$support_mousewheel = xyes; then
836 AC_DEFINE(MOUSE_WHEEL, 1, Define to use wheel events (button4 and button5) to scroll)
838 if test x$support_mouseslipwheel = xyes; then
839 AC_DEFINE(MOUSE_SLIP_WHEELING, 1, Define to have CTRL cause wheel events to accelerate scrolling. Release CTRL to halt scrolling)
841 if test x$support_xim = xyes -o x$multichar_set = xyes; then
842 if test x$rxvt_cv_func_xlocale = xyes; then
843 AC_DEFINE(USE_XIM, 1, Define if you want to have XIM (X Input Method) protocol support - required for multibyte characters input)
846 if test x$support_xpm = xyes; then
847 AC_DEFINE(XPM_BACKGROUND, 1, Define if you want to have sexy-looking background pixmaps. Needs libXpm)
849 if test x$support_scroll_rxvt = xyes; then
850 AC_DEFINE(RXVT_SCROLLBAR, 1, Support Rxvt original style scrollbars)
853 if test x$support_scroll_next = xyes; then
854 AC_DEFINE(NEXT_SCROLLBAR, 1, Support NeXT style scrollbars)
855 scrolltypes="$scrolltypes next"
857 if test x$support_scroll_xterm = xyes; then
858 AC_DEFINE(XTERM_SCROLLBAR, 1, Support Xterm style scrollbars)
859 scrolltypes="$scrolltypes xterm"
861 if test x$support_scroll_plain = xyes; then
862 AC_DEFINE(PLAIN_SCROLLBAR, 1, Support plain style scrollbars)
863 scrolltypes="$scrolltypes plain"
865 if test x$support_pointer_blank = xyes; then
866 AC_DEFINE(POINTER_BLANK, 1, Define if you want hide the pointer while typing)
868 if test x$support_text_blink = xyes; then
869 AC_DEFINE(TEXT_BLINK, 1, Define if you want blinking text support)
871 if test x$support_unicode3 = xyes; then
872 AC_DEFINE(UNICODE_3, 1, Define if you want to represent unicode characters outside plane 0)
874 if test x$support_combining = xyes; then
875 AC_DEFINE(ENABLE_COMBINING, 1, Define if you want to automatically compose combining characters)
877 if test x$codesets = xall; then
878 codesets=jp,jp-ext,kr,zh,zh-ext
880 AC_DEFINE(ENCODING_EU, 1, Define if you want european extended codesets)
881 AC_DEFINE(ENCODING_VN, 1, Define if you want vietnamese codesets)
882 for codeset in `echo $codesets | tr "[a-z,\\-]" "[A-Z _]"`; do
884 JP ) AC_DEFINE(ENCODING_JP, 1, Define if you want japanese codesets) ;;
885 JP_EXT ) AC_DEFINE(ENCODING_JP_EXT, 1, Define if you want extended japanese codesets) ;;
886 KR ) AC_DEFINE(ENCODING_KR, 1, Define if you want korean codesets) ;;
887 ZH ) AC_DEFINE(ENCODING_ZH, 1, Define if you want chinese codesets) ;;
888 ZH_EXT ) AC_DEFINE(ENCODING_ZH_EXT, 1, Define if you want extended chinese codesets) ;;
893 if test x$support_perl = xyes; then
894 AC_PATH_PROG(PERL, perl5)
895 AC_PATH_PROG(PERL, perl)
897 AC_MSG_CHECKING(for $PERL suitability)
898 if $PERL -MExtUtils::Embed -e "use v5.8" >/dev/null 2>/dev/null; then
900 save_CXXFLAGS="$CXXFLAGS"
902 CXXFLAGS="$CXXFLAGS `$PERL -MExtUtils::Embed -e ccopts`"
903 LIBS="$LIBS `$PERL -MExtUtils::Embed -e ldopts`"
909 PerlInterpreter *perl = perl_alloc ();
910 ],[rxvt_perl_link=yes],[rxvt_perl_link=no])
911 CXXFLAGS="$save_CXXFLAGS"
914 if test x$rxvt_perl_link = xyes; then
916 AC_DEFINE(ENABLE_PERL, 1, Define if you can embed a perl interpreter)
919 PERLFLAGS="`$PERL -MExtUtils::Embed -e ccopts`"
920 PERLLIB="`$PERL -MExtUtils::Embed -e ldopts`"
921 PERLPRIVLIBEXP="`$PERL -MConfig -e 'print $Config{privlibexp}'`"
923 AC_MSG_ERROR([no, unable to link])
926 AC_MSG_ERROR([no working perl found, or perl not version >= 5.8])
931 AC_SUBST(PERLPRIVLIBEXP)
936 if test x$support_perl = xyes; then
940 dnl> AC_CHECK_FUNCS(gettimeofday putenv select socket)
943 LDFLAGS=${LDFLAGS--O}
954 if test x$rxvt_cv_rpath = xyes -o x$rxvt_cv_R = xyes; then
955 DLIB=`echo $DLIB | sed "$R_TRANSLATE"`
956 LIBS=`echo $LIBS | sed "$R_TRANSLATE"`
957 X_LIBS=`echo $X_LIBS | sed "$R_TRANSLATE"`
958 X_EXTRA_LIBS=`echo $X_EXTRA_LIBS | sed "$R_TRANSLATE"`
959 XPM_LIBS=`echo $XPM_LIBS | sed "$R_TRANSLATE"`
964 AC_SUBST(X_EXTRA_LIBS)
968 dnl# test for "sun" or "__sun__" before include sys_ioctl
970 dnl# revert HAVE_BLAH_H into a "#include <blah.h>"
971 AC_DEFUN([RXVT_DEFINE_TO_INCLUDE], dnl
972 [if test "$$3" = "$4" -o "$$5" = "$6"; then
975 $1="/* #include <$2> */"
979 RXVT_DEFINE_TO_INCLUDE(include_stdint_h, stdint.h, ac_cv_header_stdint_h, yes, notset, dontmatch)
980 RXVT_DEFINE_TO_INCLUDE(include_stdarg_h, cstdarg, ac_cv_header_stdarg_h, yes, notset, dontmatch)
981 RXVT_DEFINE_TO_INCLUDE(include_stdlib_h, cstdlib, ac_cv_header_stdlib_h, yes, notset, dontmatch)
982 RXVT_DEFINE_TO_INCLUDE(include_unistd_h, unistd.h, ac_cv_header_unistd_h, yes, notset, dontmatch)
983 RXVT_DEFINE_TO_INCLUDE(include_string_h, cstring, ac_cv_header_string_h, yes, notset, dontmatch)
984 RXVT_DEFINE_TO_INCLUDE(include_fcntl_h, fcntl.h, ac_cv_header_fcntl_h, yes, notset, dontmatch)
985 RXVT_DEFINE_TO_INCLUDE(include_util_h, util.h, ac_cv_header_util_h, yes, notset, dontmatch)
986 RXVT_DEFINE_TO_INCLUDE(include_assert_h, assert.h, ac_cv_header_assert_h, yes, notset, dontmatch)
987 RXVT_DEFINE_TO_INCLUDE(include_sys_ioctl_h, sys/ioctl.h, rxvt_cv_header_sysioctl, yes, notset, dontmatch)
988 RXVT_DEFINE_TO_INCLUDE(include_sys_select_h, sys/select.h, ac_cv_header_sys_select_h, yes, notset, dontmatch)
989 RXVT_DEFINE_TO_INCLUDE(include_sys_strredir_h, sys/strredir.h, ac_cv_header_sys_strredir_h, yes, notset, dontmatch)
990 RXVT_DEFINE_TO_INCLUDE(include_sys_time_h, sys/time.h, ac_cv_header_sys_time_h, yes, notset, dontmatch)
991 RXVT_DEFINE_TO_INCLUDE(include_time_h, time.h, ac_cv_header_sys_time_h, no, ac_cv_header_time, yes)
993 AC_CONFIG_FILES([Makefile \
1000 echo "Configuration:
1002 Rxvt version: $VERSION : $DATE
1003 Source code location: $srcdir
1004 Install path: ${prefix}/bin
1006 Compiler flags: $CFLAGS
1009 if test "$MALLOC_TYPE" = S; then
1010 echo " malloc support: system default"
1012 if test "$MALLOC_TYPE" = G; then
1013 echo " malloc support: Gray Watson's dmalloc"
1015 if test "$MALLOC_TYPE" = D; then
1016 echo " malloc support: Doug Lea's malloc"
1019 if test x$support_xpm = xyes; then
1020 echo " Xpm library: $XPM_LIBS"
1023 if test x$term != x; then
1024 echo " set TERM to: $term"
1026 if test x$terminfo != x; then
1027 echo " set TERMINFO to: $terminfo"
1029 echo " default resource name: $RESNAME"
1030 echo " resource class: $RESCLASS"
1031 if test x$RESFALLBACK != x; then
1032 echo " resource class fallback: $RESFALLBACK"
1035 echo " embedded perl: $support_perl"
1037 if test x$support_xpm = xneedsmanualspecification; then
1038 echo ".----------------------------------------------------------------."
1039 echo ". WARNING: --enable-xpm-background was specified however the ."
1040 echo ". XPM includes files and libraries could not be found. ."
1041 echo ". XPM backgrounds are now being DISABLED! If you want ."
1042 echo ". to use them you should rerun configure with the ."
1043 echo ". appropriate --with-xpm-includes=/path/to/xpm/includes ."
1044 echo ". and --with-xpm-library=/path/to/xpm/library lines. ."
1045 echo ".----------------------------------------------------------------."
1047 if test x$support_xim = xyes -a x$rxvt_cv_func_xlocale = xno; then
1048 echo ".----------------------------------------------------------------."
1049 echo ". WARNING: --enable-xim was specified however the locale support ."
1050 echo ". functions could not be found. ."
1051 echo ". XIM is now being DISABLED! ."
1052 echo ".----------------------------------------------------------------."
1055 echo " *** Optionally check src/feature.h for further options ***"
1058 echo ".----------------------------------------------------------------."
1059 echo ". NOTE: some features are disabled by default, try ."
1060 echo ". configure --help to get an idea of the optional features, ."
1061 echo ". or read ./README.configure ."
1063 echo ". The script ./reconf gives a reasonable baseline, try it if ."
1064 echo ". you do not want to read documentation and still want some ."
1065 echo ". useful features. ."
1066 echo ".----------------------------------------------------------------."