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 [afterimage_config="$withval"])
246 AC_ARG_ENABLE(afterstep,
247 [ --enable-afterstep enable integration with AfterStep window manager],
248 [if test x$enableval = xyes -o x$enableval = xno; then
249 support_afterstep=$enableval
252 AC_ARG_ENABLE(transparency,
253 [ --enable-transparency enable transparent backgrounds],
254 [if test x$enableval = xyes -o x$enableval = xno; then
255 support_inheritpixmap=$enableval
258 AC_ARG_ENABLE(tinting,
259 [ --enable-tinting enable tinting of transparent bg],
260 [if test x$enableval = xyes -o x$enableval = xno; then
261 support_tinting=$enableval
264 AC_ARG_ENABLE(fading,
265 [ --enable-fading enable colors fading when off focus],
266 [if test x$enableval = xyes -o x$enableval = xno; then
267 support_fading=$enableval
270 AC_ARG_ENABLE(rxvt-scroll,
271 [ --enable-rxvt-scroll enable rxvt style scrollbar],
272 [if test x$enableval = xyes -o x$enableval = xno; then
273 support_scroll_rxvt=$enableval
276 AC_ARG_ENABLE(next-scroll,
277 [ --enable-next-scroll enable NeXT style scrollbar],
278 [if test x$enableval = xyes -o x$enableval = xno; then
279 support_scroll_next=$enableval
282 AC_ARG_ENABLE(xterm-scroll,
283 [ --enable-xterm-scroll enable Xterm style scrollbar],
284 [if test x$enableval = xyes -o x$enableval = xno; then
285 support_scroll_xterm=$enableval
289 [ --enable-perl enable embedded perl interpreter],
290 [if test x$enableval = xyes -o x$enableval = xno; then
291 support_perl=$enableval
294 AC_ARG_ENABLE(plain-scroll,
295 [ --enable-plain-scroll enable plain style scrollbar],
296 [if test x$enableval = xyes -o x$enableval = xno; then
297 support_scroll_plain=$enableval
300 AC_ARG_WITH(codesets,
301 [ --with-codesets=NAME,.. compile in additional codesets (jp,jp_ext,kr,zh,zh_ext,all)],
302 [codesets="$withval"])
305 [ --enable-xim XIM (X Input Method) protocol support],
306 [if test x$enableval = xyes -o x$enableval = xno; then
307 support_xim=$enableval
310 AC_ARG_ENABLE(backspace-key,
311 [ --disable-backspace-key disable handling of the backspace key],
312 [if test x$enableval = xno; then
313 AC_DEFINE(NO_BACKSPACE_KEY, 1, Define if you don't want support for the backspace key)
316 AC_ARG_ENABLE(delete-key,
317 [ --disable-delete-key disable handling of the delete key],
318 [if test x$enableval = xno; then
319 AC_DEFINE(NO_DELETE_KEY, 1, Define if you don't want support for the (non-keypad) delete key)
322 AC_ARG_ENABLE(resources,
323 [ --disable-resources disable all resource checking],
324 [if test x$enableval = xno; then
325 AC_DEFINE(NO_RESOURCES, 1, Define if you don't want any resources read)
328 AC_ARG_ENABLE(8bitctrls,
329 [ --enable-8bitctrls enable 8 bit control sequences (not recommended)],
330 [if test x$enableval = xyes -o x$enableval = xno; then
331 support_8bitctrls=$enableval
335 AC_ARG_ENABLE(fallback,
336 [ --enable-fallback(=CLASS) fall back on CLASS resources in addition to URxvt ones (default: Rxvt)],
338 test x$enableval = xyes && enableval=Rxvt
339 test x$enableval = xno && enableval=
340 RESFALLBACK="$enableval"
343 if test x$RESFALLBACK != x; then
344 AC_DEFINE_UNQUOTED(RESFALLBACK, "$RESFALLBACK", [Fallback resource class])
348 AC_ARG_WITH(res-name,
349 [ --with-res-name=NAME use this as default resource name (default: urxvt)],
350 [RESNAME="$withval"])
351 AC_DEFINE_UNQUOTED(RESNAME,"$RESNAME", [Default resource name])
354 AC_ARG_WITH(res-class,
355 [ --with-res-class=CLASS use this as the resource class (default: URxvt)],
356 [RESCLASS="$withval"])
357 AC_DEFINE_UNQUOTED(RESCLASS,"$RESCLASS", [Resource class])
361 [ --with-name=NAME set the basename for the installed binaries (default: urxvt)],
362 [RXVTNAME="$withval"])
363 AC_DEFINE_UNQUOTED(RXVTNAME,"$RXVTNAME", [Binary base name])
365 RXVTNAME=`echo "$RXVTNAME"|sed "$program_transform_name"`
368 AC_ARG_ENABLE(swapscreen,
369 [ --disable-swapscreen disable swap screen support],
370 [if test x$enableval = xno; then
371 AC_DEFINE(NO_SECONDARY_SCREEN, 1, Disable the secondary screen. Many programs use the secondary screen as their workplace)
374 AC_ARG_ENABLE(iso14755,
375 [ --enable-iso14755 enable support for extended ISO 14755 modes],
376 [if test x$enableval = xyes -o x$enableval = xno; then
377 support_iso14755=$enableval
380 AC_ARG_ENABLE(frills,
381 [ --enable-frills enable support for rarely used features],
382 [if test x$enableval = xyes -o x$enableval = xno; then
383 support_frills=$enableval
386 AC_ARG_ENABLE(keepscrolling,
387 [ --enable-keepscrolling enable continual scrolling on scrollbar arrow press],
388 [if test x$enableval = xyes -o x$enableval = xno; then
389 support_keepscrolling=$enableval
392 AC_ARG_ENABLE(selectionscrolling,
393 [ --enable-selectionscrolling enable scrolling during selections],
394 [if test x$enableval = xyes -o x$enableval = xno; then
395 support_selectionscrolling=$enableval
398 AC_ARG_ENABLE(mousewheel,
399 [ --enable-mousewheel enable scrolling via mouse wheel or buttons 4 & 5],
400 [if test x$enableval = xyes -o x$enableval = xno; then
401 support_mousewheel=$enableval
404 AC_ARG_ENABLE(slipwheeling,
405 [ --enable-slipwheeling enable slip wheel scrolling (requires previous)],
406 [if test x$enableval = xyes -o x$enableval = xno; then
407 support_mouseslipwheel=$enableval
410 AC_ARG_ENABLE(smart-resize,
411 [ --enable-smart-resize enable smart growth/shrink behaviour],
412 [if test x$enableval = xyes; then
413 AC_DEFINE(SMART_RESIZE, 1, Define to use "smart" resize behavior)
416 AC_ARG_ENABLE(text-blink,
417 [ --enable-text-blink enable blinking text],
418 [if test x$enableval = xyes -o x$enableval = xno; then
419 support_text_blink=$enableval
422 AC_ARG_ENABLE(pointer-blank,
423 [ --enable-pointer-blank enable pointer blank when typing or inactive pointer],
424 [if test x$enableval = xyes -o x$enableval = xno; then
425 support_pointer_blank=$enableval
429 [ --with-term=NAME set the terminal to NAME (default: rxvt)],
430 [if test x$withval != x; then
431 AC_DEFINE_UNQUOTED(TERMENV, "$withval",Set TERM to the value given by configure) term="$withval"
434 AC_ARG_WITH(terminfo,
435 [ --with-terminfo=PATH set the path to the terminfo tree to PATH],
436 [if test x$withval != x; then
437 AC_DEFINE_UNQUOTED(RXVT_TERMINFO, "$withval", Set TERMINFO value to the value given by configure) terminfo="$withval"
440 dnl# --------------------------------------------------------------------------
442 AC_PATH_PROG(MV, mv, mv)
443 AC_PATH_PROG(CP, cp, cp)
444 AC_PATH_PROG(LN, ln, ln)
445 AC_PATH_PROG(SED, sed, sed)
446 AC_PATH_PROG(ECHO, echo, echo)
447 AC_PATH_PROG(CMP, cmp, cmp)
448 AC_PATH_PROG(TIC, tic)
450 dnl# need a neat way to detect SVR4 or its features
451 dnl# in src/command.c we use these functions:
452 dnl# grantpt(), unlockpt(), ptsname(), which are defined in <sys/ptms.h>
453 dnl# - but are these also defined for other systems?
455 dnl# hack to find if this is SVR4 -- who knows?
456 dnl## AC_MSG_CHECKING(for SVR4)
457 dnl## AC_EGREP_CPP(yes,
458 dnl## [#if defined (SVR4) || defined (_SVR4) || defined (__svr4__)
461 dnl## ], [AC_MSG_RESULT(yes); AC_DEFINE(PERHAPS_SVR4)], AC_MSG_RESULT(perhaps not?))
465 dnl# the only reasonable way to find libXpm is do-it-yourself
466 dnl# only check if we want xpm-background
468 LIBAFTERIMAGE_CFLAGS=
472 if test x$support_afterimage == xyes; then
473 AC_MSG_CHECKING(installed libAfterImage)
474 support_afterimage=no
475 if test "x$afterimage_config" = "x" ; then
476 if afterimage-config --version > /dev/null 2>&1 ; then
477 afterimage_config=afterimage-config
479 if test -x /usr/local/bin/afterimage-config; then
480 afterimage_config=/usr/local/bin/afterimage-config
484 afterimage_config=$afterimage_config/afterimage-config
486 if $afterimage_config --version > /dev/null 2>&1 ; then
487 LIBAFTERIMAGE_CFLAGS=`$afterimage_config --cflags`
488 AFTERIMAGE_LIBS=`$afterimage_config --libs`
489 if test "x$AFTERIMAGE_LIBS" != "x"; then
490 support_afterimage=yes
494 if test "x$support_afterimage" = "xyes"; then
495 AC_MSG_RESULT($AFTERIMAGE_LIBS)
497 AC_MSG_RESULT(afterimage-config not found in $afterimage_config - can't use libAfterImage for images.)
501 if test x$support_afterimage != xyes -a x$support_xpm = xyes ; then
503 if test x$no_xpm = xyes; then
504 support_xpm=needsmanualspecification
508 dnl# --------------------------------------------------------------------------
509 dnl# CHECKING FOR HEADER FILES
510 dnl# --------------------------------------------------------------------------
534 dnl# check to allow both <termios.h> and <sys/ioctl.h>
535 AC_CACHE_CHECK(whether termios.h and sys/ioctl.h may both be included, rxvt_cv_header_sysioctl,
536 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>
537 #include <sys/ioctl.h>
538 #ifdef HAVE_TERMIOS_H
540 #endif]], [[int a = ECHO;]])],[rxvt_cv_header_sysioctl=yes],[rxvt_cv_header_sysioctl=no])])
542 dnl# ELF systems may want to store paths for dynamic libraries.
543 dnl# Lets see if the compiler can accept "-Rpath" or "-Wl,-Rpath"
544 dnl# At least one version of SunOS wants "-R path" but it's not checked yet.
545 if test -n "$GCC"; then
551 R_TRANSLATE='s/-L\([^ ]*\)/-L\1 '$LDARG'-rpath '$LDARG'\1/g'
554 ac_save_CFLAGS=$CFLAGS
556 CFLAGS="$CFLAGS $X_CFLAGS"
557 LIBS=`echo "$LIBS $X_LIBS $X_EXTRA_LIBS -lX11" | sed "$R_TRANSLATE"`
558 AC_CACHE_CHECK([for -rpath dynamic library path recording], rxvt_cv_rpath,
559 [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <X11/Xlib.h>
564 (void) XOpenDisplay("foobar");
565 }]])],[rxvt_cv_rpath=yes],[rxvt_cv_rpath=no],[dnl
566 AC_MSG_WARN(You may need to check the LIBS line)])])
567 if test x$rxvt_cv_rpath != xyes; then
569 R_TRANSLATE='s/-L\([^ ]*\)/-L\1 '$LDARG'-R\1/g'
571 LIBS=`echo "$ac_save_LIBS $X_LIBS $X_EXTRA_LIBS -lX11" | sed "$R_TRANSLATE"`
572 AC_CACHE_CHECK([for -R dynamic library path recording], rxvt_cv_R,
573 [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <X11/Xlib.h>
578 (void) XOpenDisplay("foobar");
579 }]])],[rxvt_cv_R=yes],[rxvt_cv_R=no],[rxvt_cv_R=no])])
580 if test x$rxvt_cv_R != xyes; then
581 LIBS="$ac_save_LIBS $X_LIBS $X_EXTRA_LIBS -lX11"
585 AC_CACHE_CHECK([for XPointer], rxvt_cv_xpointer,
586 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <X11/Xlib.h>]], [[XPointer dummy;]])],[rxvt_cv_xpointer=yes],[rxvt_cv_xpointer=no])])
587 if test x$rxvt_cv_xpointer = xyes; then
588 AC_DEFINE(HAVE_XPOINTER, 1, Define if you have XPointer typedef)
591 CFLAGS=$ac_save_CFLAGS
593 AC_CACHE_CHECK([for XLIB_ILLEGAL_ACCESS], rxvt_xlib_illegal_access,
596 #define XLIB_ILLEGAL_ACCESS
597 #include <X11/Xlib.h>
600 dpy->xdefaults = (char *)0;
602 [rxvt_xlib_illegal_access=yes],[rxvt_xlib_illegal_access=no]
604 if test x$rxvt_xlib_illegal_access = xyes; then
605 AC_DEFINE(XLIB_ILLEGAL_ACCESS, 1, Define ONLY iff Xlib.h supports it)
611 dnl> AC_HEADER_STDC dnl# skip this test, Sun always fails anyhow.
613 dnl# --------------------------------------------------------------------------
614 dnl# CHECKING FOR MISSING TYPEDEFS
615 dnl# --------------------------------------------------------------------------
616 dnl# Missing typedefs and replacements
618 dnl> AC_CHECK_TYPE(umode_t, int)
619 dnl> AC_CHECK_TYPE(off_t, long)
623 AC_CHECK_SIZEOF(short, 2)
624 AC_CHECK_SIZEOF(int, 4)
625 dnl AC_CHECK_SIZEOF(long, 4)
626 AC_CHECK_SIZEOF(long long, 8)
627 AC_CHECK_SIZEOF(int *, 4)
630 AC_DEFUN([RXVT_CHECK_SIZE],
631 [AC_CACHE_CHECK([for $2], $1,
632 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdint.h>]], [[$2 dummy;]])],[$1=yes],[dnl
633 if test "$ac_cv_sizeof_char" -ge $3; then
636 if test "$ac_cv_sizeof_short" -ge $3; then
639 if test "$ac_cv_sizeof_int" -ge $3; then
642 if test "$ac_cv_sizeof_long" -ge $3; then
645 if test "$ac_cv_sizeof_long_long" -ge $3; then
648 $1="$4 $5" # we _must_ have a (possibly wrong) default
654 if test x"$$1" != xyes; then
657 if test x"$4" = x; then
658 $6="/* typedef $5 $2; */"
660 $6="/* typedef $4 $5 $2; */"
665 dnl# Look for types the system may know about anyway.
667 RXVT_CHECK_SIZE(rxvt_cv_int16_t, int16_t, 2, , short, rxvt_int16_typedef)
668 AC_SUBST(rxvt_int16_typedef)
669 RXVT_CHECK_SIZE(rxvt_cv_uint16_t, uint16_t, 2, unsigned, short, rxvt_uint16_typedef)
670 AC_SUBST(rxvt_uint16_typedef)
671 RXVT_CHECK_SIZE(rxvt_cv_int32_t, int32_t, 4, , int, rxvt_int32_typedef)
672 AC_SUBST(rxvt_int32_typedef)
673 RXVT_CHECK_SIZE(rxvt_cv_uint32_t, uint32_t, 4, unsigned, int, rxvt_uint32_typedef)
674 AC_SUBST(rxvt_uint32_typedef)
675 dnl RXVT_CHECK_SIZE(rxvt_cv_int64_t, int64_t, 8, , long long, rxvt_int64_typedef)
676 dnl AC_SUBST(rxvt_int64_typedef)
677 dnl RXVT_CHECK_SIZE(rxvt_cv_uint64_t, uint64_t, 8, unsigned, long long, rxvt_uint64_typedef)
678 dnl AC_SUBST(rxvt_uint64_typedef)
680 dnl# Now look for another we use
682 if test "$ac_cv_sizeof_int_p" -eq 8; then
683 rxvt_intp_define="#define intp_t int64_t"
684 rxvt_u_intp_define="#define u_intp_t u_int64_t"
686 if test "$ac_cv_sizeof_int_p" -eq 4; then
687 rxvt_intp_define="#define intp_t int32_t"
688 rxvt_u_intp_define="#define u_intp_t u_int32_t"
690 if test "$ac_cv_sizeof_int_p" -eq 2; then
691 rxvt_intp_define="#define intp_t int16_t"
692 rxvt_u_intp_define="#define u_intp_t u_int16_t"
694 rxvt_intp_define="#error set intp_t"
695 rxvt_u_intp_define="#error set u_intp_t"
699 AC_SUBST(rxvt_intp_define)
700 AC_SUBST(rxvt_u_intp_define)
702 dnl# --------------------------------------------------------------------------
703 dnl# CHECKING FOR LIBRARY FUNCTIONS
704 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>
749 if ((p = XSetLocaleModifiers("@im=none")) != NULL && *p)
750 exit (XSupportsLocale() ? 0 : 1);
753 rxvt_cv_func_xlocale=yes],[rxvt_cv_func_xlocale=no],[dnl
754 AC_MSG_WARN(Define NO_XLOCALE in config.h manually)])])
755 if test x$rxvt_cv_func_xlocale = xyes; then
756 AC_DEFINE(HAVE_XLOCALE, 1, Define if Xlocale support works)
759 AC_CACHE_CHECK(for working X setlocale, rxvt_cv_func_xsetlocale,
760 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define X_LOCALE 1
761 #include <X11/Xlocale.h>]], [[setlocale(LC_CTYPE, "");]])],[rxvt_cv_func_xsetlocale=yes],[rxvt_cv_func_xsetlocale=no])])
762 if test x$rxvt_cv_func_xsetlocale = xyes; then
763 AC_DEFINE(HAVE_XSETLOCALE, 1, Define if setlocale (defined to Xsetlocale) works)
766 CFLAGS=$ac_save_CFLAGS
768 AC_CACHE_CHECK(for working plain setlocale, rxvt_cv_func_setlocale,
769 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <clocale>]], [[setlocale(LC_CTYPE, "");]])],[rxvt_cv_func_setlocale=yes],[rxvt_cv_func_setlocale=no])])
770 if test x$rxvt_cv_func_setlocale = xyes; then
771 AC_DEFINE(HAVE_SETLOCALE, 1, Define if plain old setlocale works)
774 AC_CACHE_CHECK(for working nl_langinfo, rxvt_cv_func_nl_langinfo,
775 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <langinfo.h>]], [[nl_langinfo(CODESET);]])],[rxvt_cv_func_nl_langinfo=yes],[rxvt_cv_func_nl_langinfo=no])])
776 if test x$rxvt_cv_func_nl_langinfo = xyes; then
777 AC_DEFINE(HAVE_NL_LANGINFO, 1, Define if nl_langinfo(CODESET) works)
782 AC_CACHE_CHECK(for broken XIM callback, rxvt_broken_ximcb,
784 #include <X11/Xlib.h>
786 void im_destroy_cb (XIC unused1, XPointer client_data, XPointer unused3);
790 cb.callback = im_destroy_cb;
792 ],rxvt_broken_ximcb=yes,rxvt_broken_ximcb=no)])
794 if test x$rxvt_broken_ximcb = xyes; then
795 AC_DEFINE(XIMCB_PROTO_BROKEN, 1, Define if your XIMCallback specifies XIC as first type.)
802 dnl# --------------------------------------------------------------------------
803 dnl# now add and remove other stuff
804 dnl# --------------------------------------------------------------------------
805 if test x$support_xft = xyes; then
806 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
807 if test $PKG_CONFIG != no && $PKG_CONFIG --exists xft; then
808 LIBS="$LIBS `$PKG_CONFIG xft --libs`"
809 CPPFLAGS="$CPPFLAGS `$PKG_CONFIG xft --cflags`"
811 AC_PATH_PROG(XFT_CONFIG, xft-config, no)
812 if test $XFT_CONFIG != no; then
813 LIBS="$LIBS `$XFT_CONFIG --libs`"
814 CPPFLAGS="$CPPFLAGS `$XFT_CONFIG --cflags`"
818 AC_CHECK_HEADERS(X11/Xft/Xft.h,,[support_xft=no])
819 AC_CHECK_LIB(Xft,XftDrawString32,,[support_xft=no])
821 if test x$support_xft = xyes; then
822 AC_DEFINE(XFT, 1, Define to enable xft support)
825 if test x$support_styles = xyes; then
826 AC_DEFINE(ENABLE_STYLES, 1, Define if you want bold and italic support)
828 if test x$support_iso14755 = xyes; then
829 AC_DEFINE(ISO_14755, 1, Define if you want ISO 14755 extended support)
831 if test x$support_8bitctrls = xyes; then
832 AC_DEFINE(EIGHT_BIT_CONTROLS, 1, Define if you want 8 bit control sequences)
834 if test x$support_fading = xyes; then
835 AC_DEFINE(OFF_FOCUS_FADING, 1, Define if you want faded colors when focus is lost)
837 if test x$support_tinting = xyes; then
838 AC_DEFINE(TINTING, 1, Define if you want your background to be tinted)
840 if test x$support_inheritpixmap = xyes; then
841 AC_DEFINE(TRANSPARENT, 1, Define if you want your background to use the parent window background)
843 if test x$support_keepscrolling = xno; then
844 AC_DEFINE(NO_SCROLLBAR_BUTTON_CONTINUAL_SCROLLING, 1, Define for continual scrolling when you keep the scrollbar button pressed)
846 if test x$support_selectionscrolling = xyes; then
847 AC_DEFINE(SELECTION_SCROLLING, 1, Define to allow scrolling when the selection moves to the top or bottom of the screen)
849 if test x$support_frills = xyes; then
850 AC_DEFINE(ENABLE_FRILLS, 1, Define if you want handling for rarely used but handy features)
852 if test x$support_mousewheel = xyes; then
853 AC_DEFINE(MOUSE_WHEEL, 1, Define to use wheel events (button4 and button5) to scroll)
855 if test x$support_mouseslipwheel = xyes; then
856 AC_DEFINE(MOUSE_SLIP_WHEELING, 1, Define to have CTRL cause wheel events to accelerate scrolling. Release CTRL to halt scrolling)
858 if test x$support_xim = xyes -o x$multichar_set = xyes; then
859 if test x$rxvt_cv_func_xlocale = xyes; then
860 AC_DEFINE(USE_XIM, 1, Define if you want to have XIM (X Input Method) protocol support - required for multibyte characters input)
863 if test x$support_xpm = xyes -o x$support_afterimage = xyes ; then
864 AC_DEFINE(XPM_BACKGROUND, 1, Define if you want to have sexy-looking background pixmaps. Needs libXpm or libAfterImage)
867 if test x$support_afterimage = xyes; then
868 AC_DEFINE(HAVE_AFTERIMAGE, 1, Define if you want to use libAfterImage for image processing)
871 if test x$support_afterstep = xyes; then
872 AC_DEFINE(AFTERSTEP_INTEGRATION, 1, Define if you want to integrate with AfterStep window manager)
875 if test x$support_scroll_rxvt = xyes; then
876 AC_DEFINE(RXVT_SCROLLBAR, 1, Support Rxvt original style scrollbars)
879 if test x$support_scroll_next = xyes; then
880 AC_DEFINE(NEXT_SCROLLBAR, 1, Support NeXT style scrollbars)
881 scrolltypes="$scrolltypes next"
883 if test x$support_scroll_xterm = xyes; then
884 AC_DEFINE(XTERM_SCROLLBAR, 1, Support Xterm style scrollbars)
885 scrolltypes="$scrolltypes xterm"
887 if test x$support_scroll_plain = xyes; then
888 AC_DEFINE(PLAIN_SCROLLBAR, 1, Support plain style scrollbars)
889 scrolltypes="$scrolltypes plain"
891 if test x$support_pointer_blank = xyes; then
892 AC_DEFINE(POINTER_BLANK, 1, Define if you want hide the pointer while typing)
894 if test x$support_text_blink = xyes; then
895 AC_DEFINE(TEXT_BLINK, 1, Define if you want blinking text support)
897 if test x$support_unicode3 = xyes; then
898 AC_DEFINE(UNICODE_3, 1, Define if you want to represent unicode characters outside plane 0)
900 if test x$support_combining = xyes; then
901 AC_DEFINE(ENABLE_COMBINING, 1, Define if you want to automatically compose combining characters)
903 if test x$codesets = xall; then
904 codesets=jp,jp-ext,kr,zh,zh-ext
906 AC_DEFINE(ENCODING_EU, 1, Define if you want european extended codesets)
907 AC_DEFINE(ENCODING_VN, 1, Define if you want vietnamese codesets)
908 for codeset in `echo $codesets | tr "[a-z,\\-]" "[A-Z _]"`; do
910 JP ) AC_DEFINE(ENCODING_JP, 1, Define if you want japanese codesets) ;;
911 JP_EXT ) AC_DEFINE(ENCODING_JP_EXT, 1, Define if you want extended japanese codesets) ;;
912 KR ) AC_DEFINE(ENCODING_KR, 1, Define if you want korean codesets) ;;
913 ZH ) AC_DEFINE(ENCODING_ZH, 1, Define if you want chinese codesets) ;;
914 ZH_EXT ) AC_DEFINE(ENCODING_ZH_EXT, 1, Define if you want extended chinese codesets) ;;
919 if test x$support_perl = xyes; then
920 AC_PATH_PROG(PERL, perl5)
921 AC_PATH_PROG(PERL, perl)
923 AC_MSG_CHECKING(for $PERL suitability)
924 if $PERL -MExtUtils::Embed -e "use v5.8" >/dev/null 2>/dev/null; then
926 save_CXXFLAGS="$CXXFLAGS"
928 CXXFLAGS="$CXXFLAGS `$PERL -MExtUtils::Embed -e ccopts`"
929 LIBS="$LIBS `$PERL -MExtUtils::Embed -e ldopts`"
935 PerlInterpreter *perl = perl_alloc ();
936 ],[rxvt_perl_link=yes],[rxvt_perl_link=no])
937 CXXFLAGS="$save_CXXFLAGS"
940 if test x$rxvt_perl_link = xyes; then
942 AC_DEFINE(ENABLE_PERL, 1, Define if you can embed a perl interpreter)
945 PERLFLAGS="`$PERL -MExtUtils::Embed -e ccopts`"
946 PERLLIB="`$PERL -MExtUtils::Embed -e ldopts`"
947 PERLPRIVLIBEXP="`$PERL -MConfig -e 'print $Config{privlibexp}'`"
949 AC_MSG_ERROR([no, unable to link])
952 AC_MSG_ERROR([no working perl found, or perl not version >= 5.8])
957 AC_SUBST(PERLPRIVLIBEXP)
962 if test x$support_perl = xyes; then
974 if test x$rxvt_cv_rpath = xyes -o x$rxvt_cv_R = xyes; then
975 DLIB=`echo $DLIB | sed "$R_TRANSLATE"`
976 LIBS=`echo $LIBS | sed "$R_TRANSLATE"`
977 X_LIBS=`echo $X_LIBS | sed "$R_TRANSLATE"`
978 X_EXTRA_LIBS=`echo $X_EXTRA_LIBS | sed "$R_TRANSLATE"`
979 XPM_LIBS=`echo $XPM_LIBS | sed "$R_TRANSLATE"`
984 AC_SUBST(X_EXTRA_LIBS)
986 AC_SUBST(LIBAFTERIMAGE_CFLAGS)
987 AC_SUBST(AFTERIMAGE_LIBS)
991 dnl# test for "sun" or "__sun__" before include sys_ioctl
993 dnl# revert HAVE_BLAH_H into a "#include <blah.h>"
994 AC_DEFUN([RXVT_DEFINE_TO_INCLUDE], dnl
995 [if test "$$3" = "$4" -o "$$5" = "$6"; then
998 $1="/* #include <$2> */"
1002 RXVT_DEFINE_TO_INCLUDE(include_stdint_h, stdint.h, ac_cv_header_stdint_h, yes, notset, dontmatch)
1003 RXVT_DEFINE_TO_INCLUDE(include_stdarg_h, cstdarg, ac_cv_header_stdarg_h, yes, notset, dontmatch)
1004 RXVT_DEFINE_TO_INCLUDE(include_stdlib_h, cstdlib, ac_cv_header_stdlib_h, yes, notset, dontmatch)
1005 RXVT_DEFINE_TO_INCLUDE(include_unistd_h, unistd.h, ac_cv_header_unistd_h, yes, notset, dontmatch)
1006 RXVT_DEFINE_TO_INCLUDE(include_string_h, cstring, ac_cv_header_string_h, yes, notset, dontmatch)
1007 RXVT_DEFINE_TO_INCLUDE(include_fcntl_h, fcntl.h, ac_cv_header_fcntl_h, yes, notset, dontmatch)
1008 RXVT_DEFINE_TO_INCLUDE(include_util_h, util.h, ac_cv_header_util_h, yes, notset, dontmatch)
1009 RXVT_DEFINE_TO_INCLUDE(include_assert_h, assert.h, ac_cv_header_assert_h, yes, notset, dontmatch)
1010 RXVT_DEFINE_TO_INCLUDE(include_sys_ioctl_h, sys/ioctl.h, rxvt_cv_header_sysioctl, yes, notset, dontmatch)
1011 RXVT_DEFINE_TO_INCLUDE(include_sys_select_h, sys/select.h, ac_cv_header_sys_select_h, yes, notset, dontmatch)
1012 RXVT_DEFINE_TO_INCLUDE(include_sys_strredir_h, sys/strredir.h, ac_cv_header_sys_strredir_h, yes, notset, dontmatch)
1013 RXVT_DEFINE_TO_INCLUDE(include_sys_time_h, sys/time.h, ac_cv_header_sys_time_h, yes, notset, dontmatch)
1014 RXVT_DEFINE_TO_INCLUDE(include_time_h, time.h, ac_cv_header_sys_time_h, no, ac_cv_header_time, yes)
1016 AC_CONFIG_FILES([Makefile \
1023 echo "Configuration:
1025 Rxvt version: $VERSION : $DATE
1026 Source code location: $srcdir
1027 Install path: ${prefix}/bin
1029 Compiler flags: $CXXFLAGS
1032 if test x$support_xpm = xyes; then
1033 echo " Xpm library: $XPM_LIBS"
1036 if test x$support_afterimage = xyes; then
1037 echo " AfterImage library: $AFTERIMAGE_LIBS"
1040 if test x$support_afterstep = xyes; then
1041 echo " With AfterStep integration"
1044 if test x$term != x; then
1045 echo " set TERM to: $term"
1047 if test x$terminfo != x; then
1048 echo " set TERMINFO to: $terminfo"
1050 echo " default resource name: $RESNAME"
1051 echo " resource class: $RESCLASS"
1052 if test x$RESFALLBACK != x; then
1053 echo " resource class fallback: $RESFALLBACK"
1056 echo " embedded perl: $support_perl"
1058 if test x$support_xpm = xneedsmanualspecification; then
1059 echo ".----------------------------------------------------------------."
1060 echo ". WARNING: --enable-xpm-background was specified however the ."
1061 echo ". XPM includes files and libraries could not be found. ."
1062 echo ". XPM backgrounds are now being DISABLED! If you want ."
1063 echo ". to use them you should rerun configure with the ."
1064 echo ". appropriate --with-xpm-includes=/path/to/xpm/includes ."
1065 echo ". and --with-xpm-library=/path/to/xpm/library lines. ."
1066 echo ".----------------------------------------------------------------."
1068 if test x$support_xim = xyes -a x$rxvt_cv_func_xlocale = xno; then
1069 echo ".----------------------------------------------------------------."
1070 echo ". WARNING: --enable-xim was specified however the locale support ."
1071 echo ". functions could not be found. ."
1072 echo ". XIM is now being DISABLED! ."
1073 echo ".----------------------------------------------------------------."
1076 echo "*** Optionally check src/feature.h for further, rarely used options ***"