1 dnl ============================================================================
3 dnl Window Maker autoconf input
5 AC_COPYRIGHT([Copyright (c) 2001-2015 The Window Maker Team])
7 dnl ============================================================================
9 dnl This program is free software; you can redistribute it and/or modify
10 dnl it under the terms of the GNU General Public License as published by
11 dnl the Free Software Foundation; either version 2 of the License, or
12 dnl (at your option) any later version.
14 dnl This program is distributed in the hope that it will be useful,
15 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
16 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 dnl GNU General Public License for more details.
19 dnl You should have received a copy of the GNU General Public License along
20 dnl with this program; see the file COPYING.
22 dnl ============================================================================
24 dnl Process with: ./autogen.sh
27 dnl Due to a bug in Autoconf 2.68 (apparently a regression), we need at least
28 dnl version 2.68b which includes this patch:
29 dnl http://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=commit;h=2b0d95faef68d7ed7c08b0edb9ff1c38728376fa
31 dnl Because the 2.69 was released only a few month later, let's just ask for it
35 dnl Configuration for Autoconf and Automake
36 dnl =======================================
37 AC_INIT([WindowMaker],[0.95.6],[wmaker-dev@lists.windowmaker.org],[WindowMaker],[http://www.windowmaker.org/])
38 AC_CONFIG_MACRO_DIR([m4])
39 AC_CONFIG_HEADERS([config.h])
40 AM_INIT_AUTOMAKE([1.11 silent-rules])
42 dnl Reference file used by 'configure' to make sure the path to sources is valid
43 AC_CONFIG_SRCDIR([src/WindowMaker.h])
45 dnl Include at the end of 'config.h', this file is generated by top-level Makefile
46 AH_BOTTOM([@%:@include "config-paths.h"])
49 dnl libtool library versioning
50 dnl ==========================
56 dnl 1. Start with version information of ‘0:0:0’ for each libtool library.
57 dnl 2. Update the version information only immediately before a public
58 dnl release of your software. More frequent updates are unnecessary, and
59 dnl only guarantee that the current interface number gets larger faster.
60 dnl 3. If the library source code has changed at all since the last
61 dnl update, then increment revision (‘c:r:a’ becomes ‘c:r+1:a’).
62 dnl 4. If any interfaces have been added, removed, or changed since the
63 dnl last update, increment current, and set revision to 0.
64 dnl 5. If any interfaces have been added since the last public release,
65 dnl then increment age.
66 dnl 6. If any interfaces have been removed or changed since the last
67 dnl public release, then set age to 0.
73 WRASTER_VERSION=$WRASTER_CURRENT:$WRASTER_REVISION:$WRASTER_AGE
74 AC_SUBST(WRASTER_VERSION)
80 WINGS_VERSION=$WINGS_CURRENT:$WINGS_REVISION:$WINGS_AGE
81 AC_SUBST(WINGS_VERSION)
87 WUTIL_VERSION=$WUTIL_CURRENT:$WUTIL_REVISION:$WUTIL_AGE
88 AC_SUBST(WUTIL_VERSION)
91 dnl Checks for programs
92 dnl ===================
96 AC_PROG_GCC_TRADITIONAL
100 dnl Debugging Options
101 dnl =================
102 AC_ARG_ENABLE([debug],
103 [AS_HELP_STRING([--enable-debug], [enable debugging options, @<:@default=no@:>@])],
104 [AS_CASE(["$enableval"],
107 [AC_MSG_ERROR([bad value $enableval for --enable-debug])] )],
109 AS_IF([test "x$debug" = "xyes"],
110 [dnl This flag should have already been detected and added, but if user
111 dnl provided an explicit CFLAGS it may not be the case
112 AS_IF([echo " $CFLAGS " | grep " -g " 2>&1 > /dev/null],
113 [@%:@ Debug symbol already activated],
114 [AX_CFLAGS_GCC_OPTION([-g])])
116 dnl This flag generally makes debugging nightmarish, remove it if present
117 CFLAGS="`echo "$CFLAGS" | sed -e 's/-fomit-frame-pointer *//' `"
119 dnl Enable internal debug code
120 CPPFLAGS="$CPPFLAGS -DDEBUG"
122 dnl When debug is not enabled, the user probably does not wants to keep
123 dnl assertions in the final program
124 CPPFLAGS="$CPPFLAGS -DNDEBUG"
128 AX_CFLAGS_GCC_OPTION([-Wall])
129 AX_CFLAGS_GCC_OPTION([-Wextra -Wno-sign-compare])
131 dnl The use of trampolines cause code that can crash on some secured OS, it is
132 dnl also known to be a source of crash if not used properly, in a more general
133 dnl way it tends to generate binary code that may not be optimal, and it is
134 dnl not compatible with the 'nested-func-to-macro' workaround
135 WM_CFLAGS_CHECK_FIRST([-Wtrampolines],
136 [-Werror=trampolines dnl try to generate an error if possible
137 -Wtrampolines dnl if not, try to fall back to a simple warning
140 AS_IF([test "x$debug" = "xyes"],
141 [dnl When debug is enabled, we try to activate more checks from
142 dnl the compiler. They are on independant check because the
143 dnl macro checks all the options at once, but we may have cases
144 dnl where some options are not supported and we don't want to
145 dnl loose all of them.
147 dnl clang, suggest parenthesis on bit operations that could be
148 dnl misunderstood due to C operator precedence
149 AX_CFLAGS_GCC_OPTION([-Wbitwise-op-parentheses])
151 dnl Points at code that gcc thinks is so complicated that gcc
152 dnl gives up trying to optimize, which probably also means it is
153 dnl too complicated to maintain
154 AX_CFLAGS_GCC_OPTION([-Wdisabled-optimization])
156 dnl Floating-point comparison is not a good idea
157 AX_CFLAGS_GCC_OPTION([-Wfloat-equal])
159 dnl clang warns about constants that may have portability issues due
160 dnl to the endianness of the host
161 AX_CFLAGS_GCC_OPTION([-Wfour-char-constants])
163 dnl clang warns about constant that may be too big to be portable
164 AX_CFLAGS_GCC_OPTION([-Wliteral-range])
166 dnl Try to report misuses of '&' versus '&&' and similar
167 AX_CFLAGS_GCC_OPTION([-Wlogical-op])
169 dnl clang, reports cases where the code assumes everyone is an
170 dnl expert in C operator precedence... which is unlikely!
171 AX_CFLAGS_GCC_OPTION([-Wlogical-op-parentheses])
173 dnl Reports declaration of global things that are done inside
174 dnl a local environment, instead of using the appropriate
176 AX_CFLAGS_GCC_OPTION([-Wnested-externs])
178 dnl Warn about constant strings that could pose portability issues
179 AX_CFLAGS_GCC_OPTION([-Woverlength-strings])
181 dnl Use of 'sizeof()' on inappropriate pointer types
182 AX_CFLAGS_GCC_OPTION([-Wpointer-arith])
184 dnl Having more than 1 prototype for a function makes code updates
185 dnl more difficult, so try to avoid it
186 AX_CFLAGS_GCC_OPTION([-Wredundant-decls])
188 dnl clang, detect some misuses of sizeof. We also count in our code
189 dnl on the use of the macro 'wlength' which contains a check if the
190 dnl compiler support C11's static_assert
191 AX_CFLAGS_GCC_OPTION([-Wsizeof-array-argument])
193 dnl Prototype of function must be explicit, no deprecated K&R syntax
194 dnl and no empty argument list which prevents compiler from doing
195 dnl type checking when using the function
196 WM_CFLAGS_GCC_OPTION_STRICTPROTO
198 dnl Proper attributes helps the compiler to produce better code
199 WM_CFLAGS_CHECK_FIRST([format attribute suggest],
200 [-Wsuggest-attribute=format dnl new gcc syntax
201 -Wmissing-format-attribute dnl old gcc syntax, clang
203 WM_CFLAGS_CHECK_FIRST([no-return attribute suggest],
204 [-Wsuggest-attribute=noreturn dnl gcc syntax
205 -Wmissing-noreturn dnl clang syntax
208 dnl GCC provides a couple of checks to detect incorrect macro uses
209 AX_CFLAGS_GCC_OPTION([-Wundef])
210 WM_CFLAGS_GCC_OPTION_UNUSEDMACROS
212 dnl clang reports stuff marked unused but which is actually used
213 AX_CFLAGS_GCC_OPTION([-Wused-but-marked-unused])
215 dnl When debug not enabled, we try to avoid some non-necessary
216 dnl messages from the compiler
218 dnl To support legacy X servers, we have sometime to use
219 dnl functions marked as deprecated. We do not wish our users
220 dnl to be worried about it
221 AX_CFLAGS_GCC_OPTION([-Wno-deprecated])
222 AX_CFLAGS_GCC_OPTION([-Wno-deprecated-declarations])
226 dnl Support for Nested Functions by the compiler
227 dnl ============================================
228 WM_PROG_CC_NESTEDFUNC
233 dnl they are used by util/wmiv
237 dnl Tracking on what is detected for final status
238 dnl =============================================
245 dnl Platform-specific Makefile setup
246 dnl ================================
248 [*-*-linux*|*-*-cygwin*|*-gnu*], [WM_OSDEP="linux" ; CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=600"],
249 [*-*-freebsd*|*-k*bsd-gnu*], [WM_OSDEP="bsd" ; CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=600 -DFREEBSD"],
250 [*-*-netbsd*], [WM_OSDEP="bsd" ; CPPFLAGS="$CPPFLAGS -DNETBSD"],
251 [*-*-openbsd*], [WM_OSDEP="bsd" ; CPPFLAGS="$CPPFLAGS -DOPENBSD"],
252 [*-*-dragonfly*], [WM_OSDEP="bsd" ; CPPFLAGS="$CPPFLAGS -DDRAGONFLYBSD"],
253 [*-apple-darwin*], [WM_OSDEP="darwin"],
254 [*-*-solaris*], [WM_OSDEP="stub"], dnl solaris.c when done
256 AM_CONDITIONAL([WM_OSDEP_LINUX], [test "x$WM_OSDEP" = "xlinux"])
257 AM_CONDITIONAL([WM_OSDEP_BSD], [test "x$WM_OSDEP" = "xbsd"])
258 AM_CONDITIONAL([WM_OSDEP_DARWIN], [test "x$WM_OSDEP" = "xdarwin"])
259 AM_CONDITIONAL([WM_OSDEP_GENERIC], [test "x$WM_OSDEP" = "xstub"])
265 dnl move this earlier in the script... anyone know why this is handled
266 dnl in such a bizarre way?
268 test "x$prefix" = xNONE && prefix=$ac_default_prefix
269 dnl Let make expand exec_prefix.
270 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
273 _bindir=`eval echo $bindir`
274 _bindir=`eval echo $_bindir`
276 lib_search_path='-L${libdir}'
278 inc_search_path='-I${includedir}'
280 dnl ===============================================
281 dnl Specify paths to look for libraries and headers
282 dnl ===============================================
283 AC_ARG_WITH(libs-from, AS_HELP_STRING([--with-libs-from], [pass compiler flags to look for libraries]),
284 [lib_search_path="$withval $lib_search_path"])
286 AC_ARG_WITH(incs-from, AS_HELP_STRING([--with-incs-from], [pass compiler flags to look for header files]),
287 [inc_search_path="$withval $inc_search_path"])
290 dnl Features Configuration
291 dnl ======================
292 AC_ARG_ENABLE([mwm-hints],
293 [AS_HELP_STRING([--disable-mwm-hints], [disable support for Motif WM hints @<:@default=enabled@:>@])],
294 [AS_CASE(["$enableval"],
296 [AC_MSG_ERROR([bad value $enableval for --enable-mwm-hints])])],
297 [enable_mwm_hints="yes"])
298 AS_IF([test "x$enable_mwm_hints" = "xno"],
299 [unsupported="$unsupported MWMHints"],
300 [AC_DEFINE([USE_MWM_HINTS], [1], [Defined when used did not request to disable Motif WM hints])
301 supported_core="$supported_core MWMHints"])
302 AM_CONDITIONAL([USE_MWM_HINTS], [test "x$enable_mwm_hints" != "xno"])
307 AC_ARG_ENABLE([boehm-gc],
308 [AS_HELP_STRING([--enable-boehm-gc], [use Boehm GC instead of the default libc malloc() [default=no]])],
309 [AS_CASE(["$enableval"],
310 [yes], [with_boehm_gc=yes],
311 [no], [with_boehm_gc=no],
312 [AC_MSG_ERROR([bad value $enableval for --enable-boehm-gc])] )],
314 AS_IF([test "x$with_boehm_gc" = "xyes"],
315 AC_SEARCH_LIBS([GC_malloc], [gc],
316 [AC_DEFINE(USE_BOEHM_GC, 1, [Define if Boehm GC is to be used])],
317 [AC_MSG_FAILURE([--enable-boehm-gc specified but test for libgc failed])]))
322 AC_ARG_ENABLE([lcov],
323 [AS_HELP_STRING([--enable-lcov[=output-directory]], [enable coverage data generation using LCOV (GCC only) [default=no]])],
327 AS_IF([test "x$enable_lcov" != "xno"],
328 [AX_CFLAGS_GCC_OPTION(-fprofile-arcs -ftest-coverage)
329 AS_IF([test "x$enable_lcov" = "xyes"],
330 [lcov_output_directory="coverage-report"],
331 [lcov_output_directory="${enable_lcov}/coverage-report"])
332 AC_SUBST(lcov_output_directory)])
334 AM_CONDITIONAL([USE_LCOV], [test "x$enable_lcov" != "xno"])
337 dnl ============================
338 dnl Checks for library functions
339 dnl ============================
342 WM_FUNC_SECURE_GETENV
343 AC_CHECK_FUNCS(gethostname select poll strcasecmp strncasecmp \
344 setsid mallinfo mkstemp sysconf)
345 AC_SEARCH_LIBS([strerror], [cposix])
347 dnl nanosleep is generally available in standard libc, although not always the
348 dnl case. One known example is Solaris which needs -lrt
349 AC_SEARCH_LIBS([nanosleep], [rt], [],
350 [AC_MSG_ERROR([function 'nanosleep' not found, please report to wmaker-dev@lists.windowmaker.org])])
352 dnl the flag 'O_NOFOLLOW' for 'open' is used in WINGs
353 WM_FUNC_OPEN_NOFOLLOW
356 dnl Check for strlcat/strlcpy
357 dnl =========================
358 AC_ARG_WITH([libbsd],
359 [AS_HELP_STRING([--without-libbsd], [do not use libbsd for strlcat and strlcpy [default=check]])],
360 [AS_IF([test "x$with_libbsd" != "xno"],
367 AC_SEARCH_LIBS([strlcat],[$with_libbsd],
368 [AC_DEFINE(HAVE_STRLCAT, 1, [Define if strlcat is available])],
372 AC_SEARCH_LIBS([strlcpy],[$with_libbsd],
373 [AC_DEFINE(HAVE_STRLCAT, 1, [Define if strlcpy is available])],
380 AS_IF([test "x$ac_cv_search_strlcat" = "x-lbsd" -o "x$ac_cv_search_strlcpy" = "x-lbsd"],
382 AC_CHECK_HEADERS([bsd/string.h])]
387 dnl Check for OpenBSD kernel memory interface - kvm(3)
388 dnl ==================================================
389 AS_IF([test "x$WM_OSDEP" = "xbsd"],
390 AC_SEARCH_LIBS([kvm_openfiles], [kvm]) )
393 dnl Check for inotify
394 dnl =================
395 dnl It is used by WindowMaker to reload automatically the configuration when the
396 dnl user changed it using WPref or wdwrite
397 AC_CHECK_HEADERS([sys/inotify.h],
398 [AC_DEFINE([HAVE_INOTIFY], [1], [Check for inotify])])
403 dnl It is used by WUtil to log the wwarning, werror and wfatal
404 AC_CHECK_HEADERS([syslog.h], [AC_DEFINE([HAVE_SYSLOG], [1], [Check for syslog])])
407 dnl Checks for header files
408 dnl =======================
411 AC_CHECK_HEADERS(fcntl.h limits.h sys/ioctl.h libintl.h poll.h malloc.h ctype.h \
415 dnl Checks for typedefs, structures, and compiler characteristics
416 dnl =============================================================
427 AC_CHECK_PROG([PKGCONFIG], [pkg-config], [pkg-config])
431 dnl Internationalization
432 dnl ====================
433 dnl Detect the language for translations to be installed and check
434 dnl that the gettext environment works
437 WM_I18N_MENUTEXTDOMAIN
439 dnl 2014/12/29: The option is deprecated, we should keep this message for at
440 dnl least 2 years to ensure users see it and update their build scripts
441 AC_ARG_WITH([nlsdir], [],
442 [AC_MSG_ERROR([option '--with-nlsdir' is deprecated, please use autoconf's standard '--localedir' instead])])
445 dnl ===========================================
446 dnl Stuff that uses X
447 dnl ===========================================
451 AS_IF([test "x$no_x" = "xyes"],
452 [AC_MSG_ERROR([The path for the X11 files not found!
453 Make sure you have X and it's headers and libraries (the -devel packages
454 in Linux) installed.])])
456 X_LIBRARY_PATH=$x_libraries
459 XLIBS="-lX11 $X_EXTRA_LIBS"
461 lib_search_path="$lib_search_path $XLFLAGS"
462 inc_search_path="$inc_search_path $XCFLAGS"
464 AC_SUBST(X_LIBRARY_PATH)
467 dnl Decide which locale function to use, setlocale() or _Xsetlocale()
468 dnl by MANOME Tomonori
469 dnl ===========================================
474 dnl Check whether XInternAtoms() exist
475 dnl ==================================
476 AC_CHECK_LIB([X11], [XInternAtoms],
477 [AC_DEFINE([HAVE_XINTERNATOMS], [1],
478 [define if your X server has XInternAtoms() (set by configure)])],
479 [], [$XLFLAGS $XLIBS])
482 dnl Check whether XConvertCase() exist
483 dnl ==================================
484 AC_CHECK_LIB([X11], [XConvertCase],
485 [AC_DEFINE([HAVE_XCONVERTCASE], [1],
486 [define if your X server has XConvertCase() (set by configure)])],
487 [], [$XLFLAGS $XLIBS])
490 dnl XKB keyboard language status
491 dnl ============================
492 AC_ARG_ENABLE([modelock],
493 [AS_HELP_STRING([--enable-modelock], [XKB keyboard language status support])],
494 [AS_CASE([$enableval],
496 [AC_MSG_ERROR([bad value '$enableval' for --enable-modelock])])],
497 [enable_modelock=no])
498 AS_IF([test "x$enable_modelock" = "xyes"],
499 [AC_DEFINE([XKB_MODELOCK], [1], [whether XKB language MODELOCK should be enabled]) ])
502 dnl XDND Drag-nd-Drop support
503 dnl =========================
504 AC_ARG_ENABLE([xdnd],
505 [AS_HELP_STRING([--disable-xdnd], [disable support for Drag-and-Drop on the dock @<:@default=enabled@:>@])],
506 [AS_CASE(["$enableval"],
508 [AC_MSG_ERROR([bad value $enableval for --disable-xdnd]) ]) ],
510 AS_IF([test "x$enable_xdnd" = "xyes"],
511 [supported_core="$supported_core XDnD"
512 AC_DEFINE([USE_DOCK_XDND], [1], [whether Drag-and-Drop on the dock should be enabled])],
513 [unsupported="$unsupported XDnd"])
514 AM_CONDITIONAL([USE_DOCK_XDND], [test "x$enable_dock_xdnd" != "xno"])
519 AC_ARG_ENABLE([shape],
520 [AS_HELP_STRING([--disable-shape], [disable shaped window extension support])],
521 [AS_CASE(["$enableval"],
523 [AC_MSG_ERROR([bad value $enableval for --enable-shape]) ]) ],
531 [AS_HELP_STRING([--disable-shm], [disable usage of MIT-SHM extension])],
532 [AS_CASE(["$enableval"],
534 [AC_MSG_ERROR([bad value $enableval for --enable-shm]) ]) ],
539 dnl X Misceleanous Utility
540 dnl ======================
541 dnl the libXmu is used in WRaster
547 AC_ARG_ENABLE([xinerama],
548 [AS_HELP_STRING([--enable-xinerama], [enable Xinerama extension support])],
549 [AS_CASE(["$enableval"],
551 [AC_MSG_ERROR([bad value $enableval for --enable-xinerama]) ]) ],
552 [enable_xinerama=auto])
553 WM_XEXT_CHECK_XINERAMA
558 AC_ARG_ENABLE([randr],
559 [AS_HELP_STRING([--enable-randr], [enable RandR extension support (NOT recommended, buggy)])],
560 [AS_CASE(["$enableval"],
562 [AC_MSG_ERROR([bad value $enableval for --enable-randr]) ]) ],
569 dnl libWINGS uses math functions, check whether usage requires linking
576 dnl libWINGS uses FcPatternDel from libfontconfig
577 AC_MSG_CHECKING([for fontconfig library])
578 FCLIBS=`$PKGCONFIG fontconfig --libs`
579 if test "x$FCLIBS" = "x" ; then
580 AC_MSG_RESULT([not found])
582 AC_MSG_RESULT([found])
587 dnl Xft2 antialiased font support
588 dnl =============================
593 if test "x$PKGCONFIG" != x -a "`$PKGCONFIG xft; echo $?`" = 0; then
594 XFTCONFIG="$PKGCONFIG xft"
597 AC_CHECK_PROG(XFTCONFIG, xft-config, xft-config)
600 AC_MSG_CHECKING([for the Xft2 library])
602 if test "x$XFTCONFIG" != x; then
603 XFTLIBS=`$XFTCONFIG --libs`
604 XFTFLAGS=`$XFTCONFIG --cflags`
605 AC_MSG_RESULT([found])
607 AC_MSG_RESULT([not found])
609 echo "ERROR!!! libXft2 is not installed or could not be found."
610 echo " Xft2 is a requirement for building Window Maker."
611 echo " Please install it (along with fontconfig) before continuing."
620 dnl The macro below will use $XFTFLAGS (defined above) to find Xft.h
622 WM_CHECK_XFT_VERSION($minXFT, goodxft=yes, goodxft=no)
624 if test "$goodxft" = no; then
626 echo "ERROR!!! libXft on this system is an old version."
627 echo " Please consider upgrading to at least version ${minXFT}."
638 AC_ARG_ENABLE(pango, AS_HELP_STRING([--enable-pango], [enable Pango text layout support]),
639 pango=$enableval, pango=no)
643 if test "$pango" = yes; then
644 PANGOLIBS=`$PKGCONFIG pangoxft --libs`
645 PANGOFLAGS=`$PKGCONFIG pangoxft --cflags`
646 if test "x$PANGOLIBS" = "x" ; then
647 AC_MSG_RESULT([not found])
649 AC_DEFINE(USE_PANGO, 1, [Define if Pango is to be used])
650 AC_MSG_RESULT([found])
653 inc_search_path="$inc_search_path $PANGOFLAGS"
656 dnl ==============================================
657 dnl Graphic Format Libraries
658 dnl ==============================================
663 [AS_HELP_STRING([--disable-xpm], [disable use of XPM pixmaps through libXpm])],
664 [AS_CASE(["$enableval"],
666 [AC_MSG_ERROR([bad value $enableval for --enable-xpm])] )],
676 AC_SUBST(X_EXTRA_LIBS)
678 dnl ===============================================
679 dnl End of stuff that uses X
680 dnl ===============================================
685 AS_IF([test "x$LIBEXIF" != "x"],
686 [AC_DEFINE(HAVE_EXIF, 1, [Define if EXIF can be used])])
692 [AS_HELP_STRING([--disable-png], [disable PNG support through libpng])],
693 [AS_CASE(["$enableval"],
695 [AC_MSG_ERROR([bad value $enableval for --enable-png])] )],
702 AC_ARG_ENABLE([jpeg],
703 [AS_HELP_STRING([--disable-jpeg], [disable JPEG support through libjpeg])],
704 [AS_CASE(["$enableval"],
706 [AC_MSG_ERROR([bad value $enableval for --enable-jpeg])] )],
714 [AS_HELP_STRING([--disable-gif], [disable GIF support through libgif or libungif])],
715 [AS_CASE(["$enableval"],
717 [AC_MSG_ERROR([bad value $enableval for --enable-gif])] )],
724 AC_ARG_ENABLE([tiff],
725 [AS_HELP_STRING([--disable-tiff], [disable use of TIFF images through libtiff])],
726 [AS_CASE(["$enableval"],
728 [AC_MSG_ERROR([bad value $enableval for --enable-tiff])] )],
735 AC_ARG_ENABLE([webp],
736 [AS_HELP_STRING([--disable-webp], [disable WEBP support through libwebp])],
737 [AS_CASE(["$enableval"],
739 [AC_MSG_ERROR([bad value $enableval for --enable-webp])] )],
746 AC_ARG_ENABLE([magick],
747 [AS_HELP_STRING([--disable-magick], [disable MAGICK support through libMagickWand])],
748 [AS_CASE(["$enableval"],
750 [AC_MSG_ERROR([bad value $enableval for --enable-magick])] )],
751 [enable_magick=auto])
752 WM_IMGFMT_CHECK_MAGICK
757 # The PPM format is always enabled because we have built-in support for the format
758 # We are not using any external library like libppm
759 supported_gfx="$supported_gfx builtin-PPM"
762 # Choice of the default format for icons
763 AS_IF([test "x$enable_tiff" != "xno"],
768 LIBRARY_SEARCH_PATH="$lib_search_path"
769 HEADER_SEARCH_PATH="$inc_search_path"
771 AC_SUBST(LIBRARY_SEARCH_PATH)
772 AC_SUBST(HEADER_SEARCH_PATH)
777 AM_CONDITIONAL([ICON_EXT_XPM], [test "x$ICONEXT" = "xxpm"])
778 AM_CONDITIONAL([ICON_EXT_TIFF], [test "x$ICONEXT" = "xtiff"])
781 dnl ==============================================
782 dnl End of Graphic Format Libraries
783 dnl ==============================================
787 dnl stdlib.h is checked here, because of conflict in jpeglib.h
788 AC_CHECK_HEADERS(stdlib.h)
791 dnl Support for PIXMAPDIR option
792 dnl ============================
793 AC_ARG_WITH([pixmapdir],
794 [AS_HELP_STRING([--with-pixmapdir=PATH], [specify where pixmaps are located [DATADIR/pixmaps]])],
796 [yes|no], [AC_MSG_ERROR([bad value '$withval' for --with-pixmapdir, expected a path]) ],
797 [/*], [], dnl Absolute path, ok
798 [\$*], [], dnl Assumes it starts with a reference to $prefix or a similar variable, ok
799 [AC_MSG_ERROR([bad path '$withval' for pixmapdir, expecting an absolute path])])],
802 AS_IF([test "x$with_pixmapdir" != "x"],
803 [pixmapdir="$with_pixmapdir"],
804 [pixmapdir='${datadir}/pixmaps'])
805 AC_SUBST([pixmapdir])dnl
808 dnl Support for GNUSTEP_LOCAL_ROOT, for WPrefs.app
809 dnl ==============================================
810 AC_ARG_WITH([gnustepdir],
811 [AS_HELP_STRING([--with-gnustepdir=PATH], [specify the directory for GNUstep applications])],
813 [yes|no], [AC_MSG_ERROR([bad value '$withval' for --with-gnustepdir, expected a path]) ],
814 [/*], [], dnl Absolute path, ok
815 [\$*], [], dnl Assumes it starts with a reference to $prefix or a similar variable, ok
816 [AC_MSG_ERROR([bad path '$withval' for gnustepdir, expecting an absolute path])])],
817 [dnl If no command-line option was given, we use $GNUSTEP_LOCAL_ROOT if it was set
818 with_gnustepdir="$GNUSTEP_LOCAL_ROOT"])
820 AS_IF([test "x$with_gnustepdir" = "x"],
821 [dnl No path specified, use default
822 wprefs_base_dir=${prefix}
823 wprefs_datadir="${datadir}/WPrefs"
824 wprefs_bindir="${bindir}"],
825 [dnl User specified base path
826 wprefs_base_dir="$with_gnustepdir/Applications"
827 wprefs_datadir="$wprefs_base_dir/WPrefs.app"
828 wprefs_bindir="$wprefs_base_dir/WPrefs.app"])
829 AC_SUBST([wprefs_datadir])dnl
830 AC_SUBST([wprefs_bindir])dnl
833 dnl Enable User Defined Menu thing
834 dnl ==============================
835 AC_ARG_ENABLE([usermenu],
836 [AS_HELP_STRING([--enable-usermenu], [user defined menus for applications])],
837 [AS_CASE([$enableval],
839 [AC_MSG_ERROR([bad value '$enableval' for --enable-usermenu])])],
840 [enable_usermenu=no])
841 AS_IF([test "x$enable_usermenu" = "xyes"],
842 [AC_DEFINE([USER_MENU], [1],
843 [define if you want user defined menus for applications])])
846 dnl Support for removing non-public symbols from a library
847 dnl ======================================================
851 dnl Add the post-poned compilation options
852 dnl ======================================
853 WM_CFLAGS_GCC_OPTION_POSTPONED
856 AC_SUBST(lib_search_path)
857 AC_SUBST(inc_search_path)
860 dnl Spit out the configuration
861 dnl ==========================
870 WINGs/Makefile WINGs/WINGs/Makefile WINGs/po/Makefile
871 WINGs/Documentation/Makefile WINGs/Resources/Makefile WINGs/Extras/Makefile
872 WINGs/Examples/Makefile WINGs/Tests/Makefile
874 dnl Window Maker's core
875 src/Makefile src/wconfig.h po/Makefile
876 doc/Makefile doc/build/Makefile
877 doc/sk/Makefile doc/cs/Makefile doc/ru/Makefile
878 WindowMaker/Makefile WindowMaker/Backgrounds/Makefile
879 WindowMaker/Defaults/Makefile WindowMaker/IconSets/Makefile
880 WindowMaker/Icons/Makefile WindowMaker/Pixmaps/Makefile
881 WindowMaker/Styles/Makefile WindowMaker/Themes/Makefile
884 WPrefs.app/Makefile WPrefs.app/po/Makefile
885 WPrefs.app/tiff/Makefile WPrefs.app/xpm/Makefile
887 dnl Command-line utilities
888 util/Makefile util/po/Makefile
890 dnl Misceleanous stuff
898 dnl Provide a summary of the config
899 dnl ===============================
901 echo "Window Maker was configured as follows:"
903 echo "Installation path prefix : $prefix"
904 echo "Installation path for binaries : $_bindir"
905 echo "Installation path for libraries : $libdir"
906 echo "Installation path for WPrefs.app : $wprefs_base_dir" | sed -e 's|\${prefix}|'"$prefix|"
907 echo "Supported core features: :$supported_core"
908 echo "Supported X extensions: :$supported_xext"
909 echo "Supported graphic format libraries :$supported_gfx"
910 echo "Unsupported features :$unsupported"
911 echo "Antialiased text support in WINGs : $xft"
912 echo "Pango text layout support in WINGs : $pango"
913 echo "Translated languages to support :$supported_locales"
914 AS_IF([test "x$debug" = "xyes"],
915 [AS_ECHO(["Debug enabled: CFLAGS = $CFLAGS"]) ])
918 AS_IF([test "x$wm_cv_prog_cc_nestedfunc" != "xyes"],
919 [AC_MSG_WARN([[Your compiler does not support Nested Function, work-around enabled]])])
921 AS_IF([test "x$supported_locales" = "x"],
922 [AC_MSG_WARN([[No language from \$LINGUAS are supported]])])
924 AS_IF([test "x$enable_jpeg" = xno], [dnl
925 AS_ECHO(["WARNING WARNING WARNING WARNING WARNING WARNING WARNING"])
927 AS_ECHO(["JPEG support will not be included because the JPEG library is"])
928 AS_ECHO(["not installed correctly or was not found. Background images"])
929 AS_ECHO(["from themes will not display as they usually are JPEG files."])
931 AS_ECHO(["To fix, download and install the jpeg library and/or make sure you"])
932 AS_ECHO(["installed all jpeg related packages, SPECIALLY the development packages"])
933 AS_ECHO(["like jpeg-dev (if you use some prepackaged version of libjpeg)."])
935 AS_ECHO(["WARNING WARNING WARNING WARNING WARNING WARNING WARNING"])dnl
939 dnl This is for Emacs. I'm lazy, I know... (nicolai)
940 dnl ================================================
942 dnl compile-command: "autoconf"