wmaker: update src/action.c coding style
[wmaker-crm.git] / configure.ac
blob8eea85285fc2e48102d99c1d5e31cf2f3e492ed4
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.5, , 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])
161 dnl Posix thread
162 dnl =================
163 AX_PTHREAD
166 dnl Tracking on what is detected for final status
167 dnl =============================================
168 unsupported=""
169 supported_xext=""
170 supported_gfx=""
173 dnl Platform-specific Makefile setup
174 dnl ================================
175 AS_CASE(["$host"],
176     [*-*-linux*|*-*-cygwin*|*-gnu*], [WM_OSDEP="linux" ; CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=600"],
177     [*-*-freebsd*|*-k*bsd-gnu*],     [WM_OSDEP="bsd"   ; CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=600 -DFREEBSD"],
178     [*-*-netbsd*],                   [WM_OSDEP="bsd"   ; CPPFLAGS="$CPPFLAGS -DNETBSD"],
179     [*-*-openbsd*],                  [WM_OSDEP="bsd"   ; CPPFLAGS="$CPPFLAGS -DOPENBSD"],
180     [*-*-dragonfly*],                [WM_OSDEP="bsd"   ; CPPFLAGS="$CPPFLAGS -DDRAGONFLYBSD"],
181     [*-apple-darwin*],               [WM_OSDEP="darwin"],
182     [*-*-solaris*],                  [WM_OSDEP="stub"],  dnl  solaris.c when done
183     [WM_OSDEP="stub"])
184 AM_CONDITIONAL([WM_OSDEP_LINUX],   [test "x$WM_OSDEP" = "xlinux"])
185 AM_CONDITIONAL([WM_OSDEP_BSD],     [test "x$WM_OSDEP" = "xbsd"])
186 AM_CONDITIONAL([WM_OSDEP_DARWIN],  [test "x$WM_OSDEP" = "xdarwin"])
187 AM_CONDITIONAL([WM_OSDEP_GENERIC], [test "x$WM_OSDEP" = "xstub"])
190 dnl the prefix
191 dnl ==========
193 dnl move this earlier in the script... anyone know why this is handled
194 dnl in such a bizarre way?
196 test "x$prefix" = xNONE && prefix=$ac_default_prefix
197 dnl Let make expand exec_prefix.
198 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
201 _bindir=`eval echo $bindir`
202 _bindir=`eval echo $_bindir`
204 lib_search_path='-L${libdir}'
206 inc_search_path='-I${includedir}'
208 dnl ===============================================
209 dnl Specify paths to look for libraries and headers
210 dnl ===============================================
211 AC_ARG_WITH(libs-from, AS_HELP_STRING([--with-libs-from], [pass compiler flags to look for libraries]),
212         [lib_search_path="$withval $lib_search_path"])
214 AC_ARG_WITH(incs-from, AS_HELP_STRING([--with-incs-from], [pass compiler flags to look for header files]),
215         [inc_search_path="$withval $inc_search_path"])
218 dnl Boehm GC
219 dnl ========
220 AC_ARG_ENABLE([boehm-gc],
221     [AS_HELP_STRING([--enable-boehm-gc], [use Boehm GC instead of the default libc malloc() [default=no]])],
222     [AS_CASE(["$enableval"],
223         [yes], [with_boehm_gc=yes],
224         [no],  [with_boehm_gc=no],
225         [AC_MSG_ERROR([bad value $enableval for --enable-boehm-gc])] )],
226     [with_boehm_gc=no])
227 AS_IF([test "x$with_boehm_gc" = "xyes"],
228     AC_SEARCH_LIBS([GC_malloc], [gc],
229         [AC_DEFINE(USE_BOEHM_GC, 1, [Define if Boehm GC is to be used])],
230         [AC_MSG_FAILURE([--enable-boehm-gc specified but test for libgc failed])]))
233 dnl LCOV
234 dnl ====
235 AC_ARG_ENABLE([lcov],
236     [AS_HELP_STRING([--enable-lcov[=output-directory]], [enable coverage data generation using LCOV (GCC only) [default=no]])],
237     [],
238     [enable_lcov=no])
240 AS_IF([test "x$enable_lcov" != "xno"],
241     [AX_CFLAGS_GCC_OPTION(-fprofile-arcs -ftest-coverage)
242     AS_IF([test "x$enable_lcov" = "xyes"],
243         [lcov_output_directory="coverage-report"],
244         [lcov_output_directory="${enable_lcov}/coverage-report"])
245     AC_SUBST(lcov_output_directory)])
247 AM_CONDITIONAL([USE_LCOV], [test "x$enable_lcov" != "xno"])
250 dnl ============================
251 dnl Checks for library functions
252 dnl ============================
253 dnl not used anywhere
254 AC_FUNC_MEMCMP
255 AC_FUNC_VPRINTF
256 WM_FUNC_SECURE_GETENV
257 AC_CHECK_FUNCS(gethostname select poll strcasecmp strncasecmp \
258                setsid mallinfo mkstemp sysconf)
259 AC_SEARCH_LIBS([strerror], [cposix])
261 dnl Check for strlcat/strlcpy
262 dnl =========================
263 AC_ARG_WITH([libbsd],
264   [AS_HELP_STRING([--without-libbsd], [do not use libbsd for strlcat and strlcpy [default=check]])],
265   [AS_IF([test "x$with_libbsd" != "xno"],
266     [with_libbsd=bsd]
267     [with_libbsd=]
268   )],
269   [with_libbsd=bsd])
271 tmp_libs=$LIBS
272 AC_SEARCH_LIBS([strlcat],[$with_libbsd],
273   [AC_DEFINE(HAVE_STRLCAT, 1, [Define if strlcat is available])],
274   [],
275   []
277 AC_SEARCH_LIBS([strlcpy],[$with_libbsd],
278   [AC_DEFINE(HAVE_STRLCAT, 1, [Define if strlcpy is available])],
279   [],
280   []
282 LIBS=$tmp_libs
284 LIBBSD=
285 AS_IF([test "x$ac_cv_search_strlcat" = "x-lbsd" -o "x$ac_cv_search_strlcpy" = "x-lbsd"],
286   [LIBBSD=-lbsd
287    AC_CHECK_HEADERS([bsd/string.h])]
289 AC_SUBST(LIBBSD)
291 dnl Check for OpenBSD kernel memory interface - kvm(3)
292 dnl ==================================================
293 AS_IF([test "x$WM_OSDEP" = "xbsd"],
294   AC_SEARCH_LIBS([kvm_openfiles], [kvm]) )
296 dnl Check for inotify
297 dnl =================
298 AC_CHECK_HEADERS(sys/inotify.h, AC_DEFINE(HAVE_INOTIFY, 1, Check for inotify))
301 dnl Check for syslog 
302 dnl =================
303 AC_CHECK_HEADERS([syslog.h], [AC_DEFINE([HAVE_SYSLOG], [1], [Check for syslog])])
306 dnl Checks for header files.
307 dnl =======================
308 AC_HEADER_SYS_WAIT
309 AC_HEADER_TIME
310 AC_CHECK_HEADERS(fcntl.h limits.h sys/ioctl.h libintl.h poll.h malloc.h ctype.h \
311                  string.h strings.h)
314 dnl Checks for typedefs, structures, and compiler characteristics.
315 dnl ==============================================================
316 AC_DECL_SYS_SIGLIST
317 AC_C_CONST
318 AC_C_INLINE
319 WM_C_NORETURN
320 AC_TYPE_SIZE_T
321 AC_TYPE_PID_T
322 AC_TYPE_SIGNAL
325 dnl pkg-config
326 dnl ==========
327 dnl AC_ARG_VAR(PKGCONFIG, [pkg-config command])
328 AC_CHECK_PROG(PKGCONFIG, pkg-config, pkg-config) 
330 dnl gettext
331 dnl =======
333 dnl AM_GNU_GETTEXT
335 INTLIBS=""
337 AC_CHECK_FUNC(gettext, [HAVEGETTEXT="yes"], 
338         AC_CHECK_LIB(intl, gettext, [INTLIBS="-lintl" HAVEGETTEXT="yes"],
339                          INTLIBS="" ))
341 AC_CHECK_PROG(XGETTEXT, xgettext, xgettext)
343 if test "$XGETTEXT" != ""; then 
344     if $XGETTEXT --help 2>&1 | grep illegal >/dev/null ; then
345         echo "xgettext isn't GNU version"
346         XGETTEXT=""
347     fi
350 if test "$LINGUAS" != ""; then
351     if test "$XGETTEXT" != "" -a "$HAVEGETTEXT" != ""; then
352         AC_DEFINE(I18N, 1, [Internationalization (I18N) support (set by configure)])
353         PO=""
354         echo "xgettext and gettext() exist; will build i18n support for $LINGUAS"
355     else
356         LINGUAS=""
357         PO=""
358         echo "xgettext and libintl.a don't both exist; will not build i18n support"
359     fi
360 else
361         INTLIBS=""
362         MOFILES=""
363         WPMOFILES=""
364         UTILMOFILES=""
365         PO=""
369 dnl The Tower of Babel
370 dnl ==================
372 dnl List of supported locales
373 dnl =========================
374 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"
375 supported_wprefs_locales="bg ca cs de es et fi fr hr hu it ja ko nl pt ru sk zh_CN zh_TW"
376 supported_wings_locales="bg ca cs de fr hu nl sk"
377 supported_util_locales="de es fr nl pt"
379 for lang in $LINGUAS; do
380         ok=0
381         for l in $supported_locales; do
382                 if test "$l" = "$lang"; then
383                         ok=1
384                         break
385                 fi
386         done
387         if test "$ok" = 1; then
388                 MOFILES="$MOFILES $lang.mo"
389         else
390                 echo "Locale $lang is not supported."
391         fi
392         ok=0
393         for l in $supported_wprefs_locales; do
394                 if test "$l" = "$lang"; then
395                         ok=1
396                         break
397                 fi
398         done
399         if test "$ok" = 1; then
400                 WPMOFILES="$WPMOFILES $lang.mo"
401         fi
402         ok=0
403         for l in $supported_util_locales; do
404                 if test "$l" = "$lang"; then
405                         ok=1
406                         break
407                 fi
408         done
409         if test "$ok" = 1; then
410                 UTILMOFILES="$UTILMOFILES $lang.mo"
411         fi
412         ok=0
413         for l in $supported_wings_locales; do
414                 if test "$l" = "$lang"; then
415                         ok=1
416                         break
417                 fi
418         done
419         if test "$ok" = 1; then
420                 WINGSMOFILES="$WINGSMOFILES $lang.mo"
421         fi
422 done
425 dnl Added by Oliver - Support for NLSDIR option
426 dnl ===========================================
427 AC_ARG_WITH(nlsdir, AS_HELP_STRING([--with-nlsdir=PATH], [specify where the locale stuff should go]))
429 if test "x$NLSDIR" = "x"; then
430         if test "x$with_nlsdir" != "x"; then
431                 NLSDIR=$with_nlsdir
432         else
433                 NLSDIR='$(prefix)/lib/locale'
434         fi
437 menutextdomain=
438 AC_ARG_WITH(menu-textdomain, AS_HELP_STRING([--with-menu-textdomain=DOMAIN], [specify gettext domain used for menu translations]),
439         [if test "x$withval" != "xno"; then
440          menutextdomain=$withval
441          fi])
442 AC_SUBST(menutextdomain)
444 AC_SUBST(INTLIBS)
445 AC_SUBST(NLSDIR)
446 AC_SUBST(MOFILES)
447 AC_SUBST(WPMOFILES)
448 AC_SUBST(UTILMOFILES)
449 AC_SUBST(WINGSMOFILES)
450 AC_SUBST(supported_locales)
452 dnl ===========================================
453 dnl             Stuff that uses X
454 dnl ===========================================
456 AC_PATH_XTRA
458 if test $no_x; then
459     AC_MSG_ERROR([The path for the X11 files not found!
460 Make sure you have X and it's headers and libraries (the -devel packages
461 in Linux) installed.])
464 X_LIBRARY_PATH=$x_libraries
465 XCFLAGS="$X_CFLAGS"
466 XLFLAGS="$X_LIBS"
467 XLIBS="-lX11 $X_EXTRA_LIBS"
469 lib_search_path="$lib_search_path $XLFLAGS"
470 inc_search_path="$inc_search_path $XCFLAGS"
472 AC_SUBST(X_LIBRARY_PATH)
474 dnl Decide which locale function to use, setlocale() or _Xsetlocale()
475 dnl by MANOME Tomonori 
476 dnl ===========================================
477 use_locale=yes
478 AC_ARG_ENABLE(locale, AS_HELP_STRING([--disable-locale], [disable use of X locale support]),
479               use_locale=no)
481 if test "$use_locale" = yes; then
482         AC_CHECK_LIB(X11, _Xsetlocale,
483                 AC_DEFINE(X_LOCALE, 1, [define if you want support for X window's X_LOCALE (set by configure)]),,
484                 $XLFLAGS $XLIBS)
487 dnl Check whether XInternAtoms() exist
488 dnl ==================================
489 AC_CHECK_LIB(X11, XInternAtoms, 
490              AC_DEFINE(HAVE_XINTERNATOMS, 1, [define if your X server has XInternAtoms() (set by configure)]),,
491              $XLFLAGS $XLIBS)
493 dnl Check whether XConvertCase() exist
494 dnl ==================================
495 AC_CHECK_LIB(X11, XConvertCase, 
496              AC_DEFINE(HAVE_XCONVERTCASE, 1, [define if your X server has XConvertCase() (set by configure)]),,
497              $XLFLAGS $XLIBS)
499 dnl XKB keyboard language status
500 dnl ============================
501 AC_ARG_ENABLE(modelock, AS_HELP_STRING([--enable-modelock], [XKB keyboard language status support]),
502                 AC_DEFINE(XKB_MODELOCK, 1, [whether XKB language MODELOCK should be enabled]))
504 dnl XDND Drag-nd-Drop support
505 dnl ============================
506 AC_ARG_ENABLE([xdnd],
507     [AS_HELP_STRING([--disable-xdnd], [disable Drag-nd-Drop support])],
508     [AS_CASE(["$enableval"],
509         [yes|no], [],
510         [AC_MSG_ERROR([bad value $enableval for --disable-xdnd]) ]) ],
511     [enable_xdnd=yes
512   supported_xext="$supported_xext XDnD"
513   AC_DEFINE(XDND, 1, [whether Drag-nd-Drop support should be enabled])
516 dnl XShape support
517 dnl ==============
518 AC_ARG_ENABLE([shape],
519     [AS_HELP_STRING([--disable-shape], [disable shaped window extension support])],
520     [AS_CASE(["$enableval"],
521         [yes|no], [],
522         [AC_MSG_ERROR([bad value $enableval for --enable-shape]) ]) ],
523     [enable_shape=auto])
524 WM_XEXT_CHECK_XSHAPE
526 dnl MIT-SHM support
527 dnl ===============
528 AC_ARG_ENABLE([shm],
529     [AS_HELP_STRING([--disable-shm], [disable usage of MIT-SHM extension])],
530     [AS_CASE(["$enableval"],
531         [yes|no], [],
532         [AC_MSG_ERROR([bad value $enableval for --enable-shm]) ]) ],
533     [enable_shm=auto])
534 WM_XEXT_CHECK_XSHM
536 dnl X Misceleanous Utility
537 dnl ======================
538 # the libXmu is used in WRaster
539 WM_EXT_CHECK_XMU
541 dnl XINERAMA support
542 dnl ================
543 AC_ARG_ENABLE([xinerama],
544     [AS_HELP_STRING([--enable-xinerama], [enable Xinerama extension support])],
545     [AS_CASE(["$enableval"],
546         [yes|no], [],
547         [AC_MSG_ERROR([bad value $enableval for --enable-xinerama]) ]) ],
548     [enable_xinerama=auto])
549 WM_XEXT_CHECK_XINERAMA
551 dnl RandR support
552 dnl ==============
553 AC_ARG_ENABLE([randr],
554     [AS_HELP_STRING([--enable-randr], [enable RandR extension support (NOT recommended, buggy)])],
555     [AS_CASE(["$enableval"],
556         [yes|no], [],
557         [AC_MSG_ERROR([bad value $enableval for --enable-randr]) ]) ],
558     [enable_randr=no])
559 WM_XEXT_CHECK_XRANDR
562 dnl libWINGS uses math functions, check whether usage requires linking
563 dnl against libm
565 WM_CHECK_LIBM
568 dnl libWINGS uses FcPatternDel from libfontconfig
570 AC_MSG_CHECKING([for fontconfig library])
571 FCLIBS=`$PKGCONFIG fontconfig --libs`
572 if test "x$FCLIBS" = "x" ; then
573         AC_MSG_RESULT([not found])
574 else
575         AC_MSG_RESULT([found])
577 AC_SUBST(FCLIBS)
580 dnl Xft2 antialiased font support
581 dnl =============================
583 xft=yes
584 XFTLIBS=""
586 if test "x$PKGCONFIG" != x -a "`$PKGCONFIG xft; echo $?`" = 0; then
587         XFTCONFIG="$PKGCONFIG xft"
588         pkgconfig_xft=yes
589 else
590         AC_CHECK_PROG(XFTCONFIG, xft-config, xft-config)
593 AC_MSG_CHECKING([for the Xft2 library])
595 if test "x$XFTCONFIG" != x; then
596         XFTLIBS=`$XFTCONFIG --libs`
597         XFTFLAGS=`$XFTCONFIG --cflags`
598         AC_MSG_RESULT([found])
599 else
600         AC_MSG_RESULT([not found])
601         echo
602         echo "ERROR!!! libXft2 is not installed or could not be found."
603         echo "         Xft2 is a requirement for building Window Maker."
604         echo "         Please install it (along with fontconfig) before continuing."
605         echo
606         exit 1
609 minXFT="2.1.0"
610 goodxft="no"
613 dnl The macro below will use $XFTFLAGS (defined above) to find Xft.h
615 WM_CHECK_XFT_VERSION($minXFT, goodxft=yes, goodxft=no)
617 if test "$goodxft" = no; then
618         echo
619         echo "ERROR!!! libXft on this system is an old version."
620         echo "         Please consider upgrading to at least version ${minXFT}."
621         echo
622         exit 1
625 AC_SUBST(XFTFLAGS)
626 AC_SUBST(XFTLIBS)
629 dnl ==============================================
630 dnl         Graphic Format Libraries
631 dnl ==============================================
633 dnl XPM Support
634 dnl ===========
635 AC_ARG_ENABLE([xpm],
636     [AS_HELP_STRING([--disable-xpm], [disable use of XPM pixmaps through libXpm])],
637     [AS_CASE(["$enableval"],
638         [yes|no], [],
639         [AC_MSG_ERROR([bad value $enableval for --enable-xpm])] )],
640     [enable_xpm=auto])
641 WM_IMGFMT_CHECK_XPM
644 # for wmlib
645 AC_SUBST(XCFLAGS)
646 # for test
647 AC_SUBST(XLFLAGS)
648 AC_SUBST(XLIBS)
649 AC_SUBST(X_EXTRA_LIBS)
651 dnl ===============================================
652 dnl             End of stuff that uses X
653 dnl ===============================================
655 dnl EXIF Support
656 dnl ===========
657 WM_CHECK_LIBEXIF
658 AS_IF([test "x$LIBEXIF" != "x"],
659         [AC_DEFINE(HAVE_EXIF, 1, [Define if EXIF can be used])])
661 dnl PNG Support
662 dnl ===========
663 AC_ARG_ENABLE([png],
664     [AS_HELP_STRING([--disable-png], [disable PNG support through libpng])],
665     [AS_CASE(["$enableval"],
666         [yes|no], [],
667         [AC_MSG_ERROR([bad value $enableval for --enable-png])] )],
668     [enable_png=auto])
669 WM_IMGFMT_CHECK_PNG
672 dnl JPEG Support
673 dnl ============
674 AC_ARG_ENABLE([jpeg],
675     [AS_HELP_STRING([--disable-jpeg], [disable JPEG support through libjpeg])],
676     [AS_CASE(["$enableval"],
677         [yes|no], [],
678         [AC_MSG_ERROR([bad value $enableval for --enable-jpeg])] )],
679     [enable_jpeg=auto])
680 WM_IMGFMT_CHECK_JPEG
683 dnl GIF Support
684 dnl ============
685 AC_ARG_ENABLE(gif,
686     [AS_HELP_STRING([--disable-gif], [disable GIF support through libgif or libungif])],
687     [AS_CASE(["$enableval"],
688         [yes|no], [],
689         [AC_MSG_ERROR([bad value $enableval for --enable-gif])] )],
690     [enable_gif=auto])
691 WM_IMGFMT_CHECK_GIF
694 dnl TIFF Support
695 dnl ============
696 AC_ARG_ENABLE([tiff],
697     [AS_HELP_STRING([--disable-tiff], [disable use of TIFF images through libtiff])],
698     [AS_CASE(["$enableval"],
699         [yes|no], [],
700         [AC_MSG_ERROR([bad value $enableval for --enable-tiff])] )],
701     [enable_tiff=auto])
702 WM_IMGFMT_CHECK_TIFF
705 dnl WEBP Support
706 dnl ===========
707 AC_ARG_ENABLE([webp],
708     [AS_HELP_STRING([--disable-webp], [disable WEBP support through libwebp])],
709     [AS_CASE(["$enableval"],
710         [yes|no], [],
711         [AC_MSG_ERROR([bad value $enableval for --enable-webp])] )],
712     [enable_webp=auto])
713 WM_IMGFMT_CHECK_WEBP
716 dnl MAGICK Support
717 dnl ===========
718 AC_ARG_ENABLE([magick],
719     [AS_HELP_STRING([--disable-magick], [disable MAGICK support through libMagickWand])],
720     [AS_CASE(["$enableval"],
721         [yes|no], [],
722         [AC_MSG_ERROR([bad value $enableval for --enable-magick])] )],
723     [enable_magick=auto])
724 WM_IMGFMT_CHECK_MAGICK
727 dnl PPM Support
728 dnl ===========
729 # The PPM format is always enabled because we have built-in support for the format
730 # We are not using any external library like libppm
731 supported_gfx="$supported_gfx builtin-PPM"
734 # Choice of the default format for icons
735 AS_IF([test "x$enable_tiff" != "xno"],
736     [ICONEXT="tiff"],
737     [ICONEXT="xpm"])
740 LIBRARY_SEARCH_PATH="$lib_search_path"
741 HEADER_SEARCH_PATH="$inc_search_path"
743 AC_SUBST(LIBRARY_SEARCH_PATH)
744 AC_SUBST(HEADER_SEARCH_PATH)
747 AC_SUBST(GFXLIBS)
748 AC_SUBST(ICONEXT)
749 AM_CONDITIONAL([ICON_EXT_XPM],  [test "x$ICONEXT" = "xxpm"])
750 AM_CONDITIONAL([ICON_EXT_TIFF], [test "x$ICONEXT" = "xtiff"])
753 dnl ==============================================
754 dnl         End of Graphic Format Libraries
755 dnl ==============================================
759 dnl stdlib.h is checked here, because of conflict in jpeglib.h
760 AC_CHECK_HEADERS(stdlib.h)
762 # AC_PREFIX_PROGRAM(wmaker)
764 dnl Support for PIXMAPDIR option
765 dnl ============================
766 AC_ARG_WITH(pixmapdir, AS_HELP_STRING([--with-pixmapdir=PATH], [specify where pixmaps are located [DATADIR/pixmaps]]))
768 if test "x$with_pixmapdir" != "x"; then
769         pixmapdir=$with_pixmapdir
770 else
771         pixmapdir='${datadir}/pixmaps'
773 AC_SUBST(pixmapdir)
776 dnl Support for GNUSTEP_LOCAL_ROOT, for WPrefs.app
777 dnl ==============================================
779 AC_ARG_WITH(gnustepdir, AS_HELP_STRING([--with-gnustepdir=PATH], [specify the directory for GNUstep applications]))
781 if test "x`echo $with_gnustepdir | grep ^/`" != "x"; then
782     appspath=$with_gnustepdir
785 if test "x$appspath$GNUSTEP_LOCAL_ROOT" = "x"; then
786     wprefs_base_dir=${prefix}
787     wprefs_datadir="${datadir}/WPrefs"
788     wprefs_bindir="${bindir}"
789 else
790     gnustepdir=$appspath
792     if test "x$GNUSTEP_LOCAL_ROOT" != "x" ; then
793         gnustepdir=`echo "$GNUSTEP_LOCAL_ROOT" | sed -e "s|^${prefix}|prefix|"`
794         gnustepdir=`echo $gnustepdir | sed -e 's|^prefix|${prefix}|'`
795     fi
797     wprefs_base_dir=$gnustepdir/Applications
798     wprefs_datadir=$wprefs_base_dir/WPrefs.app
799     wprefs_bindir=$wprefs_base_dir/WPrefs.app
802 AC_SUBST(wprefs_datadir)
803 AC_SUBST(wprefs_bindir)
806 dnl Enable User Defined Menu thing
807 dnl ==============================
808 AC_ARG_ENABLE(usermenu, AS_HELP_STRING([--enable-usermenu], [user defined menus for applications]),
809 if test "$enableval" = yes; then
810         AC_DEFINE(USER_MENU, 1, [define if you want user defined menus for applications])
814 gl_LD_VERSION_SCRIPT
816 AC_OUTPUT(Makefile po/Makefile util/Makefile util/po/Makefile test/Makefile \
817         WINGs/Makefile WINGs/WINGs/Makefile WINGs/Documentation/Makefile \
818         WINGs/Examples/Makefile WINGs/Resources/Makefile WINGs/Tests/Makefile \
819         WINGs/Extras/Makefile WINGs/po/Makefile \
820         wmlib/Makefile wrlib/Makefile wrlib/tests/Makefile \
821         src/Makefile src/wconfig.h \
822         doc/Makefile doc/sk/Makefile doc/cs/Makefile \
823         doc/ru/Makefile \
824         WindowMaker/Makefile WindowMaker/Backgrounds/Makefile \
825         WindowMaker/Defaults/Makefile WindowMaker/IconSets/Makefile \
826         WindowMaker/Icons/Makefile WindowMaker/Pixmaps/Makefile \
827         WindowMaker/Styles/Makefile WindowMaker/Themes/Makefile \
828         WPrefs.app/Makefile WPrefs.app/tiff/Makefile WPrefs.app/xpm/Makefile \
829         WPrefs.app/po/Makefile )
832 dnl Output some helpful data for compiling wraster and WINGs/WUtil apps
833 dnl ===================================================================
835 dnl echo "WFLAGS=\"$LIBPL_INC_PATH -I$prefix/include\"" > WINGs-flags
836 dnl echo "WLIBS=\"-L$exec_prefix/lib -lWINGs -lwraster $LIBPL_LIBS $GFXLIBS -lm\""\
837 dnl     | sed -e 's|\$(prefix)|'"$prefix|" >> WINGs-flags
839 dnl The #lp# and #rp# stuff below is a hack because [ and ] get lost when
840 dnl parsed by m4
842 AC_SUBST(lib_search_path)
843 AC_SUBST(inc_search_path)
846 dnl Spit out the configuration
847 dnl ==========================
849 if test "x$MOFILES" = "x"; then
850         mof=None
851 else
852         mof=`echo $MOFILES`
855 if test "x$MOFILES" = "x"; then
856         languages=None
857 else
858         languages=`echo $MOFILES | sed 's/.mo//g'`
861 echo
862 echo "Window Maker was configured as follows:"
863 echo
864 echo "Installation path prefix            : $prefix"
865 echo "Installation path for binaries      : $_bindir"
866 echo "Installation path for libraries     : $libdir"
867 echo "Installation path for WPrefs.app    : $wprefs_base_dir" | sed -e 's|\${prefix}|'"$prefix|"
868 echo "Supported X extensions:             :$supported_xext"
869 echo "Supported graphic format libraries  :$supported_gfx"
870 echo "Unsupported features                :$unsupported"
871 echo "Antialiased text support in WINGs   : $xft"
872 echo "Translated message files to install : $mof"
873 dnl echo "Supported languages beside English  : $languages"
874 if test "x$MOFILES" != "x"; then
875         echo "Installation path for translations  : $NLSDIR" | sed -e 's|\$(prefix)|'"$prefix|"
877 AS_IF([test "x$debug" = "xyes"],
878     [AS_ECHO(["Debug enabled: CFLAGS = $CFLAGS"]) ])
879 echo
881 dnl WM_PRINT_REDCRAP_BUG_STATUS
883 AS_IF([test "x$enable_jpeg" = xno], [dnl
884     AS_ECHO(["WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING"])
885     AS_ECHO([])
886     AS_ECHO(["JPEG support will not be included because the JPEG library is"])
887     AS_ECHO(["not installed correctly or was not found. Background images"])
888     AS_ECHO(["from themes will not display as they usually are JPEG files."])
889     AS_ECHO([])
890     AS_ECHO(["To fix, download and install the jpeg library and/or make sure you"])
891     AS_ECHO(["installed all jpeg related packages, SPECIALLY the development packages"])
892     AS_ECHO(["like jpeg-dev (if you use some prepackaged version of libjpeg)."])
893     AS_ECHO([])
894     AS_ECHO(["WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING"])dnl
898 dnl This is for Emacs.  I'm lazy, I know... (nicolai)
899 dnl ================================================
900 dnl Local Variables:
901 dnl compile-command: "autoconf"
902 dnl End: