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])
62 dnl# --------------------------------------------------------------------------
63 dnl# Supply default CXXFLAGS, if not specified by `CXXFLAGS=flags ./configure'
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"])
75 AC_DEFINE(_GNU_SOURCE, 1, Use all glibc features.)
79 AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1, Needed to get declarations for msg_control and msg_controllen on Solaris)
80 AC_DEFINE(_XOPEN_SOURCE, 2, Needed to get declarations for msg_control and msg_controllen on Solaris)
81 AC_DEFINE(__EXTENSIONS__, 1, Needed to get declarations for msg_control and msg_controllen on Solaris)
85 dnl if test x$GXX = xyes; then
86 dnl CXXFLAGS="$CXXFLAGS" dnl I once had -fno-exceptions, but I am using them now...
89 dnl# FreeBSD needs to link libxpg4
90 AC_CHECK_FUNC(setlocale, [], [AC_CHECK_LIB(xpg4, setlocale, [LIBS="$LIBS -lxpg4"])])
92 dnl# solaris needs to link libnsl and socket
93 AC_CHECK_FUNC(gethostbyname, [], [AC_CHECK_LIB(nsl, gethostbyname, [LIBS="$LIBS -lnsl"])])
94 AC_CHECK_FUNC(socket, [], [AC_CHECK_LIB(socket, socket, [LIBS="$LIBS -lsocket"])])
96 dnl AC_ENABLE_SHARED(no)dnl# libtool
97 dnl AC_ENABLE_STATIC(yes)dnl# libtool
98 dnl AC_PROG_LIBTOOL()dnl# libtool
101 support_inheritpixmap=yes
104 support_keepscrolling=yes
105 support_selectionscrolling=yes
106 support_mousewheel=yes
107 support_mouseslipwheel=yes
108 support_text_blink=yes
109 support_pointer_blank=yes
110 support_scroll_rxvt=yes
111 support_scroll_next=yes
112 support_scroll_xterm=yes
113 support_scroll_plain=yes
116 support_afterimage=yes
117 support_afterstep=yes
120 support_combining=yes
127 dnl# --------------------------------------------------------------------------
128 dnl# CHECKING COMMAND LINE OPTIONS
129 dnl# --------------------------------------------------------------------------
131 if test "x$enable_shared" = xyes; then
132 AC_DEFINE(LIBRXVT, 1, Build shared library version - specify via configure only)
135 AC_SUBST(INSTALL_LIBRXVT)
137 AC_ARG_ENABLE(everything,
138 [ --enable-everything enable standard non-multichoice features
139 NOTE: this option is order dependent
140 NOTE: automatically enabled with --enable-shared],
142 if test x$enableval = xno; then
144 support_inheritpixmap=no
147 support_keepscrolling=no
148 support_selectionscrolling=no
150 support_mousewheel=no
151 support_mouseslipwheel=no
152 support_text_blink=no
153 support_pointer_blank=no
154 support_scroll_rxvt=no
155 support_scroll_next=no
156 support_scroll_xterm=no
157 support_scroll_plain=no
162 support_afterimage=no
173 if test x$enableval = xyes; then
175 support_inheritpixmap=yes
178 support_keepscrolling=yes
179 support_selectionscrolling=yes
181 support_mousewheel=yes
182 support_mouseslipwheel=yes
183 support_text_blink=yes
184 support_pointer_blank=yes
185 support_scroll_rxvt=yes
186 support_scroll_next=yes
187 support_scroll_xterm=yes
188 support_scroll_plain=yes
193 support_afterimage=yes
194 support_afterstep=yes
197 support_combining=yes
198 #support_8bitctrls=yes
206 AC_ARG_ENABLE(unicode3,
207 [ --enable-unicode3 use 21 instead of 16 bits to represent unicode characters],
208 [if test x$enableval = xyes -o x$enableval = xno; then
209 support_unicode3=$enableval
212 AC_ARG_ENABLE(combining,
213 [ --enable-combining enable composition of base and combining characters],
214 [if test x$enableval = xyes -o x$enableval = xno; then
215 support_combining=$enableval
219 [ --enable-xft enable xft support on systems that have it],
220 [if test x$enableval = xyes -o x$enableval = xno; then
221 support_xft=$enableval
224 AC_ARG_ENABLE(font-styles,
225 [ --enable-font-styles enable bold and italic support],
226 [if test x$enableval = xyes -o x$enableval = xno; then
227 support_styles=$enableval
230 AC_ARG_ENABLE(xpm-background,
231 [ --enable-xpm-background enable background pixmaps],
232 [if test x$enableval = xyes -o x$enableval = xno; then
233 support_xpm=$enableval
236 AC_ARG_ENABLE(afterimage,
237 [ --enable-afterimage enable integration with libAfterImage for background images],
238 [if test x$enableval = xyes -o x$enableval = xno; then
239 support_afterimage=$enableval
242 AC_ARG_WITH(afterimage_config,
243 [ --with-afterimage-config=DIR use libAfterImage config script in DIR],
244 [if test "x$withval" != x; then
245 afterimage_config=$withval/afterimage-config
248 AC_ARG_ENABLE(afterstep,
249 [ --enable-afterstep enable integration with AfterStep window manager],
250 [if test x$enableval = xyes -o x$enableval = xno; then
251 support_afterstep=$enableval
254 AC_ARG_ENABLE(transparency,
255 [ --enable-transparency enable transparent backgrounds],
256 [if test x$enableval = xyes -o x$enableval = xno; then
257 support_inheritpixmap=$enableval
260 AC_ARG_ENABLE(tinting,
261 [ --enable-tinting enable tinting of transparent bg],
262 [if test x$enableval = xyes -o x$enableval = xno; then
263 support_tinting=$enableval
266 AC_ARG_ENABLE(fading,
267 [ --enable-fading enable colors fading when off focus],
268 [if test x$enableval = xyes -o x$enableval = xno; then
269 support_fading=$enableval
272 AC_ARG_ENABLE(rxvt-scroll,
273 [ --enable-rxvt-scroll enable rxvt style scrollbar],
274 [if test x$enableval = xyes -o x$enableval = xno; then
275 support_scroll_rxvt=$enableval
278 AC_ARG_ENABLE(next-scroll,
279 [ --enable-next-scroll enable NeXT style scrollbar],
280 [if test x$enableval = xyes -o x$enableval = xno; then
281 support_scroll_next=$enableval
284 AC_ARG_ENABLE(xterm-scroll,
285 [ --enable-xterm-scroll enable Xterm style scrollbar],
286 [if test x$enableval = xyes -o x$enableval = xno; then
287 support_scroll_xterm=$enableval
291 [ --enable-perl enable embedded perl interpreter],
292 [if test x$enableval = xyes -o x$enableval = xno; then
293 support_perl=$enableval
296 AC_ARG_ENABLE(plain-scroll,
297 [ --enable-plain-scroll enable plain style scrollbar],
298 [if test x$enableval = xyes -o x$enableval = xno; then
299 support_scroll_plain=$enableval
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
388 AC_ARG_ENABLE(keepscrolling,
389 [ --enable-keepscrolling enable continual scrolling on scrollbar arrow press],
390 [if test x$enableval = xyes -o x$enableval = xno; then
391 support_keepscrolling=$enableval
394 AC_ARG_ENABLE(selectionscrolling,
395 [ --enable-selectionscrolling enable scrolling during selections],
396 [if test x$enableval = xyes -o x$enableval = xno; then
397 support_selectionscrolling=$enableval
400 AC_ARG_ENABLE(mousewheel,
401 [ --enable-mousewheel enable scrolling via mouse wheel or buttons 4 & 5],
402 [if test x$enableval = xyes -o x$enableval = xno; then
403 support_mousewheel=$enableval
406 AC_ARG_ENABLE(slipwheeling,
407 [ --enable-slipwheeling enable slip wheel scrolling (requires previous)],
408 [if test x$enableval = xyes -o x$enableval = xno; then
409 support_mouseslipwheel=$enableval
412 AC_ARG_ENABLE(smart-resize,
413 [ --enable-smart-resize enable smart growth/shrink behaviour],
414 [if test x$enableval = xyes; then
415 AC_DEFINE(SMART_RESIZE, 1, Define to use "smart" resize behavior)
418 AC_ARG_ENABLE(text-blink,
419 [ --enable-text-blink enable blinking text],
420 [if test x$enableval = xyes -o x$enableval = xno; then
421 support_text_blink=$enableval
424 AC_ARG_ENABLE(pointer-blank,
425 [ --enable-pointer-blank enable pointer blank when typing or inactive pointer],
426 [if test x$enableval = xyes -o x$enableval = xno; then
427 support_pointer_blank=$enableval
431 [ --with-term=NAME set the terminal to NAME (default: rxvt)],
432 [if test x$withval != x; then
433 AC_DEFINE_UNQUOTED(TERMENV, "$withval",Set TERM to the value given by configure) term="$withval"
436 AC_ARG_WITH(terminfo,
437 [ --with-terminfo=PATH set the path to the terminfo tree to PATH],
438 [if test x$withval != x; then
439 AC_DEFINE_UNQUOTED(RXVT_TERMINFO, "$withval", Set TERMINFO value to the value given by configure) terminfo="$withval"
442 dnl# --------------------------------------------------------------------------
444 AC_PATH_PROG(MV, mv, mv)
445 AC_PATH_PROG(CP, cp, cp)
446 AC_PATH_PROG(LN, ln, ln)
447 AC_PATH_PROG(SED, sed, sed)
448 AC_PATH_PROG(ECHO, echo, echo)
449 AC_PATH_PROG(CMP, cmp, cmp)
450 AC_PATH_PROG(TIC, tic)
452 dnl# need a neat way to detect SVR4 or its features
453 dnl# in src/command.c we use these functions:
454 dnl# grantpt(), unlockpt(), ptsname(), which are defined in <sys/ptms.h>
455 dnl# - but are these also defined for other systems?
457 dnl# hack to find if this is SVR4 -- who knows?
458 dnl## AC_MSG_CHECKING(for SVR4)
459 dnl## AC_EGREP_CPP(yes,
460 dnl## [#if defined (SVR4) || defined (_SVR4) || defined (__svr4__)
463 dnl## ], [AC_MSG_RESULT(yes); AC_DEFINE(PERHAPS_SVR4)], AC_MSG_RESULT(perhaps not?))
467 dnl# the only reasonable way to find libXpm is do-it-yourself
468 dnl# only check if we want xpm-background
470 LIBAFTERIMAGE_CFLAGS=
474 if test x$support_afterimage = xyes; then
475 support_afterimage=no
477 if test "x$afterimage_config" = "x" ; then
478 AC_PATH_PROG(afterimage_config, afterimage-config, no)
481 AC_MSG_CHECKING(for libAfterImage)
482 if $afterimage_config --version >/dev/null 2>&1 ; then
483 LIBAFTERIMAGE_CFLAGS=`$afterimage_config --cflags`
484 AFTERIMAGE_LIBS=`$afterimage_config --libs`
485 if test "x$AFTERIMAGE_LIBS" != "x"; then
486 support_afterimage=yes
490 if test "x$support_afterimage" = "xyes"; then
491 AC_MSG_RESULT($AFTERIMAGE_LIBS)
497 if test x$support_afterimage != xyes -a x$support_xpm = xyes ; then
499 if test x$no_xpm = xyes; then
500 support_xpm=needsmanualspecification
504 dnl# --------------------------------------------------------------------------
505 dnl# CHECKING FOR HEADER FILES
506 dnl# --------------------------------------------------------------------------
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
536 #endif]], [[int a = ECHO;]])],[rxvt_cv_header_sysioctl=yes],[rxvt_cv_header_sysioctl=no])])
538 dnl# ELF systems may want to store paths for dynamic libraries.
539 dnl# Lets see if the compiler can accept "-Rpath" or "-Wl,-Rpath"
540 dnl# At least one version of SunOS wants "-R path" but it's not checked yet.
541 if test -n "$GCC"; then
547 R_TRANSLATE='s/-L\([^ ]*\)/-L\1 '$LDARG'-rpath '$LDARG'\1/g'
550 ac_save_CFLAGS=$CFLAGS
552 CFLAGS="$CFLAGS $X_CFLAGS"
553 LIBS=`echo "$LIBS $X_LIBS $X_EXTRA_LIBS -lX11" | sed "$R_TRANSLATE"`
554 AC_CACHE_CHECK([for -rpath dynamic library path recording], rxvt_cv_rpath,
555 [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <X11/Xlib.h>
560 (void) XOpenDisplay("foobar");
561 }]])],[rxvt_cv_rpath=yes],[rxvt_cv_rpath=no],[dnl
562 AC_MSG_WARN(You may need to check the LIBS line)])])
563 if test x$rxvt_cv_rpath != xyes; then
565 R_TRANSLATE='s/-L\([^ ]*\)/-L\1 '$LDARG'-R\1/g'
567 LIBS=`echo "$ac_save_LIBS $X_LIBS $X_EXTRA_LIBS -lX11" | sed "$R_TRANSLATE"`
568 AC_CACHE_CHECK([for -R dynamic library path recording], rxvt_cv_R,
569 [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <X11/Xlib.h>
574 (void) XOpenDisplay("foobar");
575 }]])],[rxvt_cv_R=yes],[rxvt_cv_R=no],[rxvt_cv_R=no])])
576 if test x$rxvt_cv_R != xyes; then
577 LIBS="$ac_save_LIBS $X_LIBS $X_EXTRA_LIBS -lX11"
581 AC_CACHE_CHECK([for XPointer], rxvt_cv_xpointer,
582 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <X11/Xlib.h>]], [[XPointer dummy;]])],[rxvt_cv_xpointer=yes],[rxvt_cv_xpointer=no])])
583 if test x$rxvt_cv_xpointer = xyes; then
584 AC_DEFINE(HAVE_XPOINTER, 1, Define if you have XPointer typedef)
587 CFLAGS=$ac_save_CFLAGS
589 AC_CACHE_CHECK([for XLIB_ILLEGAL_ACCESS], rxvt_xlib_illegal_access,
592 #define XLIB_ILLEGAL_ACCESS
593 #include <X11/Xlib.h>
596 dpy->xdefaults = (char *)0;
598 [rxvt_xlib_illegal_access=yes],[rxvt_xlib_illegal_access=no]
600 if test x$rxvt_xlib_illegal_access = xyes; then
601 AC_DEFINE(XLIB_ILLEGAL_ACCESS, 1, Define ONLY iff Xlib.h supports it)
607 dnl> AC_HEADER_STDC dnl# skip this test, Sun always fails anyhow.
609 dnl# --------------------------------------------------------------------------
610 dnl# CHECKING FOR MISSING TYPEDEFS
611 dnl# --------------------------------------------------------------------------
612 dnl# Missing typedefs and replacements
614 dnl> AC_CHECK_TYPE(umode_t, int)
615 dnl> AC_CHECK_TYPE(off_t, long)
619 AC_CHECK_SIZEOF(short, 2)
620 AC_CHECK_SIZEOF(int, 4)
621 dnl AC_CHECK_SIZEOF(long, 4)
622 AC_CHECK_SIZEOF(long long, 8)
623 AC_CHECK_SIZEOF(int *, 4)
626 AC_DEFUN([RXVT_CHECK_SIZE],
627 [AC_CACHE_CHECK([for $2], $1,
628 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdint.h>]], [[$2 dummy;]])],[$1=yes],[dnl
629 if test "$ac_cv_sizeof_char" -ge $3; then
632 if test "$ac_cv_sizeof_short" -ge $3; then
635 if test "$ac_cv_sizeof_int" -ge $3; then
638 if test "$ac_cv_sizeof_long" -ge $3; then
641 if test "$ac_cv_sizeof_long_long" -ge $3; then
644 $1="$4 $5" # we _must_ have a (possibly wrong) default
650 if test x"$$1" != xyes; then
653 if test x"$4" = x; then
654 $6="/* typedef $5 $2; */"
656 $6="/* typedef $4 $5 $2; */"
661 dnl# Look for types the system may know about anyway.
663 RXVT_CHECK_SIZE(rxvt_cv_int16_t, int16_t, 2, , short, rxvt_int16_typedef)
664 AC_SUBST(rxvt_int16_typedef)
665 RXVT_CHECK_SIZE(rxvt_cv_uint16_t, uint16_t, 2, unsigned, short, rxvt_uint16_typedef)
666 AC_SUBST(rxvt_uint16_typedef)
667 RXVT_CHECK_SIZE(rxvt_cv_int32_t, int32_t, 4, , int, rxvt_int32_typedef)
668 AC_SUBST(rxvt_int32_typedef)
669 RXVT_CHECK_SIZE(rxvt_cv_uint32_t, uint32_t, 4, unsigned, int, rxvt_uint32_typedef)
670 AC_SUBST(rxvt_uint32_typedef)
671 dnl RXVT_CHECK_SIZE(rxvt_cv_int64_t, int64_t, 8, , long long, rxvt_int64_typedef)
672 dnl AC_SUBST(rxvt_int64_typedef)
673 dnl RXVT_CHECK_SIZE(rxvt_cv_uint64_t, uint64_t, 8, unsigned, long long, rxvt_uint64_typedef)
674 dnl AC_SUBST(rxvt_uint64_typedef)
676 dnl# Now look for another we use
678 if test "$ac_cv_sizeof_int_p" -eq 8; then
679 rxvt_intp_define="#define intp_t int64_t"
680 rxvt_u_intp_define="#define u_intp_t u_int64_t"
682 if test "$ac_cv_sizeof_int_p" -eq 4; then
683 rxvt_intp_define="#define intp_t int32_t"
684 rxvt_u_intp_define="#define u_intp_t u_int32_t"
686 if test "$ac_cv_sizeof_int_p" -eq 2; then
687 rxvt_intp_define="#define intp_t int16_t"
688 rxvt_u_intp_define="#define u_intp_t u_int16_t"
690 rxvt_intp_define="#error set intp_t"
691 rxvt_u_intp_define="#error set u_intp_t"
695 AC_SUBST(rxvt_intp_define)
696 AC_SUBST(rxvt_u_intp_define)
698 dnl# --------------------------------------------------------------------------
699 dnl# CHECKING FOR LIBRARY FUNCTIONS
700 dnl# --------------------------------------------------------------------------
712 dnl# --------------------------------------------------------------------------
714 dnl# find ttys/ttytab
715 AC_CACHE_CHECK(where ttys/ttytab is located, rxvt_cv_path_ttytab,
716 [for ttys_file in dnl
717 /etc/ttys /etc/ttytab;
719 if test -f "$ttys_file" ; then
720 rxvt_cv_path_ttytab=$ttys_file
725 if test x$rxvt_cv_path_ttytab != x; then
726 AC_DEFINE_UNQUOTED(TTYTAB_FILENAME, "$rxvt_cv_path_ttytab", Define location of ttys/ttytab)
729 dnl# --------------------------------------------------------------------------
730 dnl# --------------------------------------------------------------------------
732 dnl# this is a really hack test for some basic Xlocale stuff
734 ac_save_CFLAGS=$CFLAGS
735 CFLAGS="$CFLAGS $X_CFLAGS"
736 LIBS="$LIBS $X_LIBS $X_EXTRA_LIBS -lX11"
737 if test x$rxvt_cv_rpath = xyes -o x$rxvt_cv_R = xyes; then
738 LIBS=`echo $LIBS | sed "$R_TRANSLATE"`
740 AC_CACHE_CHECK(for working Xlocale, rxvt_cv_func_xlocale,
741 [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <X11/Xlib.h>
745 if ((p = XSetLocaleModifiers("@im=none")) != NULL && *p)
746 exit (XSupportsLocale() ? 0 : 1);
749 rxvt_cv_func_xlocale=yes],[rxvt_cv_func_xlocale=no],[dnl
750 AC_MSG_WARN(Define NO_XLOCALE in config.h manually)])])
751 if test x$rxvt_cv_func_xlocale = xyes; then
752 AC_DEFINE(HAVE_XLOCALE, 1, Define if Xlocale support works)
755 AC_CACHE_CHECK(for working X setlocale, rxvt_cv_func_xsetlocale,
756 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define X_LOCALE 1
757 #include <X11/Xlocale.h>]], [[setlocale(LC_CTYPE, "");]])],[rxvt_cv_func_xsetlocale=yes],[rxvt_cv_func_xsetlocale=no])])
758 if test x$rxvt_cv_func_xsetlocale = xyes; then
759 AC_DEFINE(HAVE_XSETLOCALE, 1, Define if setlocale (defined to Xsetlocale) works)
762 CFLAGS=$ac_save_CFLAGS
764 AC_CACHE_CHECK(for working plain setlocale, rxvt_cv_func_setlocale,
765 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <clocale>]], [[setlocale(LC_CTYPE, "");]])],[rxvt_cv_func_setlocale=yes],[rxvt_cv_func_setlocale=no])])
766 if test x$rxvt_cv_func_setlocale = xyes; then
767 AC_DEFINE(HAVE_SETLOCALE, 1, Define if plain old setlocale works)
770 AC_CACHE_CHECK(for working nl_langinfo, rxvt_cv_func_nl_langinfo,
771 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <langinfo.h>]], [[nl_langinfo(CODESET);]])],[rxvt_cv_func_nl_langinfo=yes],[rxvt_cv_func_nl_langinfo=no])])
772 if test x$rxvt_cv_func_nl_langinfo = xyes; then
773 AC_DEFINE(HAVE_NL_LANGINFO, 1, Define if nl_langinfo(CODESET) works)
778 AC_CACHE_CHECK(for broken XIM callback, rxvt_broken_ximcb,
780 #include <X11/Xlib.h>
782 void im_destroy_cb (XIC unused1, XPointer client_data, XPointer unused3);
786 cb.callback = im_destroy_cb;
788 ],rxvt_broken_ximcb=yes,rxvt_broken_ximcb=no)])
790 if test x$rxvt_broken_ximcb = xyes; then
791 AC_DEFINE(XIMCB_PROTO_BROKEN, 1, Define if your XIMCallback specifies XIC as first type.)
798 dnl# --------------------------------------------------------------------------
799 dnl# now add and remove other stuff
800 dnl# --------------------------------------------------------------------------
801 if test x$support_xft = xyes; then
802 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
803 if test $PKG_CONFIG != no && $PKG_CONFIG --exists xft; then
804 LIBS="$LIBS `$PKG_CONFIG xft --libs`"
805 CPPFLAGS="$CPPFLAGS `$PKG_CONFIG xft --cflags`"
807 AC_PATH_PROG(XFT_CONFIG, xft-config, no)
808 if test $XFT_CONFIG != no; then
809 LIBS="$LIBS `$XFT_CONFIG --libs`"
810 CPPFLAGS="$CPPFLAGS `$XFT_CONFIG --cflags`"
814 AC_CHECK_HEADERS(X11/Xft/Xft.h,,[support_xft=no])
815 AC_CHECK_LIB(Xft,XftDrawString32,,[support_xft=no])
817 if test x$support_xft = xyes; then
818 AC_DEFINE(XFT, 1, Define to enable xft support)
821 if test x$support_styles = xyes; then
822 AC_DEFINE(ENABLE_STYLES, 1, Define if you want bold and italic support)
824 if test x$support_iso14755 = xyes; then
825 AC_DEFINE(ISO_14755, 1, Define if you want ISO 14755 extended support)
827 if test x$support_8bitctrls = xyes; then
828 AC_DEFINE(EIGHT_BIT_CONTROLS, 1, Define if you want 8 bit control sequences)
830 if test x$support_fading = xyes; then
831 AC_DEFINE(OFF_FOCUS_FADING, 1, Define if you want faded colors when focus is lost)
833 if test x$support_tinting = xyes; then
834 AC_DEFINE(TINTING, 1, Define if you want your background to be tinted)
836 if test x$support_inheritpixmap = xyes; then
837 AC_DEFINE(TRANSPARENT, 1, Define if you want your background to use the parent window background)
839 if test x$support_keepscrolling = xno; then
840 AC_DEFINE(NO_SCROLLBAR_BUTTON_CONTINUAL_SCROLLING, 1, Define for continual scrolling when you keep the scrollbar button pressed)
842 if test x$support_selectionscrolling = xyes; then
843 AC_DEFINE(SELECTION_SCROLLING, 1, Define to allow scrolling when the selection moves to the top or bottom of the screen)
845 if test x$support_frills = xyes; then
846 AC_DEFINE(ENABLE_FRILLS, 1, Define if you want handling for rarely used but handy features)
848 if test x$support_mousewheel = xyes; then
849 AC_DEFINE(MOUSE_WHEEL, 1, Define to use wheel events (button4 and button5) to scroll)
851 if test x$support_mouseslipwheel = xyes; then
852 AC_DEFINE(MOUSE_SLIP_WHEELING, 1, Define to have CTRL cause wheel events to accelerate scrolling. Release CTRL to halt scrolling)
854 if test x$support_xim = xyes -o x$multichar_set = xyes; then
855 if test x$rxvt_cv_func_xlocale = xyes; then
856 AC_DEFINE(USE_XIM, 1, Define if you want to have XIM (X Input Method) protocol support - required for multibyte characters input)
859 if test x$support_xpm = xyes -o x$support_afterimage = xyes ; then
860 AC_DEFINE(XPM_BACKGROUND, 1, Define if you want to have sexy-looking background pixmaps. Needs libXpm or libAfterImage)
863 if test x$support_afterimage = xyes; then
864 AC_DEFINE(HAVE_AFTERIMAGE, 1, Define if you want to use libAfterImage for image processing)
867 if test x$support_afterstep = xyes; then
868 AC_DEFINE(AFTERSTEP_INTEGRATION, 1, Define if you want to integrate with AfterStep window manager)
871 if test x$support_scroll_rxvt = xyes; then
872 AC_DEFINE(RXVT_SCROLLBAR, 1, Support Rxvt original style scrollbars)
875 if test x$support_scroll_next = xyes; then
876 AC_DEFINE(NEXT_SCROLLBAR, 1, Support NeXT style scrollbars)
877 scrolltypes="$scrolltypes next"
879 if test x$support_scroll_xterm = xyes; then
880 AC_DEFINE(XTERM_SCROLLBAR, 1, Support Xterm style scrollbars)
881 scrolltypes="$scrolltypes xterm"
883 if test x$support_scroll_plain = xyes; then
884 AC_DEFINE(PLAIN_SCROLLBAR, 1, Support plain style scrollbars)
885 scrolltypes="$scrolltypes plain"
887 if test x$support_pointer_blank = xyes; then
888 AC_DEFINE(POINTER_BLANK, 1, Define if you want hide the pointer while typing)
890 if test x$support_text_blink = xyes; then
891 AC_DEFINE(TEXT_BLINK, 1, Define if you want blinking text support)
893 if test x$support_unicode3 = xyes; then
894 AC_DEFINE(UNICODE_3, 1, Define if you want to represent unicode characters outside plane 0)
896 if test x$support_combining = xyes; then
897 AC_DEFINE(ENABLE_COMBINING, 1, Define if you want to automatically compose combining characters)
899 if test x$codesets = xall; then
900 codesets=jp,jp-ext,kr,zh,zh-ext
902 AC_DEFINE(ENCODING_EU, 1, Define if you want european extended codesets)
903 AC_DEFINE(ENCODING_VN, 1, Define if you want vietnamese codesets)
904 for codeset in `echo $codesets | tr "[a-z,\\-]" "[A-Z _]"`; do
906 JP ) AC_DEFINE(ENCODING_JP, 1, Define if you want japanese codesets) ;;
907 JP_EXT ) AC_DEFINE(ENCODING_JP_EXT, 1, Define if you want extended japanese codesets) ;;
908 KR ) AC_DEFINE(ENCODING_KR, 1, Define if you want korean codesets) ;;
909 ZH ) AC_DEFINE(ENCODING_ZH, 1, Define if you want chinese codesets) ;;
910 ZH_EXT ) AC_DEFINE(ENCODING_ZH_EXT, 1, Define if you want extended chinese codesets) ;;
915 if test x$support_perl = xyes; then
916 AC_PATH_PROG(PERL, perl5)
917 AC_PATH_PROG(PERL, perl)
919 AC_MSG_CHECKING(for $PERL suitability)
920 if $PERL -MExtUtils::Embed -e "use v5.8" >/dev/null 2>/dev/null; then
922 save_CXXFLAGS="$CXXFLAGS"
924 CXXFLAGS="$CXXFLAGS `$PERL -MExtUtils::Embed -e ccopts`"
925 LIBS="$LIBS `$PERL -MExtUtils::Embed -e ldopts`"
931 PerlInterpreter *perl = perl_alloc ();
932 ],[rxvt_perl_link=yes],[rxvt_perl_link=no])
933 CXXFLAGS="$save_CXXFLAGS"
936 if test x$rxvt_perl_link = xyes; then
938 AC_DEFINE(ENABLE_PERL, 1, Define if you can embed a perl interpreter)
941 PERLFLAGS="`$PERL -MExtUtils::Embed -e ccopts`"
942 PERLLIB="`$PERL -MExtUtils::Embed -e ldopts`"
943 PERLPRIVLIBEXP="`$PERL -MConfig -e 'print $Config{privlibexp}'`"
945 AC_MSG_ERROR([no, unable to link])
948 AC_MSG_ERROR([no working perl found, or perl not version >= 5.8])
953 AC_SUBST(PERLPRIVLIBEXP)
958 if test x$support_perl = xyes; then
968 if test x$rxvt_cv_rpath = xyes -o x$rxvt_cv_R = xyes; then
969 LIBS=`echo $LIBS | sed "$R_TRANSLATE"`
970 X_LIBS=`echo $X_LIBS | sed "$R_TRANSLATE"`
971 X_EXTRA_LIBS=`echo $X_EXTRA_LIBS | sed "$R_TRANSLATE"`
972 XPM_LIBS=`echo $XPM_LIBS | sed "$R_TRANSLATE"`
976 AC_SUBST(X_EXTRA_LIBS)
978 AC_SUBST(LIBAFTERIMAGE_CFLAGS)
979 AC_SUBST(AFTERIMAGE_LIBS)
983 dnl# test for "sun" or "__sun__" before include sys_ioctl
985 dnl# revert HAVE_BLAH_H into a "#include <blah.h>"
986 AC_DEFUN([RXVT_DEFINE_TO_INCLUDE], dnl
987 [if test "$$3" = "$4" -o "$$5" = "$6"; then
990 $1="/* #include <$2> */"
994 RXVT_DEFINE_TO_INCLUDE(include_stdint_h, stdint.h, ac_cv_header_stdint_h, yes, notset, dontmatch)
995 RXVT_DEFINE_TO_INCLUDE(include_stdarg_h, cstdarg, ac_cv_header_stdarg_h, yes, notset, dontmatch)
996 RXVT_DEFINE_TO_INCLUDE(include_stdlib_h, cstdlib, ac_cv_header_stdlib_h, yes, notset, dontmatch)
997 RXVT_DEFINE_TO_INCLUDE(include_unistd_h, unistd.h, ac_cv_header_unistd_h, yes, notset, dontmatch)
998 RXVT_DEFINE_TO_INCLUDE(include_string_h, cstring, ac_cv_header_string_h, yes, notset, dontmatch)
999 RXVT_DEFINE_TO_INCLUDE(include_fcntl_h, fcntl.h, ac_cv_header_fcntl_h, yes, notset, dontmatch)
1000 RXVT_DEFINE_TO_INCLUDE(include_util_h, util.h, ac_cv_header_util_h, yes, notset, dontmatch)
1001 RXVT_DEFINE_TO_INCLUDE(include_assert_h, assert.h, ac_cv_header_assert_h, yes, notset, dontmatch)
1002 RXVT_DEFINE_TO_INCLUDE(include_sys_ioctl_h, sys/ioctl.h, rxvt_cv_header_sysioctl, yes, notset, dontmatch)
1003 RXVT_DEFINE_TO_INCLUDE(include_sys_select_h, sys/select.h, ac_cv_header_sys_select_h, yes, notset, dontmatch)
1004 RXVT_DEFINE_TO_INCLUDE(include_sys_strredir_h, sys/strredir.h, ac_cv_header_sys_strredir_h, yes, notset, dontmatch)
1005 RXVT_DEFINE_TO_INCLUDE(include_sys_time_h, sys/time.h, ac_cv_header_sys_time_h, yes, notset, dontmatch)
1006 RXVT_DEFINE_TO_INCLUDE(include_time_h, time.h, ac_cv_header_sys_time_h, no, ac_cv_header_time, yes)
1008 AC_CONFIG_FILES([Makefile \
1015 echo "Configuration:
1017 Rxvt version: $VERSION : $DATE
1018 Source code location: $srcdir
1019 Install path: ${prefix}/bin
1021 Compiler flags: $CXXFLAGS
1024 if test x$support_xpm = xyes; then
1025 echo " Xpm library: $XPM_LIBS"
1028 if test x$support_afterimage = xyes; then
1029 echo " AfterImage support: yes"
1032 if test x$support_afterstep = xyes; then
1033 echo " AfterStep integration: yes"
1036 if test x$term != x; then
1037 echo " set TERM to: $term"
1039 if test x$terminfo != x; then
1040 echo " set TERMINFO to: $terminfo"
1042 echo " default resource name: $RESNAME"
1043 echo " resource class: $RESCLASS"
1044 if test x$RESFALLBACK != x; then
1045 echo " resource class fallback: $RESFALLBACK"
1048 echo " embedded perl: $support_perl"
1050 if test x$support_xpm = xneedsmanualspecification; then
1051 echo ".----------------------------------------------------------------."
1052 echo ". WARNING: --enable-xpm-background was specified however the ."
1053 echo ". XPM includes files and libraries could not be found. ."
1054 echo ". XPM backgrounds are now being DISABLED! If you want ."
1055 echo ". to use them you should rerun configure with the ."
1056 echo ". appropriate --with-xpm-includes=/path/to/xpm/includes ."
1057 echo ". and --with-xpm-library=/path/to/xpm/library lines. ."
1058 echo ".----------------------------------------------------------------."
1060 if test x$support_xim = xyes -a x$rxvt_cv_func_xlocale = xno; then
1061 echo ".----------------------------------------------------------------."
1062 echo ". WARNING: --enable-xim was specified however the locale support ."
1063 echo ". functions could not be found. ."
1064 echo ". XIM is now being DISABLED! ."
1065 echo ".----------------------------------------------------------------."
1068 echo "*** Optionally check src/feature.h for further, rarely used options ***"