1 dnl Process this file with autoconf to produce a configure script.
6 dnl should be "yes" only within the released distribution
11 dnl date of the released version (please zero pad the day in the last 2 dates)
12 dnl for example: "4 February 2003", "04 Feb 2003", "2003-02-04"
13 dnl date format strings: "%e %B %Y", "%d-%b-%Y", "%Y-%m-%d"
14 RELDATELONG="24 November 2007"
15 RELDATESHORT="24-Nov-2007"
16 RELDATENUM="2007-11-24"
18 # constant variable settings
19 FVWMNAMELONG="F? Virtual Window Manager"
20 FVWMHOMEPAGE="http://fvwm.org/"
21 FVWMFTP="ftp.fvwm.org"
23 FVWMALTFTP="metalab.unc.edu"
24 FVWMALTFTPDIR="/pub/Linux/X11/window-managers/"
25 FVWMLIST="fvwm@fvwm.org"
26 FVWMWORKERSLIST="fvwm-workers@fvwm.org"
27 FVWMWORKERSLISTLONG="fvwm workers list <fvwm-workers@fvwm.org>"
28 MANPAGE_PREAMBLE='.\" WARNING: This file was automatically generated. Edit the .in file instead.'
30 if test ! x"$ISRELEASED" = xyes; then
31 VERSIONINFO=" (from cvs)"
32 RELDATELONG="(not released yet)"
33 RELDATESHORT="(not released yet)"
34 RELDATENUM="(not released yet)"
35 # # migo: unfortunately this nice idea can not work, it is not updated.
36 # # I will think more about this, maybe autoconf-2.50+ has a solution.
37 # if test -d CVS/ -a -f CVS/Entries && \
38 # date +%Y-%m-%d -d 'Wed Sep 4 12:36:50 2002' >/dev/null 2>&1
40 # # this is not the exact date, but better than the current date
41 # for file in CVS/Entries */CVS/Entries; do
42 # changelog_date="`cat $file | grep /ChangeLog/ \
44 # test ! x"$changelog_date" = x && \
45 # date +%Y-%m-%d -d "$changelog_date" >>changelog_dates
47 # changelog_date=`cat changelog_dates | sort -r -u | head -1`
48 # VERSIONINFO=" (from cvs $changelog_date)"
49 # rm -f changelog_dates
54 AH_TEMPLATE([VERSIONINFO],[Additional version information, like date])
55 AC_DEFINE_UNQUOTED(VERSIONINFO, "$VERSIONINFO")
58 AC_SUBST(RELDATESHORT)
60 AC_SUBST(FVWMNAMELONG)
61 AC_SUBST(FVWMHOMEPAGE)
65 AC_SUBST(FVWMALTFTPDIR)
67 AC_SUBST(FVWMWORKERSLIST)
68 AC_SUBST(FVWMWORKERSLISTLONG)
69 AC_SUBST(MANPAGE_PREAMBLE)
71 AM_INIT_AUTOMAKE(fvwm, ${version})
72 AM_CONFIG_HEADER(config.h)
74 # check for programs needed to build html docs
75 AC_CHECK_PROG(SED, sed, sed, "")
79 REQUIRED_PERL_VERSION=5.004
80 AC_SUBST(REQUIRED_PERL_VERSION)
81 if test x"$PERL" = x; then
82 AC_PATH_PROG(PERL, perl)
84 if test ! x"$PERL" = x; then
85 AC_MSG_CHECKING([for perl $REQUIRED_PERL_VERSION or better])
87 if ("$PERL" -e "require $REQUIRED_PERL_VERSION;") 2>/dev/null; then
91 AC_MSG_WARN([$PERL not found or too old])
95 AC_MSG_WARN([perl is not found, it is required for some scripts and modules])
96 AC_MSG_WARN([It is recommended to install perl $REQUIRED_PERL_VERSION or better later])
99 AC_MSG_RESULT([assuming $PERL as perl location])
103 FVWM_MODULESUBDIR=/${PACKAGE}/${VERSION}
104 FVWM_DATASUBDIR=/${PACKAGE}
105 FVWM_DOCSUBDIR=/doc/${PACKAGE}
107 AC_ARG_ENABLE(package-subdirs,
108 AS_HELP_STRING([--disable-package-subdirs],
109 [do not create subdirs for modules and data]),
110 [if test x"$enableval" = xno; then FVWM_MODULESUBDIR=""; FVWM_DATASUBDIR="";
114 FVWM_MODULEDIR='${libexecdir}'"$FVWM_MODULESUBDIR"
115 FVWM_DATADIR='${datadir}'"$FVWM_DATASUBDIR"
116 FVWM_DOCDIR='${datadir}'"$FVWM_DOCSUBDIR"
117 FVWM_PERLLIBDIR='${datadir}'"$FVWM_DATASUBDIR/perllib"
118 FVWM_CONFDIR='${sysconfdir}'dnl used _only_ to search for system.fvwm2rc
120 AC_SUBST(FVWM_MODULEDIR)
121 AC_SUBST(FVWM_DATADIR)
122 AC_SUBST(FVWM_PERLLIBDIR)
123 AC_SUBST(FVWM_CONFDIR)
124 AC_SUBST(FVWM_DOCDIR)
126 AH_TEMPLATE([FVWM_CONFIG],
127 [Name of config filenames in FVWM_USERDIR and FVWM_DATADIR])
128 AC_DEFINE(FVWM_CONFIG, "config")
130 AH_TEMPLATE([FVWM2RC],[Suffix for old (to be deprecated) config filenames])
131 AC_DEFINE(FVWM2RC, ".fvwm2rc")
133 # Various configure-time options
135 AC_ARG_ENABLE(dmalloc,
136 AS_HELP_STRING([--enable-dmalloc],
137 [enable support for the dmalloc debugging library]),
138 [ac_cv_dmalloc="$enableval"],
139 [ac_cv_dmalloc="no"])
141 AC_ARG_ENABLE(efence,
142 AS_HELP_STRING([--enable-efence],
143 [enable support for the efence debugging library]),
144 [ac_cv_efence="$enableval"],
147 smr_SWITCH(command-log, command logging, off, FVWM_COMMAND_LOG,, [Produces a log of all executed commands and their times on stderr.])
148 AH_VERBATIM([_FVWM_COMMAND_LOG],
149 [#ifdef FVWM_COMMAND_LOG
150 # define FVWM_DEBUG_TIME 1
153 smr_SWITCH(debug-msgs, debugging messages, off, FVWM_DEBUG_MSGS,, [if you would like to see lots of debug messages from fvwm, for debugging
154 purposes, uncomment the next line])
155 AH_VERBATIM([_FVWM_DEBUG_MSGS],
156 [#ifdef FVWM_DEBUG_MSGS
157 # define DBUG(x,y) fvwm_msg(DBG,x,y)
159 # define DBUG(x,y) /* no messages */
162 dnl dummy: smr_SWITCH(sm, dummy for test script, on, SESSION)
164 # Need to know where X is, for finding some libraries (e.g. xpm)
167 if test x"$no_x" = x"yes"; then
169 echo "X11 libraries or header files could not be found. Please make"
170 echo "sure the X11 development package is installed on your system."
171 echo "If it is definitely installed, try setting the include and library"
172 echo "paths with the --x-include and --x-libraries options of configure."
173 echo "Fvwm can not be compiled without the X11 development environment."
180 # FIXME: default value should be derived from computed path to X
181 # includes. Actually, this should probably not appear in configure
182 # at all: it is settable at runtime, and only confuses the issue to
183 # have it settable here too.
185 AC_MSG_CHECKING(imagepath)
186 val="/usr/include/X11/bitmaps:/usr/include/X11/pixmaps"
187 AC_ARG_WITH(imagepath,
188 AS_HELP_STRING([--with-imagepath=PATH],
189 [colon-delimited search path for images]),
192 AC_MSG_ERROR([Can not disable image path.])
200 AH_TEMPLATE([FVWM_IMAGEPATH],[Where to search for images.])
201 AC_DEFINE_UNQUOTED(FVWM_IMAGEPATH, "$val")
203 FVWM_IMAGEPATH="$val"
204 AC_SUBST(FVWM_IMAGEPATH)
207 # Minimal checks for programs: enough to enable checking for
208 # optional libraries.
212 # added -Wall for gcc, what about for others?
213 if test "x$GCC" = "xyes"; then
214 CFLAGS="-Wall -Wno-implicit-int $CFLAGS"
217 # Help finding POSIX functions on some systems
221 # catch -Werror and similar options when running configure
222 AC_TRY_COMPILE([#include <stdio.h>],
223 [int i; static j; int *p; char *c;
224 switch (*p = p = *c) { case 0: printf("%Q", c, p); }
226 while (1 || (unsigned int)3 >= 0 || ((int)-1) == ((unsigned int)1));
227 return;], , AC_MSG_ERROR("
228 configure is not able to compile programs with warnings. Please
229 remove all offending options like -Werror from the CFLAGS and
230 CPPFLAGS variables and run configure again."))
232 # check size of some types
233 ac_save_CFLAGS="$CFLAGS"
234 CFLAGS="$CFLAGS $X_CFLAGS"
236 AC_CHECK_SIZEOF(long)
237 AC_CHECK_SIZEOF(Window, , [#include <stdio.h>
239 AC_CHECK_SIZEOF(Pixel, , [#include <stdio.h>
240 #include <X11/Intrinsic.h>])
241 AC_CHECK_SIZEOF(void *)
242 CFLAGS="$ac_save_CFLAGS"
244 if test "$ac_cv_sizeof_void_p" -gt "$ac_cv_sizeof_long"; then
245 echo "The type void * is bigger than long."
248 if test "$ac_cv_sizeof_Window" -gt "$ac_cv_sizeof_long"; then
249 echo "The type Window is bigger than long."
252 if test "$ac_cv_sizeof_Pixel" -gt "$ac_cv_sizeof_long"; then
253 echo "The type Pixel is bigger than long."
256 if test x"$size_check_failed" = x1; then
257 echo "This is not supported by the module interface yet (make_new_vpacket)."
258 echo "Detected type sizes are: int($ac_cv_sizeof_int), long($ac_cv_sizeof_long), void*($ac_cv_sizeof_void_p), Window($ac_cv_sizeof_Window), Pixel($ac_cv_sizeof_Pixel)"
259 echo "Please report details of your system and this message to ${FVWMWORKERSLIST}."
264 # 'unset' is not portable, but setting to null is not enough to avoid using
265 # the cached value! For ancient shells "rm config.cache" is a solution.
267 if unset UNSET 2>/dev/null; then UNSET=unset; fi
270 # ********* multibyte
271 # FreeBSD has libxpg4, check this and use if found.
275 AC_CHECK_LIB(xpg4, setlocale, [LIBS="$LIBS -lxpg4"]);;
281 # unfortunately, we need pkg-config for the detection of certain libs:
282 # - certain version of fontconfig (without fontconfig-config
286 # Building man pages & HTML documentation (from XML source).
287 # extract command names
288 if test ! x"$SED" = x; then
292 /#.*define.*CMD_ENT/bfindcmd
301 /"propertychange"/bfindcmd
302 /"readwritecolors"/bfindcmd
310 ' < fvwm/functable.c`
311 DOC_COMMANDS=`echo $DOC_COMMANDS`
313 DOC_COMMANDS_XML=`for i in $DOC_COMMANDS; do echo ${i}.xml; done`
314 DOC_COMMANDS_XML=`echo $DOC_COMMANDS_XML`
315 # with .xml suffix and path
316 DOC_COMMANDS_XML_PATH=`
317 for i in $DOC_COMMANDS; do
318 echo ../commands/${i}.xml;
321 DOC_COMMANDS_XML_PATH=`echo $DOC_COMMANDS_XML_PATH`
323 DOC_COMMANDS_HTML=`for i in $DOC_COMMANDS; do echo ${i}.html; done`
324 DOC_COMMANDS_HTML=`echo $DOC_COMMANDS_HTML`
325 # extract module names
328 for i in modules/*; do echo "$i"; done |
331 /^modules.Fvwm/bfound
342 DOC_MODULES=`echo $DOC_MODULES`
343 DOC_MODULES_HTML=`for i in $DOC_MODULES; do echo ${i}.html; done`
344 DOC_MODULES_HTML=`echo $DOC_MODULES_HTML`
345 # extract man page section names
346 DOC_SECTIONS=`cat doc/fvwm/sections`
347 DOC_SECTIONS=`echo $DOC_SECTIONS`
348 DOC_SECTIONS_XML=`for i in $DOC_SECTIONS; do echo ${i}.xml; done`
349 DOC_SECTIONS_XML=`echo $DOC_SECTIONS_XML`
350 DOC_SECTIONS_XML_PATH=`for i in $DOC_SECTIONS; do echo ${i}.xml; done`
351 DOC_SECTIONS_XML_PATH=`echo $DOC_SECTIONS_XML`
355 DOC_COMMANDS_XML_PATH=""
361 DOC_SECTIONS_XML_PATH=""
363 AC_SUBST(DOC_COMMANDS)
364 AC_SUBST(DOC_COMMANDS_XML)
365 AC_SUBST(DOC_COMMANDS_XML_PATH)
366 AC_SUBST(DOC_COMMANDS_HTML)
367 AC_SUBST(DOC_MODULES)
368 AC_SUBST(DOC_MODULES_HTML)
369 AC_SUBST(DOC_SECTIONS)
370 AC_SUBST(DOC_SECTIONS_XML)
371 AC_SUBST(DOC_SECTIONS_XML_PATH)
374 AC_CHECK_PROG(XSLTPROC, xsltproc, xsltproc, "")
376 AC_ARG_ENABLE(mandoc,
377 AS_HELP_STRING([--disable-mandoc],
378 [disable generation of man pages]),
379 [ if test x"$enableval" = xyes; then
380 with_mandoc="yes, check"
383 problem_mandoc=": Explicitly disabled"
385 [ with_mandoc="not specified, check" ]
388 if test ! x"$with_mandoc" = xno; then
389 if test x"$XSLTPROC" = x ; then
391 problem_mandoc=": No xsltproc found in PATH"
392 elif test x"$SED" = x ; then
394 problem_mandoc=": No sed found in PATH"
395 elif test x"$HAVE_PERL_FOR_DOCS" = x0 ; then
397 problem_mandoc=": No perl found in PATH"
402 AM_CONDITIONAL([FVWM_BUILD_MANDOC], [test x"$with_mandoc" = xyes])
406 AC_ARG_ENABLE(htmldoc,
407 AS_HELP_STRING([--enable-htmldoc],[disable generation of HTML documentation]),
408 [ if test x"$enableval" = xyes; then
409 with_htmldoc="yes, check"
412 problem_htmldoc=": Explicitly disabled"
414 [ with_htmldoc="no" ]
417 if test ! x"$with_htmldoc" = xno; then
418 if test x"$XSLTPROC" = x ; then
420 problem_htmldoc=": No xsltproc found in PATH"
421 elif test x"$SED" = x ; then
423 problem_htmldoc=": No sed found in PATH"
424 elif test x"$HAVE_PERL_FOR_DOCS" = x0 ; then
426 problem_htmldoc=": No perl found in PATH"
431 AM_CONDITIONAL([FVWM_BUILD_HTMLDOC], [test x"$with_htmldoc" = xyes])
434 # ********* session management
435 # Check the availability of SM; we don't have to add any extra libraries,
436 # since -lSM -lICE are in X_PRE_LIBS when they exist.
437 dnl [old check] AC_CHECK_LIB(SM, SmcOpenConnection, AC_DEFINE(SESSION), ,
438 dnl [old check] [$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
443 AS_HELP_STRING([--disable-sm],[disable session management support]),
444 [ if test x"$enableval" = xyes; then
448 problem_sm=": Explicitly disabled"
450 [ with_sm="not specified, check" ]
453 if test ! x"$with_sm" = xno; then
454 dnl Uncomment the following and comment out AC_CHECK_LIB to get --with-sm-*
455 dnl $UNSET ac_cv_lib_SM_SmcOpenConnection
456 dnl $UNSET ac_cv_header_X11_SM_SMlib_h
457 dnl smr_CHECK_LIB(sm, SM, adds session management support, SmcOpenConnection,
459 dnl [$X_LIBS $X_PRE_LIBS $X_EXTRA_LIBS], $X_CFLAGS)
460 dnl test "$sm_LIBS" && AC_DEFINE(SESSION)
462 $UNSET ac_cv_lib_SM_SmcOpenConnection
463 AH_TEMPLATE([SESSION],[Enables session management functionality.])
464 AC_CHECK_LIB(SM, SmcOpenConnection, with_sm=yes; AC_DEFINE(SESSION),
465 with_sm=no; problem_sm=": Failed to detect libSM",
466 [$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
468 dnl AC_SUBST(sm_LIBS)
469 dnl AC_SUBST(sm_CFLAGS)
472 # Checking for optional libraries
473 # Default is to use them if found; can be disable using --without
474 # These are put up front so that if they are requested, but
475 # configure fails to find them, we fail early.
478 # ********* shape extension
479 dnl smr_SWITCH(shape, shape extensions, on, SHAPE)
481 AS_HELP_STRING([--disable-shape],[disable shaped window support]),
482 [ if test x"$enableval" = xyes; then
483 with_shape="yes, check"
486 problem_shape=": Explicitly disabled"
488 [ with_shape="not specified, check" ]
492 [ Define if you want the Shaped window extensions.
493 Shaped window extensions seem to increase the window managers RSS
494 by about 60 Kbytes. They provide for leaving a title-bar on the window
496 If you don't use shaped window extension, you can either make your
497 shaped windows undecorated, or live with a border and backdrop around
498 all your shaped windows (oclock, xeyes)
500 If you normally use a shaped window (xeyes or oclock), you might as
501 well compile this extension in, since the memory cost is minimal in
502 this case (The shaped window shared libs will be loaded anyway). If you
503 don't normally use a shaped window, you have to decide for yourself.
505 Note: if it is compiled in, run time detection is used to make sure that
506 the currently running X server supports it.])
507 if test ! x"$with_shape" = xno; then
508 $UNSET ac_cv_lib_Xext_XShapeQueryExtension
509 AC_CHECK_LIB(Xext, XShapeQueryExtension,
510 with_shape=yes; AC_DEFINE(SHAPE),
512 problem_shape=": Failed to detect Shape extension",
513 [$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
516 # ********* MIT Shared Memory Extension
518 AS_HELP_STRING([--disable-shm],[disable MIT Shared Memory Extension]),
519 [ if test x"$enableval" = xyes; then
520 with_shm="yes, check"
523 problem_shm=": Explicitly disabled"
525 [ with_shm="not specified, check" ]
528 AH_TEMPLATE([HAVE_XSHM],[Define if MIT Shared Memory extension is used.])
529 if test ! x"$with_shm" = xno; then
530 $UNSET ac_cv_lib_Xext_XShmQueryExtension
531 AC_CHECK_LIB(Xext, XShmQueryExtension,
532 with_shm=yes; AC_DEFINE(HAVE_XSHM),
534 problem_shm=": Can't detect MIT Shared Memory ext.",
535 [$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
541 AC_ARG_ENABLE(xinerama,
542 AS_HELP_STRING([--disable-xinerama],[disable Xinerama multi screen support]),
543 [ if test x"$enableval" = xyes; then
544 with_xinerama="yes, check"
547 problem_xinerama=": Explicitly disabled"
549 [ with_xinerama="not specified, check" ]
552 AH_TEMPLATE([HAVE_XINERAMA],[Define if Xinerama library is used.])
553 AH_TEMPLATE([HAVE_SOLARIS_XINERAMA],
554 [Define if Solaris' Xinerama calls are being used.
555 (Solaris 7 11/99 and later)])
556 AH_TEMPLATE([HAVE_SOLARIS_XINERAMA_H],
557 [Define if Solaris' X11/extensions/xinerama.h header is provided.
558 (Solaris 9 and later)])
559 if test ! x"$with_xinerama" = xno; then
560 $UNSET ac_cv_lib_Xinerama_XineramaIsActive
561 _check_solaris_xinerama=no
562 AC_CHECK_LIB(Xinerama, XineramaIsActive,
563 with_xinerama=yes; Xinerama_LIBS=-lXinerama; AC_DEFINE(HAVE_XINERAMA),
564 _check_solaris_xinerama=yes,
565 [$X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS])
566 if test x"$_check_solaris_xinerama" = xyes; then
567 AC_CHECK_LIB(Xext, XineramaGetState,
568 [ AC_DEFINE(HAVE_XINERAMA) AC_DEFINE(HAVE_SOLARIS_XINERAMA)
569 with_xinerama=yes; Xinerama_LIBS=-lXext
570 my_CPPFLAGS="$CPPFLAGS"; CPPFLAGS="$X_CPPFLAGS $CPPFLAGS"
571 my_hdr="X11/extensions/xinerama.h"
572 AC_CHECK_HEADER($my_hdr, AC_DEFINE(HAVE_SOLARIS_XINERAMA_H)
573 problem_xinerama=" (Using Solaris Xinerama calls)",
574 problem_xinerama=" (Using Solaris 9 prototypes for missing header)")
575 CPPFLAGS="$my_CPPFLAGS"],
576 with_xinerama=no; Xinerama_LIBS=
577 problem_xinerama=": Failed to detect libXinerama",
578 [$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
580 $UNSET _check_solaris_xinerama
582 AC_SUBST(Xinerama_LIBS)
583 AC_SUBST(Xinerama_CFLAGS)
585 # ********* xinerama-emulation
588 [Xinerama emulation on one screen (useful only for developers)], off,
589 USE_XINERAMA_EMULATION,,
590 [Define if Xinerama should be emulated on a single screen.])
591 if test x"$enable_xinerama_emulation" = xyes; then
592 with_xinerama_emulation=yes
594 with_xinerama_emulation=no
599 AC_ARG_ENABLE(xrender,
600 AS_HELP_STRING([--disable-xrender],[disable Xrender alpha-blend rendering]),
601 [ if test x"$enableval" = xyes; then
602 with_xrender="yes, check"
605 problem_xrender=": Explicitly disabled"
607 [ with_xrender="not specified, check" ]
610 AH_TEMPLATE([HAVE_XRENDER],[Define if Xrender library is used.])
611 if test ! x"$with_xrender" = xno; then
612 $UNSET ac_cv_lib_Xrender_XRenderComposite
613 AC_CHECK_LIB(Xrender, XRenderComposite,
614 with_xrender=yes; Xrender_LIBS=-lXrender;
615 AC_DEFINE(HAVE_XRENDER),
616 with_xrender=no; Xrender_LIBS=
617 problem_xrender=": Failed to detect libXrender",
618 [$X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS])
620 AC_SUBST(Xrender_LIBS)
621 AC_SUBST(Xrender_CFLAGS)
624 AH_TEMPLATE([HAVE_XCURSOR],[Define if Xcursor library is used.])
627 AC_ARG_ENABLE(xcursor,
628 AS_HELP_STRING([--disable-xcursor],
629 [disable Xcursor ARGB/animated cursor loading]),
630 [ if test x"$enableval" = xno; then
632 problem_xcursor=": Explicitly disabled"
635 if test ! x"$with_xcursor" = xno; then
637 if test ! x"$with_xrender" = xno; then
638 $UNSET ac_cv_lib_Xrender_XRenderCreateCursor
639 AC_CHECK_LIB(Xrender, XRenderCreateCursor, [
642 problem_xcursor=": Your libXrender version is too old"
644 [$X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS])
646 problem_xcursor=": Need Xrender support"
649 if test x"$with_xcursor" = xyes ; then
650 $UNSET ac_cv_lib_Xcursor_XcursorImageLoadCursor
651 AC_CHECK_LIB(Xcursor, XcursorImageLoadCursor, [
652 AC_DEFINE(HAVE_XCURSOR)
653 Xcursor_LIBS=-lXcursor
657 problem_xcursor=": Failed to detect libXcursor"
660 AC_SUBST(Xcursor_CFLAGS)
661 AC_SUBST(Xcursor_LIBS)
667 AS_HELP_STRING([--disable-xft],[disable Xft anti-aliased font rendering]),
668 [ if test x"$enableval" = xyes; then
669 with_xft="yes, check"
672 problem_xft=": Explicitly disabled"
675 with_xft="not specified, check"
679 AH_TEMPLATE([HAVE_XFT],[Define if Xft library is used.])
680 AH_TEMPLATE([HAVE_XFT2],[Define if Xft 2 library is used.])
681 AH_TEMPLATE([HAVE_XFT_UTF8],[Define if Xft library can handle utf8 encoding])
682 if test ! x"$with_xft" = xno; then
684 # first check for freetype2
687 if test x"$no_ft" = x; then
691 problem_xft=": Can't detect freetype2 >= 6.1.0/2.0.6"
694 # check for fontconfig for Xft 2
696 if test ! x"$have_freetype" = xno ; then
698 if test x"$no_fc" = x ; then
702 problem_xft=": Can't detect fontconfig >= 1.0.1"
706 # now check for Xft 2
708 if test ! x"$have_fontconfig" = xno ; then
711 if test x"$no_xft" = x; then
713 problem_xft=" (version 2)"
716 AC_DEFINE(HAVE_XFT_UTF8)
718 Xft_CFLAGS=$XFT_CFLAGS
720 problem_xft=": Can't detect Xft2, detected fontconfig"
724 # if Xft2 not detected check for Xft1
725 if test ! x"$have_freetype" = xno && test ! x"$with_xft" = xyes; then
727 $UNSET ac_cv_lib_XftConfigSubstitute
728 $UNSET ac_cv_lib_Xft_XftFontOpen
729 $UNSET ac_cv_lib_Xft_XftDrawStringUtf8
730 AC_CHECK_LIB(Xft, XftFontOpen,
731 with_xft=yes, with_xft=no,
732 [$X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS $FT2_LIBS $Xrender_LIBS])
733 if test x"$with_xft" = xyes ; then
734 AC_CHECK_LIB(Xft, XftConfigSubstitute, is_xft1=yes, is_xft1=no,
735 [$X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS $FT2_LIBS $Xrender_LIBS])
736 if test x"$is_xft1" = xyes; then
737 Xft_LIBS="-lXft $FT2_LIBS"
738 Xft_CFLAGS="$Xft_CFLAGS $FT2_CFLAGS"
739 problem_xft=" (version 1)"
743 problem_xft=": Can't detect Xft 1 or fontconfig"
746 problem_xft=": Can't detect Xft 1 or 2 and fontconfig"
748 if test x"$with_xft" = xyes; then
749 AC_CHECK_LIB(Xft, XftDrawStringUtf8,
750 AC_DEFINE(HAVE_XFT_UTF8),,
751 [$X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS $FT2_LIBS $Xrender_LIBS])
760 problem_xpm=": Xpm library or header not found"
762 $UNSET ac_cv_header_X11_xpm_h
763 $UNSET ac_cv_lib_Xpm_XpmReadFileToXpmImage
764 smr_CHECK_LIB(xpm, Xpm, for coloured or shaped icons,
765 XpmReadFileToXpmImage, X11/xpm.h,
766 [$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS], $X_CFLAGS)
768 if test ! x"$xpm_LIBS" = x; then
769 # Check for proper version of Xpm -- from XEmacs 21.x configure.in
770 AC_MSG_CHECKING([for Xpm 3.4g or better])
771 my_CPPFLAGS="$CPPFLAGS"
773 CPPFLAGS="$CPPFLAGS $xpm_CFLAGS $X_CFLAGS"
774 LIBS="$LIBS $xpm_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
775 AC_TRY_RUN([#include <X11/xpm.h>
776 int main(int c, char **v) {
778 XpmIncludeVersion != XpmLibraryVersion() ? 1 :
779 XpmIncludeVersion < 30407 ? 2 : 0 ;}],
780 [./conftest dummy_arg; xpm_status=$?;
781 if test x"$xpm_status" = x0; then
786 if test x"$xpm_status" = x1; then
787 problem_xpm=": Xpm library and header versions don't match"
788 elif test x"$xpm_status" = x2x; then
789 problem_xpm=": Xpm library version is too old"
791 problem_xpm=": Internal xpm detection logic error"
794 [with_xpm=no; problem_xpm=": Xpm test error, see config.log"])
795 AC_MSG_RESULT($with_xpm)
796 CPPFLAGS="$my_CPPFLAGS"
799 AH_TEMPLATE([XPM],[Define if Xpm library is used.])
800 if test x"$with_xpm" = xyes; then
802 # FVWMBANNER=FvwmBanner AC_SUBST(FVWMBANNER)
803 # XPMROOT=xpmroot AC_SUBST(XPMROOT)
804 # FVWMSCRIPT=FvwmScript AC_SUBST(FVWMSCRIPT)
814 problem_png=": png library or header not found"
816 $UNSET ac_cv_header_png_h
817 $UNSET ac_cv_lib_png_png_read_info
818 smr_CHECK_LIB(png, png, for coloured or shaped icons,
819 png_read_info, png.h, -lz -lm,)
821 if test ! x"$png_LIBS" = x; then
822 # Check for proper version of png
823 AC_MSG_CHECKING([for libpng 1.0.4a or better])
824 my_CPPFLAGS="$CPPFLAGS"
826 CPPFLAGS="$CPPFLAGS $png_CFLAGS"
827 LIBS="$LIBS $png_LIBS -lz -lm"
828 AC_TRY_RUN([#include <png.h>
829 int main(int c, char **v) {
830 return c == 1 ? 0 : (PNG_LIBPNG_VER < 10005) ? 2 : 0 ;}],
831 [./conftest dummy_arg; png_status=$?;
832 if test x"$png_status" = x0; then
836 if test x"$png_status" = x2; then
837 problem_png=": png library version is too old"
839 problem_png=": Internal png detection logic error"
842 [with_png="no"; problem_png=": png test error, see config.log"])
843 AC_MSG_RESULT($with_png)
844 CPPFLAGS="$my_CPPFLAGS"
848 AH_TEMPLATE([HAVE_PNG],[Define if ppm library is used.])
849 if test x"$with_png" = xyes; then
851 png_LIBS="$png_LIBS -lz"
859 # ** needed by the png support
863 rsvg_min_version=2.13.92
864 AH_TEMPLATE([HAVE_RSVG], [Define if librsvg library is used.])
867 AS_HELP_STRING([--disable-rsvg],
868 [disable scalable vector graphics (SVG images)]),
869 [ if test x"$enableval" = xno; then
871 problem_rsvg=": Explicitly disabled"
874 if test ! x"$with_rsvg" = xno; then
876 if test ! x"$PKG_CONFIG" = xno ; then
877 AC_MSG_CHECKING(for librsvg - version >= $rsvg_min_version)
878 if $PKG_CONFIG --exists librsvg-2.0 ; then
879 if $PKG_CONFIG --exists "librsvg-2.0 >= $rsvg_min_version" ; then
882 AC_MSG_CHECKING(for cairo svg backend)
883 if $PKG_CONFIG --exists cairo-svg ; then
884 svg_packages="librsvg-2.0 cairo-svg"
885 elif $PKG_CONFIG --exists libsvg-cairo ; then
886 svg_packages="librsvg-2.0 libsvg-cairo"
887 elif $PKG_CONFIG --exists cairo ; then
888 svg_packages="librsvg-2.0 cairo"
892 if test ! x"$svg_packages" = x ; then
894 rsvg_CFLAGS=`$PKG_CONFIG --cflags $svg_packages`
895 rsvg_LIBS=`$PKG_CONFIG --libs $svg_packages`
899 AC_MSG_WARN([*** cairo was not found in the pkg-config search])
900 AC_MSG_WARN([*** path. Add the directory containing cairo.pc])
901 AC_MSG_WARN([*** to the PKG_CONFIG_PATH environment variable.])
902 problem_rsvg=": Cannot detect cairo backend"
906 AC_MSG_WARN([*** Your librsvg version is < $rsvg_min_version])
907 problem_rsvg=": Your librsvg version is too old"
911 AC_MSG_WARN([*** librsvg-2.0 was not found in the pkg-config search])
912 AC_MSG_WARN([*** path. Either librsvg is not installed or you need])
913 AC_MSG_WARN([*** to add the directory containing librsvg-2.0.pc to])
914 AC_MSG_WARN([*** the PKG_CONFIG_PATH environment variable.])
915 problem_rsvg=": librsvg library or header not found"
918 problem_rsvg=": pkg-config not found"
921 if test x"$with_rsvg" = xyes ; then
922 AC_MSG_CHECKING(whether a librsvg program compiles and runs)
923 original_CFLAGS="$CFLAGS"
924 original_LIBS="$LIBS"
925 CFLAGS="$CFLAGS $rsvg_CFLAGS"
926 LIBS="$LIBS $rsvg_LIBS"
928 #include <librsvg/rsvg.h>
929 #include <librsvg/rsvg-cairo.h>
933 if(!(rsvg = rsvg_handle_new())) return 1;
934 g_object_unref(G_OBJECT(rsvg));
941 AC_MSG_WARN([*** The librsvg test program failed to run. If your system])
942 AC_MSG_WARN([*** has shared libraries outside the normal system library])
943 AC_MSG_WARN([*** path, you need to make sure that the LD_LIBRARY_PATH])
944 AC_MSG_WARN([*** (or the like) environment variable is correctly set.])
946 problem_rsvg=": Failed to run test program"
947 ], [echo $ac_n "cross compiling; assumed OK... $ac_c"])
948 CFLAGS="$original_CFLAGS"
949 LIBS="$original_LIBS"
951 if test x"$with_rsvg" = xyes ; then
958 AC_SUBST(rsvg_CFLAGS)
962 $UNSET ac_cv_header_rplay_h
963 $UNSET ac_cv_lib_rplay_rplay_create
964 # Add in X_EXTRA_LIBS here to get things like connect().
965 smr_CHECK_LIB(rplay, , adds audio capability, rplay_create, rplay.h,
967 AH_TEMPLATE([HAVE_RPLAY],[Define if rplay library is used.])
968 test ! x"$rplay_LIBS" = x && AC_DEFINE(HAVE_RPLAY)
970 AC_SUBST(rplay_CFLAGS)
974 $UNSET ac_cv_header_stroke_h
975 $UNSET ac_cv_lib_stroke_stroke_init
976 dnl Add in X_LIBS for MOUSE_DROPPINGS?
977 dnl As of 23/Mar/2000 the only libstroke RPM has /usr/X11R6/include/stroke.h
978 AH_TEMPLATE([HAVE_STROKE],[Define if stroke library is used.])
979 smr_CHECK_LIB(stroke, , mouse strokes recognition,
980 stroke_init, stroke.h,
981 [$X_LIBS -lX11], $X_CFLAGS -I/usr/X11R6/include)
982 test ! x"$stroke_LIBS" = x &&
983 AC_DEFINE(HAVE_STROKE)
984 AH_VERBATIM([_HAVE_STROKE],
986 # define STROKE_ARG(x) x,
987 # define STROKE_CODE(x) x
989 # define STROKE_ARG(x)
990 # define STROKE_CODE(x)
992 AC_SUBST(stroke_LIBS)
993 AC_SUBST(stroke_CFLAGS)
998 problem_readline=": Both termcap and ncurses disabled"
1000 smr_ARG_WITHLIB(termcap, , to accomplish readline)
1001 AH_TEMPLATE([HAVE_READLINE],[Define if readline is available.])
1002 if test ! x"$with_termcap" = xno; then
1003 # Forget cached values, so user can re-run configure
1004 $UNSET ac_cv_header_readline_history_h
1005 $UNSET ac_cv_lib_readline_readline
1006 AC_MSG_CHECKING([with termcap])
1007 smr_CHECK_LIB(readline, , line editing/history, readline, readline/history.h,
1009 if test ! x"$readline_LIBS" = x; then
1011 readline_LIBS="$readline_LIBS $termcap_LIBS"
1012 AC_DEFINE(HAVE_READLINE)
1015 smr_ARG_WITHLIB(ncurses, , to accomplish readline)
1016 if test ! x"$with_ncurses" = xno && test x"$readline_LIBS" = x; then
1017 # We couldn't use readline with termcap; try with ncurses?
1018 # Doesn't this seem a hacky way to do this??
1019 # unset cached values from last check...
1020 $UNSET ac_cv_header_readline_history_h
1021 $UNSET ac_cv_lib_readline_readline
1022 AC_MSG_CHECKING([with ncurses])
1023 dnl We can not call smr_CHECK_LIB twice here without having the usage twice.
1025 dnl AC_CHECK_LIB(readline, readline, , , $ncurses_LIBS)
1027 dnl if test x"$ac_cv_lib_readline_readline" = xyes; then
1028 dnl AC_CHECK_HEADERS(readline/history.h)
1029 dnl if test x"$ac_cv_header_readline_history_h" = xyes; then
1030 dnl with_readline=yes
1031 dnl readline_LIBS="$readline_LIBS $ncurses_LIBS"
1032 dnl AC_DEFINE(HAVE_READLINE)
1035 smr_CHECK_LIB(readline, , line editing/history, readline, readline/history.h,
1037 if test ! x"$readline_LIBS" = x; then
1039 readline_LIBS="$readline_LIBS $ncurses_LIBS"
1040 AC_DEFINE(HAVE_READLINE)
1043 dnl We need to check if we have GNU readline or BSD editline
1044 AH_TEMPLATE([HAVE_GNU_READLINE],[Define if readline has full GNU interface])
1045 if test x"$with_readline" = xyes; then
1046 AC_CHECK_LIB(readline, append_history, AC_DEFINE(HAVE_GNU_READLINE), [], $readline_LIBS)
1048 AC_SUBST(readline_LIBS)
1049 AC_SUBST(readline_CFLAGS)
1052 # Check if Xsetlocale() is available or not.
1053 AH_TEMPLATE([X_LOCALE],[Enables to use setlocale() provided by X])
1054 AC_CHECK_LIB(X11, _Xsetlocale, AC_DEFINE(X_LOCALE),, $X_LIBS -lX11)
1056 # Check if Xsetlocale() is available or not.
1057 AH_TEMPLATE([HAVE_XOUTPUT_METHOD],[Enable X output method])
1058 AC_CHECK_LIB(X11, XOpenOM, AC_DEFINE(HAVE_XOUTPUT_METHOD),, $X_LIBS -lX11)
1065 problem_iconv=": Explicitly disabled"
1067 AC_ARG_ENABLE(iconv,
1068 AS_HELP_STRING([--disable-iconv],
1069 [disable support for iconv character conversion]),
1070 [ac_cv_iconv="$enableval"],
1071 [ac_cv_iconv="yes"])
1073 AH_TEMPLATE([USE_LIBICONV],
1074 [define if we use libiconv (not needed in general: for example iconv is
1075 native with recent glibc)])
1076 AH_TEMPLATE([HAVE_ICONV],
1077 [Define if iconv (in the libc) or libiconv is available])
1078 if test ! x"$ac_cv_iconv" = xno; then
1079 # * first check for gnu libiconv
1080 $UNSET ac_cv_header_libiconv_h
1081 $UNSET ac_cv_lib_libiconv_libiconv_open
1083 iconv, , if not found sys iconv is used, libiconv_open, iconv.h)
1084 if test ! x"$iconv_LIBS" = x; then
1085 AC_DEFINE(USE_LIBICONV)
1088 AC_SUBST(iconv_LIBS)
1089 AC_SUBST(iconv_CFLAGS)
1091 # * check for system iconv
1093 AC_CHECK_FUNC(iconv_open, with_sys_iconv=yes)
1095 if test x"$with_lib_iconv" = xyes && test x"$with_sys_iconv" = xyes; then
1096 AC_MSG_WARN([*** Both system iconv and libiconv found: use libiconv])
1097 AC_MSG_WARN([*** Use --with-iconv-library=no to use the system iconv])
1100 # * libiconv found check for libcharset to get the good iconv charset
1101 if test x"$with_lib_iconv" = xyes; then
1105 test x"$with_lib_iconv" = xyes -o x"$with_sys_iconv" = xyes &&
1106 with_iconv=yes && problem_iconv=""
1107 test x"$with_lib_iconv" = xyes && with_iconv_type="yes (libiconv)"
1108 test x"$with_sys_iconv" = xyes && with_iconv_type="yes (from C library)"
1110 if test x"$with_iconv" = xno; then
1112 AC_MSG_WARN([*** No iconv() implementation found in C library or libiconv])
1113 AC_MSG_WARN([*** Please install libiconv ftp://ftp.gnu.org/pub/gnu/libiconv/])
1117 if test x"$with_iconv" = xyes; then
1118 AC_DEFINE(HAVE_ICONV)
1122 AH_VERBATIM([_HAVE_LIBCHARSET],
1123 [#ifdef USE_LIBICONV
1124 /* define to use locale_charset in the place of nl_langinfog if libiconv
1126 #undef HAVE_LIBCHARSET
1130 # ******** nl_langinfo and CODESET
1131 AH_TEMPLATE([HAVE_CODESET],[Have nl_langinfo (CODESET)])
1132 AC_MSG_CHECKING([for nl_langinfo (CODESET)])
1133 AC_TRY_COMPILE([#include <langinfo.h>
1134 #include <locale.h>],
1135 [char *codeset = nl_langinfo(CODESET); setlocale(LC_CTYPE, "");],
1136 AC_DEFINE(HAVE_CODESET)
1139 AC_MSG_RESULT($have_codeset)
1144 AS_HELP_STRING([--disable-bidi],[disable bi-directional text support]),
1145 [ if test x"$enableval" = xyes; then
1146 with_bidi="yes, check"
1149 problem_bidi=": Explicitly disabled"
1151 [ with_bidi="not specified, check" ]
1154 if test ! x"$with_bidi" = xno; then
1155 AC_ARG_WITH(fribidi-bindir,
1156 AS_HELP_STRING([--with-fribidi-bindir=DIR],
1157 [directory of fribidi-config if not in PATH]),
1158 FRIBIDI_BINDIR="$withval", FRIBIDI_BINDIR=".")
1159 AC_PATH_PROG(FRIBIDI_CONFIG, fribidi-config,, [$FRIBIDI_BINDIR:$PATH])
1161 if test x"$FRIBIDI_CONFIG" = x; then
1163 problem_bidi=": No fribidi-config found in PATH"
1165 Bidi_CFLAGS=`$FRIBIDI_CONFIG --cflags`
1166 Bidi_LIBS=`$FRIBIDI_CONFIG --libs`
1167 AC_CHECK_LIB(fribidi, fribidi_log2vis,
1168 with_bidi=yes; problem_bidi=,
1169 with_bidi=no; problem_bidi=": No good libs via fribidi-config",
1170 [$Bidi_LIBS $Bidi_CFLAGS])
1174 if test ! x"$with_bidi" = xno; then
1176 ac_save_LIBS="$LIBS"
1177 LIBS="$LIBS $Bidi_LIBS"
1178 AC_TRY_RUN([#include <stdlib.h>
1179 #include <fribidi/fribidi.h>
1182 FriBidiChar *logical_unicode_str =
1183 (FriBidiChar *)malloc((4 + 1) * sizeof(FriBidiChar));
1184 fribidi_charset_to_unicode(
1185 fribidi_parse_charset("iso8859-8"), "test", 4,
1186 logical_unicode_str);
1189 ], [:], [fribidi_in_path=no])
1190 LIBS="$ac_save_LIBS"
1191 if test ! x"$fribidi_in_path" = xyes; then
1192 ac_save_CFLAGS="$CFLAGS"
1193 ac_save_LIBS="$LIBS"
1194 CFLAGS="$CFLAGS $Bidi_CFLAGS"
1195 LIBS="$LIBS $Bidi_LIBS"
1196 AC_TRY_RUN([#include <stdlib.h>
1197 #include <fribidi/fribidi.h>
1200 FriBidiChar *logical_unicode_str =
1201 (FriBidiChar *)malloc((4 + 1) * sizeof(FriBidiChar));
1202 fribidi_charset_to_unicode(
1203 fribidi_parse_charset("iso8859-8"), "test", 4,
1204 logical_unicode_str);
1207 ], [:], [with_bidi=no; problem_bidi=": Bad fribidi version, see config.log"])
1208 CFLAGS="$ac_save_CFLAGS"
1209 LIBS="$ac_save_LIBS"
1211 if test ! x"$fribidi_in_path" = xno; then
1217 AH_TEMPLATE([HAVE_BIDI],[Define if fribidi library is used.])
1218 AH_TEMPLATE([FRIBIDI_CHARSET_SPELLING],
1219 [Support fribidi-0.10.4 and older with "CHARSET" spelling.])
1220 if test x"$with_bidi" = xno; then
1224 AC_DEFINE(HAVE_BIDI)
1225 AC_TRY_RUN([#include <fribidi/fribidi.h>
1226 int main(int c, char **v) {
1227 return FRIBIDI_CHARSET_NOT_FOUND * 0;
1229 ], [AC_DEFINE(FRIBIDI_CHARSET_SPELLING)])
1231 AH_VERBATIM([_FRIBIDI_CHARSET_SPELLING],
1232 [#ifdef FRIBIDI_CHARSET_SPELLING
1233 # define FRIBIDI_CHAR_SET_NOT_FOUND FRIBIDI_CHARSET_NOT_FOUND
1237 AC_SUBST(Bidi_CFLAGS)
1243 FVWM_PERLLIB=perllib
1244 AC_ARG_ENABLE(perllib,
1245 AS_HELP_STRING([--disable-perllib],[disable installing fvwm perl library]),
1246 [ if test x"$enableval" = xno; then
1248 problem_perllib=": Explicitly disabled"
1252 AC_SUBST(FVWM_PERLLIB)
1255 ALL_LINGUAS="ar de fr sv_SE zh_CN"
1257 FVWMTASKBAR_DOMAIN="FvwmTaskBar"
1258 FVWMSCRIPT_DOMAIN="FvwmScript"
1259 ALL_DOMAINS="$FVWM_DOMAIN $FVWMTASKBAR_DOMAIN $FVWMSCRIPT_DOMAIN"
1261 AC_SUBST(ALL_LINGUAS)
1262 AC_SUBST(FVWM_DOMAIN)
1263 AC_SUBST(FVWMTASKBAR_DOMAIN)
1264 AC_SUBST(FVWMSCRIPT_DOMAIN)
1265 AC_SUBST(ALL_DOMAINS)
1267 LOCALEDIR='${datadir}'"/locale"
1272 AS_HELP_STRING([--disable-nls],[do not use Native Language Support]),
1273 [ if test x"$enableval" = xno; then
1275 problem_gettext=": Explicitly disabled"
1279 AH_TEMPLATE([HAVE_NLS],
1280 [Define to 1 if translation of program messages to the user's native
1281 language is requested.])
1282 if test ! x"$with_gettext" = xno; then
1284 if test x"$USE_NLS" = "xyes"; then
1285 AC_DEFINE(HAVE_NLS, 1)
1288 problem_gettext=": Failed to detected GNU gettext"
1296 AC_SUBST(intl_CFLAGS)
1300 AC_SUBST(MKINSTALLDIRS)
1301 # programs for devel
1308 AC_SUBST(INST_LINGUAS)
1312 AC_SUBST(UPDATEPOFILES)
1313 AC_SUBST(DUMMYPOFILES)
1316 # Check for REQUIRED headers and functions before going any
1319 # The module interface uses variadic functions for message passing.
1320 AC_CHECK_HEADERS(stdarg.h)
1321 AC_CHECK_FUNCS(vfprintf)
1322 if test x$ac_cv_header_stdarg_h = xno -o \
1323 $ac_cv_func_vfprintf = no; then
1324 AC_MSG_ERROR([stdarg.h and vfprintf required])
1327 # For reaping children, fvwm needs either waitpid() or wait3()
1328 # Some extra modules may need wait4() too
1329 AC_CHECK_FUNCS(waitpid)
1330 if test x$ac_cv_func_waitpid = xno; then
1331 AC_CHECK_FUNCS(wait3 wait4)
1332 if test x$ac_cv_func_wait3 = xno; then
1333 AC_MSG_ERROR([Either waitpid or wait3 function is required])
1337 # C89/C99 signal handling
1338 AC_CHECK_FUNCS(sigsetjmp siglongjmp)
1340 # Look harder for a C preprocessor for FvwmCpp
1341 AC_PATH_PROG(FVWM_CPP, cpp, no, $PATH:/lib:/usr/lib:/usr/ccs/lib)
1342 if test x"$FVWM_CPP" = xno; then
1344 AC_MSG_WARN([cannot locate a C preprocessor: run FvwmCpp with -cppprog])
1346 dnl FIXME: make sure the cpp we found actually works...
1348 # Finish checking for programs.
1353 dnl lex+yacc now only needed for FvwmScript developers when syntax is changed
1357 # Checks for header files.
1360 AC_CHECK_HEADERS(stdlib.h fcntl.h limits.h malloc.h string.h memory.h unistd.h)
1361 AC_CHECK_HEADERS(getopt.h sys/select.h sys/systeminfo.h sys/time.h)
1363 # Checks for typedefs, structures, and compiler characteristics.
1373 # Checks for library functions.
1377 AC_CHECK_FUNCS(gettimeofday mkfifo putenv setvbuf socket waitpid)
1378 AC_CHECK_FUNCS(strdup strstr strtol memmove memcpy strchr sysconf uname div)
1379 AC_CHECK_FUNCS(sigaction siginterrupt getpwuid)
1380 AC_CHECK_FUNCS(setpgrp setpgid)
1381 AC_CHECK_FUNCS(lstat)
1385 pds_CHECK_TYPE(sig_atomic_t, int, [#include <signal.h>], [Specify a type for sig_atomic_t if it's not available.])
1387 if test x$ac_cv_func_setvbuf = xyes; then
1388 AC_FUNC_SETVBUF_REVERSED
1392 if test ! x"$ac_cv_func_select" = xyes; then
1393 AC_MSG_ERROR([select required])
1396 # Check for standard functions that we have replacements for.
1397 AC_REPLACE_FUNCS(gethostname strcasecmp strncasecmp strdup strerror usleep atexit)
1398 dnl dv: this is harmful with autoconf 2.53 and is done automatically anyway
1399 dnl AC_SUBST(LIBOBJS)
1401 # check for mkstemp, see the discution on this subject on the fvwm workers
1402 # list (2001-02-16 and 2001-02-24)
1403 AM_SAFETY_CHECK_MKSTEMP
1405 # If we do not have atexit(), then check for on_exit()
1406 if test x$ac_cv_func_atexit = xno; then
1407 AC_CHECK_FUNCS(on_exit)
1410 # Check for unsetenv function
1411 AC_CHECK_FUNCS(unsetenv)
1414 # ********* GTK, IMLIB, GNOME
1415 # Check the availability of gtk
1419 AS_HELP_STRING([--disable-gtk],[do not build modules using gtk library]),
1420 enable_gtktest="$enableval", enable_gtktest=yes)
1421 if test x"$enable_gtktest" = xyes; then
1423 FVWMGTK="FvwmGtk$EXEEXT" AC_SUBST(FVWMGTK)
1424 MANFVWMGTK=FvwmGtk.1 AC_SUBST(MANFVWMGTK)
1426 if test x"$no_gtk" = x; then
1431 problem_gtk=": Failed to detect GTK, see config.log"
1435 problem_gtk=": Explicitly disabled"
1438 AC_SUBST(MANFVWMGTK)
1440 # Check the availability of gdk-imlib
1441 AH_TEMPLATE([GDK_IMLIB],[Define if gdk-imlib is used])
1442 AM_PATH_GDK_IMLIB(1.8.0, AC_DEFINE(GDK_IMLIB))
1443 if test x"$no_imlib" = x; then
1448 problem_gdkimlib=": Failed on gdk-imlib, see config.log"
1453 # Unfortunately we have 2 gnome supports: WM hints and gnome libs.
1454 # The $with_gnomehints below refers to the first, not GNOME_INIT_HOOK.
1455 if test ! x"$enable_gnome_hints" = xno; then
1457 problem_gnomehints=""
1460 problem_gnomehints=": Explicitly disabled"
1463 # Define some compatibility macros needed for config.h.
1464 mg_DEFINE_IF_NOT([#include <X11/keysym.h>],
1465 [defined XK_Page_Up && defined XK_Page_Down],
1466 [COMPAT_OLD_KEYSYMDEF], [$X_CFLAGS],
1467 [Old AIX systems (3.2.5) don't define some common keysyms.])
1468 AH_VERBATIM([_COMPAT_OLD_KEYSYMDEF],
1469 [#ifdef COMPAT_OLD_KEYSYMDEF
1470 # define XK_Page_Up XK_Prior
1471 # define XK_Page_Down XK_Next
1474 if test x"$with_stroke" = xyes; then
1475 mg_DEFINE_IF_NOT([#include <stroke.h>],
1476 [defined STROKE_MAX_SEQUENCE],
1477 [COMPAT_OLD_LIBSTROKE], [$stroke_CFLAGS],
1478 [Old libstroke <= 0.4 does not use STROKE_ prefix for constants.])
1480 AH_VERBATIM([_COMPAT_OLD_LIBSTROKE],
1481 [#ifdef COMPAT_OLD_LIBSTROKE
1482 /* currently we only use one constant */
1483 # define STROKE_MAX_SEQUENCE MAX_SEQUENCE
1487 # Allow building with dmalloc. Do this last to avoid screwing up any
1488 # other checks above.
1489 case "$ac_cv_dmalloc" in
1490 yes) AC_CHECK_HEADERS(dmalloc.h)
1491 AC_CHECK_LIB(dmalloc, dmalloc_shutdown)
1492 CPPFLAGS="$CPPFLAGS -DDMALLOC_FUNC_CHECK" ;;
1496 # Allow building with efence.
1497 case "$ac_cv_efence" in
1498 yes) AC_CHECK_LIB(efence, malloc) ;;
1501 # some explicit definitions for config.h file
1502 AH_VERBATIM([_ZEND_EXPLICIT_DEFINITIONS],
1505 * The next few defines are options that are only changed from their values
1506 * shown here on systems that _don't_ use the configure script.
1509 /* Enable tests for missing too many XEvents. Usually you want this. */
1510 #define WORRY_ABOUT_MISSED_XEVENTS 1
1512 /* Define if the X11 ConnectionNumber is actually a file descriptor. */
1513 #define HAVE_X11_FD 1
1515 /* Define if fork() has unix semantics. On VMS, no child process is created
1516 until after a successful exec(). */
1517 #define FORK_CREATES_CHILD 1
1519 /* Suffix for executable filenames; NULL if no extension needed. */
1520 #define EXECUTABLE_EXTENSION NULL
1522 /* Define to remove the extension from executable pathnames before calling
1524 #undef REMOVE_EXECUTABLE_EXTENSION
1526 /* Enables the "MiniIcon" Style option to specify a small pixmap which
1527 * can be used as one of the title-bar buttons, shown in window list,
1528 * utilized by modules, etc. Requires PIXMAP_BUTTONS to be defined
1530 /* #undef MINI_ICONS */
1531 /* NOTE: hard coded to 1 */
1533 #define FMiniIconsSupported 1
1535 #define FMiniIconsSupported 0
1538 /* Enables tagged general decoration styles which can be assigned to
1539 * windows using the UseDecor Style option, or dynamically updated
1540 * with ChangeDecor. To create and destroy "decor" definitions, see
1541 * the man page entries for AddToDecor and DestroyDecor. There is a
1542 * slight memory penalty for each additionally defined decor. */
1543 /* #undef USEDECOR */
1544 /* NOTE: hard coded to 1 */
1547 #if RETSIGTYPE != void
1548 #define SIGNAL_RETURN return 0
1550 #define SIGNAL_RETURN return
1553 /* Allow GCC extensions to work, if you have GCC. */
1554 #ifndef __attribute__
1555 /* This feature is available in gcc versions 2.5 and later. */
1556 # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__
1557 # define __attribute__(x)
1559 /* The __-protected variants of `format' and `printf' attributes
1560 * are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */
1561 # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
1562 # define __format__ format
1563 # define __printf__ printf
1568 # include <alloca.h>
1573 # ifndef alloca /* predefined by HP cc +Olibcalls */
1579 #ifdef HAVE_STRING_H
1580 # include <string.h>
1582 #ifdef HAVE_STRINGS_H
1583 # include <strings.h>
1585 #ifdef HAVE_MEMORY_H
1586 # include <memory.h>
1588 #ifdef HAVE_STDLIB_H
1589 # include <stdlib.h>
1591 #ifdef HAVE_MALLOC_H
1592 # include <malloc.h>
1598 # define strchr(_s,_c) index((_s),(_c))
1599 # define strrchr(_s,_c) rindex((_s),(_c))
1603 # define memcpy(_d,_s,_l) bcopy((_s),(_d),(_l))
1605 #ifndef HAVE_MEMMOVE
1606 # define memmove(_d,_s,_l) bcopy((_s),(_d),(_l))
1609 #if HAVE_SYS_TYPES_H
1610 # include <sys/types.h>
1614 # include <unistd.h>
1618 # define min(a,b) (((a)<(b)) ? (a) : (b))
1621 # define max(a,b) (((a)>(b)) ? (a) : (b))
1624 # define abs(a) (((a)>=0)?(a):-(a))
1627 #include "libs/defaults.h"
1630 #include <X11/Xlib.h>
1631 #include "libs/FEvent.h"
1635 #define O_NOFOLLOW 0
1639 #define DO_USE_LSTAT 1
1640 #define fvwm_lstat(x,y) lstat(x,y)
1642 #define DO_USE_LSTAT 0
1643 #define fvwm_lstat(x,y) -1
1648 # mainly for fvwm-config
1651 AC_SUBST(with_gdkimlib)
1652 AC_SUBST(with_gettext)
1653 AC_SUBST(with_gnomelibs)
1654 AC_SUBST(with_iconv)
1655 AC_SUBST(with_perllib)
1658 AC_SUBST(with_readline)
1659 AC_SUBST(with_rplay)
1660 AC_SUBST(with_shape)
1663 AC_SUBST(with_stroke)
1664 AC_SUBST(with_xcursor)
1666 AC_SUBST(with_xinerama)
1667 AC_SUBST(with_xrender)
1670 dnl with autoconf <2.60 this is needed
1671 AC_SUBST(datarootdir)
1674 LOCAL_BUGADDR=${FVWM_BUGADDR-${USER-${LOGNAME-`whoami`}}}
1675 AC_SUBST(LOCAL_BUGADDR)
1685 bin/fvwm-convert-2.2.1
1686 bin/fvwm-convert-2.4.1
1687 bin/fvwm-convert-2.6.1
1688 bin/fvwm-menu-desktop.1
1689 dnl bin/fvwm-menu-directory.1
1690 dnl bin/fvwm-menu-headlines.1
1691 dnl bin/fvwm-menu-xlock.1
1692 dnl bin/fvwm-perllib.1
1694 modules/FvwmAnimate/FvwmAnimate.1
1695 modules/FvwmAuto/FvwmAuto.1
1696 modules/FvwmBacker/FvwmBacker.1
1697 modules/FvwmBanner/FvwmBanner.1
1698 modules/FvwmButtons/FvwmButtons.1
1699 modules/FvwmCommand/FvwmCommand.1
1700 modules/FvwmConsole/FvwmConsole.1
1701 modules/FvwmConsole/FvwmConsoleC.pl.1
1702 modules/FvwmCpp/FvwmCpp.1
1703 dnl modules/FvwmDebug/FvwmDebug.1
1704 dnl modules/FvwmDebug/FvwmGtkDebug.1
1705 dnl modules/FvwmDebug/FvwmOldDebug.1
1706 modules/FvwmDragWell/FvwmDragWell.1
1707 modules/FvwmEvent/FvwmEvent.1
1708 modules/FvwmForm/FvwmForm.1
1709 modules/FvwmGtk/FvwmGtk.1
1710 modules/FvwmIconBox/FvwmIconBox.1
1711 modules/FvwmIconMan/FvwmIconMan.1
1712 modules/FvwmIdent/FvwmIdent.1
1713 modules/FvwmM4/FvwmM4.1
1714 modules/FvwmPager/FvwmPager.1
1715 dnl modules/FvwmPerl/FvwmPerl.1
1716 modules/FvwmProxy/FvwmProxy.1
1717 modules/FvwmRearrange/FvwmRearrange.1
1718 modules/FvwmSave/FvwmSave.1
1719 modules/FvwmSaveDesk/FvwmSaveDesk.1
1720 modules/FvwmScript/FvwmScript.1
1721 modules/FvwmScroll/FvwmScroll.1
1722 modules/FvwmTaskBar/FvwmTaskBar.1
1723 modules/FvwmTheme/FvwmTheme.1
1724 modules/FvwmWharf/FvwmWharf.1
1725 modules/FvwmWinList/FvwmWinList.1
1726 dnl modules/FvwmWindowMenu/FvwmWindowMenu.1
1733 bin/fvwm-menu-directory
1734 bin/fvwm-menu-desktop
1735 bin/fvwm-menu-headlines
1736 bin/fvwm-convert-2.4
1737 bin/fvwm-convert-2.6
1741 perllib/General/Makefile
1742 perllib/FVWM/Makefile
1743 perllib/FVWM/Module/Makefile
1744 perllib/FVWM/Tracker/Makefile
1745 perllib/FVWM/Module.pm
1754 doc/commands/Makefile
1755 doc/docbook-xml/Makefile
1756 doc/docbook-xml/ent/Makefile
1757 doc/docbook-xsl/Makefile
1758 doc/docbook-xsl/common/Makefile
1759 doc/docbook-xsl/manpages/Makefile
1760 doc/docbook-xsl/profiling/Makefile
1761 doc/docbook-xsl/highlighting/Makefile
1762 doc/docbook-xsl/lib/Makefile
1763 doc/docbook-xsl/html/Makefile
1764 doc/modules/Makefile
1765 doc/modules/images/Makefile
1766 doc/modules/images/FvwmTabs/Makefile
1768 doc/images/svg_rendering/Makefile
1771 sample.fvwmrc/Makefile
1773 tests/hints/Makefile
1776 modules/FvwmAnimate/Makefile
1777 modules/FvwmAuto/Makefile
1778 modules/FvwmBacker/Makefile
1779 modules/FvwmBanner/Makefile
1780 modules/FvwmButtons/Makefile
1781 modules/FvwmCommand/Makefile
1782 modules/FvwmCommand/scripts/Makefile
1783 modules/FvwmConsole/Makefile
1784 modules/FvwmConsole/FvwmConsoleC.pl
1785 modules/FvwmCpp/Makefile
1786 modules/FvwmDebug/Makefile
1787 modules/FvwmDebug/FvwmDebug
1788 modules/FvwmDebug/FvwmGtkDebug
1789 modules/FvwmDragWell/Makefile
1790 modules/FvwmEvent/Makefile
1791 modules/FvwmForm/Makefile
1792 modules/FvwmIconBox/Makefile
1793 modules/FvwmIconMan/Makefile
1794 modules/FvwmIdent/Makefile
1795 modules/FvwmM4/Makefile
1796 modules/FvwmPager/Makefile
1797 modules/FvwmPerl/Makefile
1798 modules/FvwmPerl/FvwmPerl
1799 modules/FvwmProxy/Makefile
1800 modules/FvwmRearrange/Makefile
1801 modules/FvwmSave/Makefile
1802 modules/FvwmSaveDesk/Makefile
1803 modules/FvwmScript/Makefile
1804 modules/FvwmScript/Scripts/Makefile
1805 modules/FvwmScript/Widgets/Makefile
1806 modules/FvwmScroll/Makefile
1807 modules/FvwmTabs/Makefile
1808 modules/FvwmTabs/FvwmTabs
1809 modules/FvwmTaskBar/Makefile
1810 modules/FvwmTheme/Makefile
1811 modules/FvwmWharf/Makefile
1812 modules/FvwmWinList/Makefile
1813 modules/FvwmWindowMenu/Makefile
1814 modules/FvwmWindowMenu/FvwmWindowMenu
1815 modules/FvwmGtk/Makefile
1818 # ---------------------------------------------------------------------------
1819 # Original config.status is patched to make generated scripts executable.
1820 sed 's/> $ac_file/> $ac_file; test x"`head -1 $ac_file | cut -c1-2`" = x"#!" \&\& chmod a+rx $ac_file/' <config.status >config.status-t && \
1821 mv config.status-t config.status
1822 chmod +x config.status
1823 # ---------------------------------------------------------------------------
1825 # ---------------------------------------------------------------------------
1826 cat >config.status-t <<EOF
1829 # Original config.status is patched to satisfy processing *.in with 'make -j'.
1830 # This bug seems to be partially fixed in autoconf-2.50 (not in all places).
1834 sed 's/conftest/conftest\${UNIQUE_POSTFIX}/g' <config.status >>config.status-t && \
1835 mv config.status-t config.status
1836 chmod +x config.status
1837 # ---------------------------------------------------------------------------
1839 eval my_bindir="`eval echo ${bindir}`"
1840 eval my_mandir="`eval echo ${mandir}`"
1841 eval my_moddir="`eval echo ${FVWM_MODULEDIR}`"; eval my_moddir="$my_moddir"
1842 eval my_datdir="`eval echo ${FVWM_DATADIR}`"
1843 eval my_docdir="`eval echo ${FVWM_DOCDIR}`"
1844 eval my_plldir="`eval echo ${FVWM_PERLLIBDIR}`"
1845 test x"$FVWM_PERLLIB" = x && my_plldir="(Not installed) $my_plldir"
1846 eval my_localedir="`eval echo ${LOCALEDIR}`"
1847 test x"$USE_NLS" = xno && my_localedir="(Not installed) $my_localdir"
1851 With GDK image support in FvwmGtk? $with_gdkimlib$problem_gdkimlib
1852 With GNOME libs support in FvwmGtk? $with_gnomelibs$problem_gnomelibs" ;;
1853 no) fvwmgtk_msg="" ;;
1859 Version: $VERSION$VERSIONINFO
1861 Executables: $my_bindir
1862 Man pages: $my_mandir
1864 Data files: $my_datdir
1865 Doc files: $my_docdir
1866 Perl lib: $my_plldir
1867 Locale msg: $my_localedir $INST_LINGUAS
1869 With Asian bi-direct. text support? $with_bidi$problem_bidi
1870 With Gettext Native Lang support? $with_gettext$problem_gettext
1871 With GTK+ required for FvwmGtk? $with_gtk$problem_gtk$fvwmgtk_msg
1872 With Iconv support? $with_iconv_type$problem_iconv
1873 With Mouse strokes (gestures)? $with_stroke$problem_stroke
1874 With PNG image support? $with_png$problem_png
1875 With ReadLine sup. in FvwmConsole? $with_readline$problem_readline
1876 With RPlay support in FvwmEvent? $with_rplay$problem_rplay
1877 With Shaped window support? $with_shape$problem_shape
1878 With Shared memory for XImage? $with_shm$problem_shm
1879 With Session Management support? $with_sm$problem_sm
1880 With SVG image support? $with_rsvg$problem_rsvg
1881 With Xcursor support? $with_xcursor$problem_xcursor
1882 With Xinerama multi-head support? $with_xinerama$problem_xinerama
1883 With Xft anti-alias font support? $with_xft$problem_xft
1884 With XPM image support? $with_xpm$problem_xpm
1885 With Xrender image support? $with_xrender$problem_xrender
1886 Build man pages? $with_mandoc$problem_mandoc
1887 Build HTML documentation? $with_htmldoc$problem_htmldoc
1889 See INSTALL.fvwm for the description of what this may mean."
1891 case "$with_xinerama_emulation" in
1892 yes) echo " Xinerama emulation enabled." ;;
1894 case "$ac_cv_dmalloc" in
1895 yes) echo " DMALLOC heap debugging library enabled." ;;
1897 case "$ac_cv_efence" in
1898 yes) echo " EFENCE debugging library enabled." ;;