wmaker: replaced macro by an inline function, in X Modifier initialisation
[wmaker-crm.git] / configure.ac
blobd7ccdaec717a2b51bedd68b506e27691379e3c07
1 dnl
2 dnl Window Maker autoconf input.
3 dnl
4 dnl Process with:
5 dnl               aclocal
6 dnl               autoheader
7 dnl               autoconf
8 dnl               libtoolize --force --automake
9 dnl               automake -a --gnu --include-deps
10 dnl
11 dnl
14 AC_INIT(WindowMaker, 0.95.6, , WindowMaker, http://www.windowmaker.org/)
15 AC_CONFIG_SRCDIR(src/WindowMaker.h)
16 AC_CONFIG_MACRO_DIR([m4])
17 AC_CONFIG_HEADERS(config.h)
18 AM_INIT_AUTOMAKE([1.11 silent-rules])
20 AH_BOTTOM([#include "config-paths.h"])
22 dnl libtool library versioning
23 dnl =======================
24 dnl
25 dnl current
26 dnl revision
27 dnl age
28 dnl
29 dnl 1. Start with version information of ‘0:0:0’ for each libtool library.
30 dnl 2. Update the version information only immediately before a public
31 dnl release of your software. More frequent updates are unnecessary, and
32 dnl only guarantee that the current interface number gets larger faster.
33 dnl 3. If the library source code has changed at all since the last
34 dnl update, then increment revision (‘c:r:a’ becomes ‘c:r+1:a’).
35 dnl 4. If any interfaces have been added, removed, or changed since the
36 dnl last update, increment current, and set revision to 0.
37 dnl 5. If any interfaces have been added since the last public release,
38 dnl then increment age.
39 dnl 6. If any interfaces have been removed or changed since the last
40 dnl public release, then set age to 0.
41 dnl
42 dnl libwraster
43 WRASTER_CURRENT=5
44 WRASTER_REVISION=0
45 WRASTER_AGE=0
46 WRASTER_VERSION=$WRASTER_CURRENT:$WRASTER_REVISION:$WRASTER_AGE
47 AC_SUBST(WRASTER_VERSION)
48 dnl
49 dnl libWINGs
50 WINGS_CURRENT=3
51 WINGS_REVISION=0
52 WINGS_AGE=0
53 WINGS_VERSION=$WINGS_CURRENT:$WINGS_REVISION:$WINGS_AGE
54 AC_SUBST(WINGS_VERSION)
55 dnl
56 dnl libWUtil
57 WUTIL_CURRENT=5
58 WUTIL_REVISION=0
59 WUTIL_AGE=0
60 WUTIL_VERSION=$WUTIL_CURRENT:$WUTIL_REVISION:$WUTIL_AGE
61 AC_SUBST(WUTIL_VERSION)
64 dnl Checks for host/os name
65 dnl =======================
66 dnl AC_CANONICAL_HOST -- already done by AC_PROG_LIBTOOL
68 dnl Checks for programs.
69 dnl ===================
70 AC_PROG_CC
71 WM_PROG_CC_C11
72 AC_PROG_LN_S
73 AC_PROG_GCC_TRADITIONAL
74 AC_PROG_LIBTOOL
77 dnl Debugging Options
78 dnl =================
79 AC_ARG_ENABLE(debug,
80     [AS_HELP_STRING([--enable-debug], [enable debugging options, @<:@default=no@:>@])],
81     [AS_CASE(["$enableval"],
82         [yes], [debug=yes],
83         [no],  [debug=no],
84         [AC_MSG_ERROR([bad value $enableval for --enable-debug])] )],
85     [debug=no])
86 AS_IF([test "x$debug" = "xyes"],
87     [dnl This flag should have already been detected and added, but if user
88      dnl provided an explicit CFLAGS it may not be the case
89      AS_IF([echo " $CFLAGS " | grep " -g " 2>&1 > /dev/null],
90            [@%:@ Debug symbol already activated],
91            [AX_CFLAGS_GCC_OPTION([-g])])
92      dnl
93      dnl This flag generally makes debugging nightmarish, remove it if present
94      CFLAGS="`echo "$CFLAGS" | sed -e 's/-fomit-frame-pointer *//' `"
95      dnl
96      dnl Enable internal debug code
97      CPPFLAGS="$CPPFLAGS -DDEBUG"
98 ],  [dnl
99      dnl When debug is not enabled, the user probably does not wants to keep
100      dnl assertions in the final program
101      CPPFLAGS="$CPPFLAGS -DNDEBUG"
105 AX_CFLAGS_GCC_OPTION(-Wall)
106 AX_CFLAGS_GCC_OPTION(-Wextra -Wno-sign-compare)
107 AS_IF([test "x$debug" = "xyes"],
108     [dnl When debug is enabled, we try to activate more checks from
109      dnl the compiler. They are on independant check because the
110      dnl macro checks all the options at once, but we may have cases
111      dnl where some options are not supported and we don't want to
112      dnl loose all of them.
113      dnl
114      dnl Floating-point comparison is not a good idea
115      AX_CFLAGS_GCC_OPTION([-Wfloat-equal])
116      dnl
117      dnl Try to report misuses of '&' versus '&&' and similar
118      AX_CFLAGS_GCC_OPTION([-Wlogical-op])
119      dnl
120      dnl Reports declaration of global things that are done inside
121      dnl a local environment, instead of using the appropriate
122      dnl header
123      AX_CFLAGS_GCC_OPTION([-Wnested-externs])
124      dnl
125      dnl Use of 'sizeof()' on inappropriate pointer types
126      AX_CFLAGS_GCC_OPTION([-Wpointer-arith])
127      dnl
128      dnl Having more than 1 prototype for a function makes code updates
129      dnl more difficult, so try to avoid it
130      AX_CFLAGS_GCC_OPTION([-Wredundant-decls])
131      dnl
132      dnl Proper attributes helps the compiler to produce better code
133      WM_CFLAGS_CHECK_FIRST([format attribute suggest],
134          [-Wsuggest-attribute=format  dnl new gcc syntax
135           -Wmissing-format-attribute  dnl old gcc syntax, clang
136          ])
137      WM_CFLAGS_CHECK_FIRST([no-return attribute suggest],
138          [-Wsuggest-attribute=noreturn  dnl gcc syntax
139           -Wmissing-noreturn            dnl clang syntax
140          ])
141      dnl
142      dnl The use of trampolines cause code that can crash on some
143      dnl secured OS, and in a more general way generate binary code
144      dnl that may not be optimal
145      AX_CFLAGS_GCC_OPTION([-Wtrampolines])
146      dnl
147      dnl GCC provides a couple of checks to detect incorrect macro uses
148      AX_CFLAGS_GCC_OPTION([-Wundef])
149      AX_CFLAGS_GCC_OPTION([-Wunused-macros])
150 ], [dnl
151      dnl When debug not enabled, we try to avoid some non-necessary
152      dnl messages from the compiler
153      dnl
154      dnl To support legacy X servers, we have sometime to use
155      dnl functions marked as deprecated. We do not wish our users
156      dnl to be worried about it
157      AX_CFLAGS_GCC_OPTION([-Wno-deprecated])
158      AX_CFLAGS_GCC_OPTION([-Wno-deprecated-declarations])
162 dnl Support for Nested Functions by the compiler
163 dnl ============================================
164 WM_PROG_CC_NESTEDFUNC
167 dnl Posix thread
168 dnl =================
169 AX_PTHREAD
172 dnl Tracking on what is detected for final status
173 dnl =============================================
174 unsupported=""
175 supported_xext=""
176 supported_gfx=""
179 dnl Platform-specific Makefile setup
180 dnl ================================
181 AS_CASE(["$host"],
182     [*-*-linux*|*-*-cygwin*|*-gnu*], [WM_OSDEP="linux" ; CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=600"],
183     [*-*-freebsd*|*-k*bsd-gnu*],     [WM_OSDEP="bsd"   ; CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=600 -DFREEBSD"],
184     [*-*-netbsd*],                   [WM_OSDEP="bsd"   ; CPPFLAGS="$CPPFLAGS -DNETBSD"],
185     [*-*-openbsd*],                  [WM_OSDEP="bsd"   ; CPPFLAGS="$CPPFLAGS -DOPENBSD"],
186     [*-*-dragonfly*],                [WM_OSDEP="bsd"   ; CPPFLAGS="$CPPFLAGS -DDRAGONFLYBSD"],
187     [*-apple-darwin*],               [WM_OSDEP="darwin"],
188     [*-*-solaris*],                  [WM_OSDEP="stub"],  dnl  solaris.c when done
189     [WM_OSDEP="stub"])
190 AM_CONDITIONAL([WM_OSDEP_LINUX],   [test "x$WM_OSDEP" = "xlinux"])
191 AM_CONDITIONAL([WM_OSDEP_BSD],     [test "x$WM_OSDEP" = "xbsd"])
192 AM_CONDITIONAL([WM_OSDEP_DARWIN],  [test "x$WM_OSDEP" = "xdarwin"])
193 AM_CONDITIONAL([WM_OSDEP_GENERIC], [test "x$WM_OSDEP" = "xstub"])
196 dnl the prefix
197 dnl ==========
199 dnl move this earlier in the script... anyone know why this is handled
200 dnl in such a bizarre way?
202 test "x$prefix" = xNONE && prefix=$ac_default_prefix
203 dnl Let make expand exec_prefix.
204 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
207 _bindir=`eval echo $bindir`
208 _bindir=`eval echo $_bindir`
210 lib_search_path='-L${libdir}'
212 inc_search_path='-I${includedir}'
214 dnl ===============================================
215 dnl Specify paths to look for libraries and headers
216 dnl ===============================================
217 AC_ARG_WITH(libs-from, AS_HELP_STRING([--with-libs-from], [pass compiler flags to look for libraries]),
218         [lib_search_path="$withval $lib_search_path"])
220 AC_ARG_WITH(incs-from, AS_HELP_STRING([--with-incs-from], [pass compiler flags to look for header files]),
221         [inc_search_path="$withval $inc_search_path"])
224 dnl Boehm GC
225 dnl ========
226 AC_ARG_ENABLE([boehm-gc],
227     [AS_HELP_STRING([--enable-boehm-gc], [use Boehm GC instead of the default libc malloc() [default=no]])],
228     [AS_CASE(["$enableval"],
229         [yes], [with_boehm_gc=yes],
230         [no],  [with_boehm_gc=no],
231         [AC_MSG_ERROR([bad value $enableval for --enable-boehm-gc])] )],
232     [with_boehm_gc=no])
233 AS_IF([test "x$with_boehm_gc" = "xyes"],
234     AC_SEARCH_LIBS([GC_malloc], [gc],
235         [AC_DEFINE(USE_BOEHM_GC, 1, [Define if Boehm GC is to be used])],
236         [AC_MSG_FAILURE([--enable-boehm-gc specified but test for libgc failed])]))
239 dnl LCOV
240 dnl ====
241 AC_ARG_ENABLE([lcov],
242     [AS_HELP_STRING([--enable-lcov[=output-directory]], [enable coverage data generation using LCOV (GCC only) [default=no]])],
243     [],
244     [enable_lcov=no])
246 AS_IF([test "x$enable_lcov" != "xno"],
247     [AX_CFLAGS_GCC_OPTION(-fprofile-arcs -ftest-coverage)
248     AS_IF([test "x$enable_lcov" = "xyes"],
249         [lcov_output_directory="coverage-report"],
250         [lcov_output_directory="${enable_lcov}/coverage-report"])
251     AC_SUBST(lcov_output_directory)])
253 AM_CONDITIONAL([USE_LCOV], [test "x$enable_lcov" != "xno"])
256 dnl ============================
257 dnl Checks for library functions
258 dnl ============================
259 dnl not used anywhere
260 AC_FUNC_MEMCMP
261 AC_FUNC_VPRINTF
262 WM_FUNC_SECURE_GETENV
263 AC_CHECK_FUNCS(gethostname select poll strcasecmp strncasecmp \
264                setsid mallinfo mkstemp sysconf)
265 AC_SEARCH_LIBS([strerror], [cposix])
267 dnl nanosleep is generally available in standard libc, although not always the
268 dnl case. One known example is Solaris which needs -lrt
269 AC_SEARCH_LIBS([nanosleep], [rt], [],
270     [AC_MSG_ERROR([function 'nanosleep' not found, please report to wmaker-dev@lists.windowmaker.org])])
273 dnl Check for strlcat/strlcpy
274 dnl =========================
275 AC_ARG_WITH([libbsd],
276   [AS_HELP_STRING([--without-libbsd], [do not use libbsd for strlcat and strlcpy [default=check]])],
277   [AS_IF([test "x$with_libbsd" != "xno"],
278     [with_libbsd=bsd]
279     [with_libbsd=]
280   )],
281   [with_libbsd=bsd])
283 tmp_libs=$LIBS
284 AC_SEARCH_LIBS([strlcat],[$with_libbsd],
285   [AC_DEFINE(HAVE_STRLCAT, 1, [Define if strlcat is available])],
286   [],
287   []
289 AC_SEARCH_LIBS([strlcpy],[$with_libbsd],
290   [AC_DEFINE(HAVE_STRLCAT, 1, [Define if strlcpy is available])],
291   [],
292   []
294 LIBS=$tmp_libs
296 LIBBSD=
297 AS_IF([test "x$ac_cv_search_strlcat" = "x-lbsd" -o "x$ac_cv_search_strlcpy" = "x-lbsd"],
298   [LIBBSD=-lbsd
299    AC_CHECK_HEADERS([bsd/string.h])]
301 AC_SUBST(LIBBSD)
303 dnl Check for OpenBSD kernel memory interface - kvm(3)
304 dnl ==================================================
305 AS_IF([test "x$WM_OSDEP" = "xbsd"],
306   AC_SEARCH_LIBS([kvm_openfiles], [kvm]) )
308 dnl Check for inotify
309 dnl =================
310 AC_CHECK_HEADERS(sys/inotify.h, AC_DEFINE(HAVE_INOTIFY, 1, Check for inotify))
313 dnl Check for syslog 
314 dnl =================
315 AC_CHECK_HEADERS([syslog.h], [AC_DEFINE([HAVE_SYSLOG], [1], [Check for syslog])])
318 dnl Checks for header files.
319 dnl =======================
320 AC_HEADER_SYS_WAIT
321 AC_HEADER_TIME
322 AC_CHECK_HEADERS(fcntl.h limits.h sys/ioctl.h libintl.h poll.h malloc.h ctype.h \
323                  string.h strings.h)
326 dnl Checks for typedefs, structures, and compiler characteristics.
327 dnl ==============================================================
328 AC_DECL_SYS_SIGLIST
329 AC_C_CONST
330 AC_C_INLINE
331 WM_C_NORETURN
332 AC_TYPE_SIZE_T
333 AC_TYPE_PID_T
334 AC_TYPE_SIGNAL
337 dnl pkg-config
338 dnl ==========
339 dnl AC_ARG_VAR(PKGCONFIG, [pkg-config command])
340 AC_CHECK_PROG(PKGCONFIG, pkg-config, pkg-config) 
342 dnl gettext
343 dnl =======
345 dnl AM_GNU_GETTEXT
347 INTLIBS=""
349 AC_CHECK_FUNC(gettext, [HAVEGETTEXT="yes"], 
350         AC_CHECK_LIB(intl, gettext, [INTLIBS="-lintl" HAVEGETTEXT="yes"],
351                          INTLIBS="" ))
353 AC_CHECK_PROG(XGETTEXT, xgettext, xgettext)
355 if test "$XGETTEXT" != ""; then 
356     if $XGETTEXT --help 2>&1 | grep illegal >/dev/null ; then
357         echo "xgettext isn't GNU version"
358         XGETTEXT=""
359     fi
362 if test "$LINGUAS" != ""; then
363     if test "$XGETTEXT" != "" -a "$HAVEGETTEXT" != ""; then
364         AC_DEFINE(I18N, 1, [Internationalization (I18N) support (set by configure)])
365         PO=""
366         echo "xgettext and gettext() exist; will build i18n support for $LINGUAS"
367     else
368         LINGUAS=""
369         PO=""
370         echo "xgettext and libintl.a don't both exist; will not build i18n support"
371     fi
372 else
373         INTLIBS=""
374         MOFILES=""
375         WPMOFILES=""
376         UTILMOFILES=""
377         PO=""
381 dnl The Tower of Babel
382 dnl ==================
384 dnl List of supported locales
385 dnl =========================
386 supported_locales="be bg bs ca cs da de el es et fi fr gl hr hu hy it ja ko ms nl no pl pt ro ru sk sv tr zh_CN zh_TW"
387 supported_wprefs_locales="bg ca cs de es et fi fr hr hu it ja ko nl pt ru sk zh_CN zh_TW"
388 supported_wings_locales="bg ca cs de fr hu nl sk"
389 supported_util_locales="de es fr nl pt"
391 for lang in $LINGUAS; do
392         ok=0
393         for l in $supported_locales; do
394                 if test "$l" = "$lang"; then
395                         ok=1
396                         break
397                 fi
398         done
399         if test "$ok" = 1; then
400                 MOFILES="$MOFILES $lang.mo"
401         else
402                 echo "Locale $lang is not supported."
403         fi
404         ok=0
405         for l in $supported_wprefs_locales; do
406                 if test "$l" = "$lang"; then
407                         ok=1
408                         break
409                 fi
410         done
411         if test "$ok" = 1; then
412                 WPMOFILES="$WPMOFILES $lang.mo"
413         fi
414         ok=0
415         for l in $supported_util_locales; do
416                 if test "$l" = "$lang"; then
417                         ok=1
418                         break
419                 fi
420         done
421         if test "$ok" = 1; then
422                 UTILMOFILES="$UTILMOFILES $lang.mo"
423         fi
424         ok=0
425         for l in $supported_wings_locales; do
426                 if test "$l" = "$lang"; then
427                         ok=1
428                         break
429                 fi
430         done
431         if test "$ok" = 1; then
432                 WINGSMOFILES="$WINGSMOFILES $lang.mo"
433         fi
434 done
437 dnl Added by Oliver - Support for NLSDIR option
438 dnl ===========================================
439 AC_ARG_WITH(nlsdir, AS_HELP_STRING([--with-nlsdir=PATH], [specify where the locale stuff should go]))
441 if test "x$NLSDIR" = "x"; then
442         if test "x$with_nlsdir" != "x"; then
443                 NLSDIR=$with_nlsdir
444         else
445                 NLSDIR='$(prefix)/lib/locale'
446         fi
449 menutextdomain=
450 AC_ARG_WITH(menu-textdomain, AS_HELP_STRING([--with-menu-textdomain=DOMAIN], [specify gettext domain used for menu translations]),
451         [if test "x$withval" != "xno"; then
452          menutextdomain=$withval
453          fi])
454 AC_SUBST(menutextdomain)
456 AC_SUBST(INTLIBS)
457 AC_SUBST(NLSDIR)
458 AC_SUBST(MOFILES)
459 AC_SUBST(WPMOFILES)
460 AC_SUBST(UTILMOFILES)
461 AC_SUBST(WINGSMOFILES)
462 AC_SUBST(supported_locales)
464 dnl ===========================================
465 dnl             Stuff that uses X
466 dnl ===========================================
468 AC_PATH_XTRA
470 if test $no_x; then
471     AC_MSG_ERROR([The path for the X11 files not found!
472 Make sure you have X and it's headers and libraries (the -devel packages
473 in Linux) installed.])
476 X_LIBRARY_PATH=$x_libraries
477 XCFLAGS="$X_CFLAGS"
478 XLFLAGS="$X_LIBS"
479 XLIBS="-lX11 $X_EXTRA_LIBS"
481 lib_search_path="$lib_search_path $XLFLAGS"
482 inc_search_path="$inc_search_path $XCFLAGS"
484 AC_SUBST(X_LIBRARY_PATH)
486 dnl Decide which locale function to use, setlocale() or _Xsetlocale()
487 dnl by MANOME Tomonori 
488 dnl ===========================================
489 use_locale=yes
490 AC_ARG_ENABLE(locale, AS_HELP_STRING([--disable-locale], [disable use of X locale support]),
491               use_locale=no)
493 if test "$use_locale" = yes; then
494         AC_CHECK_LIB(X11, _Xsetlocale,
495                 AC_DEFINE(X_LOCALE, 1, [define if you want support for X window's X_LOCALE (set by configure)]),,
496                 $XLFLAGS $XLIBS)
499 dnl Check whether XInternAtoms() exist
500 dnl ==================================
501 AC_CHECK_LIB(X11, XInternAtoms, 
502              AC_DEFINE(HAVE_XINTERNATOMS, 1, [define if your X server has XInternAtoms() (set by configure)]),,
503              $XLFLAGS $XLIBS)
505 dnl Check whether XConvertCase() exist
506 dnl ==================================
507 AC_CHECK_LIB(X11, XConvertCase, 
508              AC_DEFINE(HAVE_XCONVERTCASE, 1, [define if your X server has XConvertCase() (set by configure)]),,
509              $XLFLAGS $XLIBS)
511 dnl XKB keyboard language status
512 dnl ============================
513 AC_ARG_ENABLE(modelock, AS_HELP_STRING([--enable-modelock], [XKB keyboard language status support]),
514                 AC_DEFINE(XKB_MODELOCK, 1, [whether XKB language MODELOCK should be enabled]))
516 dnl XDND Drag-nd-Drop support
517 dnl ============================
518 AC_ARG_ENABLE([xdnd],
519     [AS_HELP_STRING([--disable-xdnd], [disable Drag-nd-Drop support])],
520     [AS_CASE(["$enableval"],
521         [yes|no], [],
522         [AC_MSG_ERROR([bad value $enableval for --disable-xdnd]) ]) ],
523     [enable_xdnd=yes
524   supported_xext="$supported_xext XDnD"
525   AC_DEFINE(XDND, 1, [whether Drag-nd-Drop support should be enabled])
528 dnl XShape support
529 dnl ==============
530 AC_ARG_ENABLE([shape],
531     [AS_HELP_STRING([--disable-shape], [disable shaped window extension support])],
532     [AS_CASE(["$enableval"],
533         [yes|no], [],
534         [AC_MSG_ERROR([bad value $enableval for --enable-shape]) ]) ],
535     [enable_shape=auto])
536 WM_XEXT_CHECK_XSHAPE
538 dnl MIT-SHM support
539 dnl ===============
540 AC_ARG_ENABLE([shm],
541     [AS_HELP_STRING([--disable-shm], [disable usage of MIT-SHM extension])],
542     [AS_CASE(["$enableval"],
543         [yes|no], [],
544         [AC_MSG_ERROR([bad value $enableval for --enable-shm]) ]) ],
545     [enable_shm=auto])
546 WM_XEXT_CHECK_XSHM
548 dnl X Misceleanous Utility
549 dnl ======================
550 # the libXmu is used in WRaster
551 WM_EXT_CHECK_XMU
553 dnl XINERAMA support
554 dnl ================
555 AC_ARG_ENABLE([xinerama],
556     [AS_HELP_STRING([--enable-xinerama], [enable Xinerama extension support])],
557     [AS_CASE(["$enableval"],
558         [yes|no], [],
559         [AC_MSG_ERROR([bad value $enableval for --enable-xinerama]) ]) ],
560     [enable_xinerama=auto])
561 WM_XEXT_CHECK_XINERAMA
563 dnl RandR support
564 dnl ==============
565 AC_ARG_ENABLE([randr],
566     [AS_HELP_STRING([--enable-randr], [enable RandR extension support (NOT recommended, buggy)])],
567     [AS_CASE(["$enableval"],
568         [yes|no], [],
569         [AC_MSG_ERROR([bad value $enableval for --enable-randr]) ]) ],
570     [enable_randr=no])
571 WM_XEXT_CHECK_XRANDR
574 dnl libWINGS uses math functions, check whether usage requires linking
575 dnl against libm
577 WM_CHECK_LIBM
580 dnl libWINGS uses FcPatternDel from libfontconfig
582 AC_MSG_CHECKING([for fontconfig library])
583 FCLIBS=`$PKGCONFIG fontconfig --libs`
584 if test "x$FCLIBS" = "x" ; then
585         AC_MSG_RESULT([not found])
586 else
587         AC_MSG_RESULT([found])
589 AC_SUBST(FCLIBS)
592 dnl Xft2 antialiased font support
593 dnl =============================
595 xft=yes
596 XFTLIBS=""
598 if test "x$PKGCONFIG" != x -a "`$PKGCONFIG xft; echo $?`" = 0; then
599         XFTCONFIG="$PKGCONFIG xft"
600         pkgconfig_xft=yes
601 else
602         AC_CHECK_PROG(XFTCONFIG, xft-config, xft-config)
605 AC_MSG_CHECKING([for the Xft2 library])
607 if test "x$XFTCONFIG" != x; then
608         XFTLIBS=`$XFTCONFIG --libs`
609         XFTFLAGS=`$XFTCONFIG --cflags`
610         AC_MSG_RESULT([found])
611 else
612         AC_MSG_RESULT([not found])
613         echo
614         echo "ERROR!!! libXft2 is not installed or could not be found."
615         echo "         Xft2 is a requirement for building Window Maker."
616         echo "         Please install it (along with fontconfig) before continuing."
617         echo
618         exit 1
621 minXFT="2.1.0"
622 goodxft="no"
625 dnl The macro below will use $XFTFLAGS (defined above) to find Xft.h
627 WM_CHECK_XFT_VERSION($minXFT, goodxft=yes, goodxft=no)
629 if test "$goodxft" = no; then
630         echo
631         echo "ERROR!!! libXft on this system is an old version."
632         echo "         Please consider upgrading to at least version ${minXFT}."
633         echo
634         exit 1
637 AC_SUBST(XFTFLAGS)
638 AC_SUBST(XFTLIBS)
640 dnl PANGO support
641 dnl =============
642 pango=no
643 AC_ARG_ENABLE(pango, AS_HELP_STRING([--enable-pango], [enable Pango text layout support]),
644                 pango=$enableval, pango=no)
646 PANGOFLAGS=
647 PANGOLIBS=
648 if test "$pango" = yes; then
649         PANGOLIBS=`$PKGCONFIG pangoxft --libs`
650         PANGOFLAGS=`$PKGCONFIG pangoxft --cflags`
651         if test "x$PANGOLIBS" = "x" ; then
652                 AC_MSG_RESULT([not found])
653         else
654                 AC_DEFINE(USE_PANGO, 1, [Define if Pango is to be used])
655                 AC_MSG_RESULT([found])
656         fi
658 inc_search_path="$inc_search_path $PANGOFLAGS"
659 AC_SUBST(PANGOLIBS)
661 dnl ==============================================
662 dnl         Graphic Format Libraries
663 dnl ==============================================
665 dnl XPM Support
666 dnl ===========
667 AC_ARG_ENABLE([xpm],
668     [AS_HELP_STRING([--disable-xpm], [disable use of XPM pixmaps through libXpm])],
669     [AS_CASE(["$enableval"],
670         [yes|no], [],
671         [AC_MSG_ERROR([bad value $enableval for --enable-xpm])] )],
672     [enable_xpm=auto])
673 WM_IMGFMT_CHECK_XPM
676 # for wmlib
677 AC_SUBST(XCFLAGS)
678 # for test
679 AC_SUBST(XLFLAGS)
680 AC_SUBST(XLIBS)
681 AC_SUBST(X_EXTRA_LIBS)
683 dnl ===============================================
684 dnl             End of stuff that uses X
685 dnl ===============================================
687 dnl EXIF Support
688 dnl ===========
689 WM_CHECK_LIBEXIF
690 AS_IF([test "x$LIBEXIF" != "x"],
691         [AC_DEFINE(HAVE_EXIF, 1, [Define if EXIF can be used])])
693 dnl PNG Support
694 dnl ===========
695 AC_ARG_ENABLE([png],
696     [AS_HELP_STRING([--disable-png], [disable PNG support through libpng])],
697     [AS_CASE(["$enableval"],
698         [yes|no], [],
699         [AC_MSG_ERROR([bad value $enableval for --enable-png])] )],
700     [enable_png=auto])
701 WM_IMGFMT_CHECK_PNG
704 dnl JPEG Support
705 dnl ============
706 AC_ARG_ENABLE([jpeg],
707     [AS_HELP_STRING([--disable-jpeg], [disable JPEG support through libjpeg])],
708     [AS_CASE(["$enableval"],
709         [yes|no], [],
710         [AC_MSG_ERROR([bad value $enableval for --enable-jpeg])] )],
711     [enable_jpeg=auto])
712 WM_IMGFMT_CHECK_JPEG
715 dnl GIF Support
716 dnl ============
717 AC_ARG_ENABLE(gif,
718     [AS_HELP_STRING([--disable-gif], [disable GIF support through libgif or libungif])],
719     [AS_CASE(["$enableval"],
720         [yes|no], [],
721         [AC_MSG_ERROR([bad value $enableval for --enable-gif])] )],
722     [enable_gif=auto])
723 WM_IMGFMT_CHECK_GIF
726 dnl TIFF Support
727 dnl ============
728 AC_ARG_ENABLE([tiff],
729     [AS_HELP_STRING([--disable-tiff], [disable use of TIFF images through libtiff])],
730     [AS_CASE(["$enableval"],
731         [yes|no], [],
732         [AC_MSG_ERROR([bad value $enableval for --enable-tiff])] )],
733     [enable_tiff=auto])
734 WM_IMGFMT_CHECK_TIFF
737 dnl WEBP Support
738 dnl ===========
739 AC_ARG_ENABLE([webp],
740     [AS_HELP_STRING([--disable-webp], [disable WEBP support through libwebp])],
741     [AS_CASE(["$enableval"],
742         [yes|no], [],
743         [AC_MSG_ERROR([bad value $enableval for --enable-webp])] )],
744     [enable_webp=auto])
745 WM_IMGFMT_CHECK_WEBP
748 dnl MAGICK Support
749 dnl ===========
750 AC_ARG_ENABLE([magick],
751     [AS_HELP_STRING([--disable-magick], [disable MAGICK support through libMagickWand])],
752     [AS_CASE(["$enableval"],
753         [yes|no], [],
754         [AC_MSG_ERROR([bad value $enableval for --enable-magick])] )],
755     [enable_magick=auto])
756 WM_IMGFMT_CHECK_MAGICK
759 dnl PPM Support
760 dnl ===========
761 # The PPM format is always enabled because we have built-in support for the format
762 # We are not using any external library like libppm
763 supported_gfx="$supported_gfx builtin-PPM"
766 # Choice of the default format for icons
767 AS_IF([test "x$enable_tiff" != "xno"],
768     [ICONEXT="tiff"],
769     [ICONEXT="xpm"])
772 LIBRARY_SEARCH_PATH="$lib_search_path"
773 HEADER_SEARCH_PATH="$inc_search_path"
775 AC_SUBST(LIBRARY_SEARCH_PATH)
776 AC_SUBST(HEADER_SEARCH_PATH)
779 AC_SUBST(GFXLIBS)
780 AC_SUBST(ICONEXT)
781 AM_CONDITIONAL([ICON_EXT_XPM],  [test "x$ICONEXT" = "xxpm"])
782 AM_CONDITIONAL([ICON_EXT_TIFF], [test "x$ICONEXT" = "xtiff"])
785 dnl ==============================================
786 dnl         End of Graphic Format Libraries
787 dnl ==============================================
791 dnl stdlib.h is checked here, because of conflict in jpeglib.h
792 AC_CHECK_HEADERS(stdlib.h)
794 # AC_PREFIX_PROGRAM(wmaker)
796 dnl Support for PIXMAPDIR option
797 dnl ============================
798 AC_ARG_WITH(pixmapdir, AS_HELP_STRING([--with-pixmapdir=PATH], [specify where pixmaps are located [DATADIR/pixmaps]]))
800 if test "x$with_pixmapdir" != "x"; then
801         pixmapdir=$with_pixmapdir
802 else
803         pixmapdir='${datadir}/pixmaps'
805 AC_SUBST(pixmapdir)
808 dnl Support for GNUSTEP_LOCAL_ROOT, for WPrefs.app
809 dnl ==============================================
811 AC_ARG_WITH(gnustepdir, AS_HELP_STRING([--with-gnustepdir=PATH], [specify the directory for GNUstep applications]))
813 if test "x`echo $with_gnustepdir | grep ^/`" != "x"; then
814     appspath=$with_gnustepdir
817 if test "x$appspath$GNUSTEP_LOCAL_ROOT" = "x"; then
818     wprefs_base_dir=${prefix}
819     wprefs_datadir="${datadir}/WPrefs"
820     wprefs_bindir="${bindir}"
821 else
822     gnustepdir=$appspath
824     if test "x$GNUSTEP_LOCAL_ROOT" != "x" ; then
825         gnustepdir=`echo "$GNUSTEP_LOCAL_ROOT" | sed -e "s|^${prefix}|prefix|"`
826         gnustepdir=`echo $gnustepdir | sed -e 's|^prefix|${prefix}|'`
827     fi
829     wprefs_base_dir=$gnustepdir/Applications
830     wprefs_datadir=$wprefs_base_dir/WPrefs.app
831     wprefs_bindir=$wprefs_base_dir/WPrefs.app
834 AC_SUBST(wprefs_datadir)
835 AC_SUBST(wprefs_bindir)
838 dnl Enable User Defined Menu thing
839 dnl ==============================
840 AC_ARG_ENABLE(usermenu, AS_HELP_STRING([--enable-usermenu], [user defined menus for applications]),
841 if test "$enableval" = yes; then
842         AC_DEFINE(USER_MENU, 1, [define if you want user defined menus for applications])
846 gl_LD_VERSION_SCRIPT
848 AC_OUTPUT(Makefile po/Makefile util/Makefile util/po/Makefile test/Makefile \
849         WINGs/Makefile WINGs/WINGs/Makefile WINGs/Documentation/Makefile \
850         WINGs/Examples/Makefile WINGs/Resources/Makefile WINGs/Tests/Makefile \
851         WINGs/Extras/Makefile WINGs/po/Makefile \
852         wmlib/Makefile wrlib/Makefile wrlib/tests/Makefile \
853         src/Makefile src/wconfig.h \
854         doc/Makefile doc/sk/Makefile doc/cs/Makefile \
855         doc/ru/Makefile \
856         WindowMaker/Makefile WindowMaker/Backgrounds/Makefile \
857         WindowMaker/Defaults/Makefile WindowMaker/IconSets/Makefile \
858         WindowMaker/Icons/Makefile WindowMaker/Pixmaps/Makefile \
859         WindowMaker/Styles/Makefile WindowMaker/Themes/Makefile \
860         WPrefs.app/Makefile WPrefs.app/tiff/Makefile WPrefs.app/xpm/Makefile \
861         WPrefs.app/po/Makefile )
864 dnl Output some helpful data for compiling wraster and WINGs/WUtil apps
865 dnl ===================================================================
867 dnl echo "WFLAGS=\"$LIBPL_INC_PATH -I$prefix/include\"" > WINGs-flags
868 dnl echo "WLIBS=\"-L$exec_prefix/lib -lWINGs -lwraster $LIBPL_LIBS $GFXLIBS -lm\""\
869 dnl     | sed -e 's|\$(prefix)|'"$prefix|" >> WINGs-flags
871 dnl The #lp# and #rp# stuff below is a hack because [ and ] get lost when
872 dnl parsed by m4
874 AC_SUBST(lib_search_path)
875 AC_SUBST(inc_search_path)
878 dnl Spit out the configuration
879 dnl ==========================
881 if test "x$MOFILES" = "x"; then
882         mof=None
883 else
884         mof=`echo $MOFILES`
887 if test "x$MOFILES" = "x"; then
888         languages=None
889 else
890         languages=`echo $MOFILES | sed 's/.mo//g'`
893 echo
894 echo "Window Maker was configured as follows:"
895 echo
896 echo "Installation path prefix            : $prefix"
897 echo "Installation path for binaries      : $_bindir"
898 echo "Installation path for libraries     : $libdir"
899 echo "Installation path for WPrefs.app    : $wprefs_base_dir" | sed -e 's|\${prefix}|'"$prefix|"
900 echo "Supported X extensions:             :$supported_xext"
901 echo "Supported graphic format libraries  :$supported_gfx"
902 echo "Unsupported features                :$unsupported"
903 echo "Antialiased text support in WINGs   : $xft"
904 echo "Pango text layout support in WINGs  : $pango"
905 echo "Translated message files to install : $mof"
906 dnl echo "Supported languages beside English  : $languages"
907 if test "x$MOFILES" != "x"; then
908         echo "Installation path for translations  : $NLSDIR" | sed -e 's|\$(prefix)|'"$prefix|"
910 AS_IF([test "x$debug" = "xyes"],
911     [AS_ECHO(["Debug enabled: CFLAGS = $CFLAGS"]) ])
912 echo
914 AS_IF([test "x$wm_cv_prog_cc_nestedfunc" != "xyes"],
915     [AC_MSG_WARN([[Your compiler does not support Nested Function, work-around enabled]])])
917 dnl WM_PRINT_REDCRAP_BUG_STATUS
919 AS_IF([test "x$enable_jpeg" = xno], [dnl
920     AS_ECHO(["WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING"])
921     AS_ECHO([])
922     AS_ECHO(["JPEG support will not be included because the JPEG library is"])
923     AS_ECHO(["not installed correctly or was not found. Background images"])
924     AS_ECHO(["from themes will not display as they usually are JPEG files."])
925     AS_ECHO([])
926     AS_ECHO(["To fix, download and install the jpeg library and/or make sure you"])
927     AS_ECHO(["installed all jpeg related packages, SPECIALLY the development packages"])
928     AS_ECHO(["like jpeg-dev (if you use some prepackaged version of libjpeg)."])
929     AS_ECHO([])
930     AS_ECHO(["WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING"])dnl
934 dnl This is for Emacs.  I'm lazy, I know... (nicolai)
935 dnl ================================================
936 dnl Local Variables:
937 dnl compile-command: "autoconf"
938 dnl End: