configure: Added m4 check to detect possible non-expanded macros
[wmaker-crm.git] / configure.ac
blob2ddec307ba710ed9990053cfeb3368ad8a2e1b51
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=4
44 WRASTER_REVISION=1
45 WRASTER_AGE=1
46 WRASTER_VERSION=$WRASTER_CURRENT:$WRASTER_REVISION:$WRASTER_AGE
47 AC_SUBST(WRASTER_VERSION)
48 dnl
49 dnl libWINGs
50 WINGS_CURRENT=2
51 WINGS_REVISION=1
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=4
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 When debug not enabled, we try to avoid some non-necessary
148      dnl messages from the compiler
149      dnl
150      dnl To support legacy X servers, we have sometime to use
151      dnl functions marked as deprecated. We do not wish our users
152      dnl to be worried about it
153      AX_CFLAGS_GCC_OPTION([-Wno-deprecated])
154      AX_CFLAGS_GCC_OPTION([-Wno-deprecated-declarations])
158 dnl Tracking on what is detected for final status
159 dnl =============================================
160 unsupported=""
161 supported_gfx=""
164 dnl Platform-specific Makefile setup
165 dnl ================================
166 AS_CASE(["$host"],
167     [*-*-linux*|*-*-cygwin*|*-gnu*], [WM_OSDEP="linux" ; CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=600"],
168     [*-*-freebsd*|*-k*bsd-gnu*],     [WM_OSDEP="bsd"   ; CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=600 -DFREEBSD"],
169     [*-*-netbsd*],                   [WM_OSDEP="bsd"   ; CPPFLAGS="$CPPFLAGS -DNETBSD"],
170     [*-*-openbsd*],                  [WM_OSDEP="bsd"   ; CPPFLAGS="$CPPFLAGS -DOPENBSD"],
171     [*-*-dragonfly*],                [WM_OSDEP="bsd"   ; CPPFLAGS="$CPPFLAGS -DDRAGONFLYBSD"],
172     [*-apple-darwin*],               [WM_OSDEP="darwin"],
173     [*-*-solaris*],                  [WM_OSDEP="stub"],  dnl  solaris.c when done
174     [WM_OSDEP="stub"])
175 AM_CONDITIONAL([WM_OSDEP_LINUX],   [test "x$WM_OSDEP" = "xlinux"])
176 AM_CONDITIONAL([WM_OSDEP_BSD],     [test "x$WM_OSDEP" = "xbsd"])
177 AM_CONDITIONAL([WM_OSDEP_DARWIN],  [test "x$WM_OSDEP" = "xdarwin"])
178 AM_CONDITIONAL([WM_OSDEP_GENERIC], [test "x$WM_OSDEP" = "xstub"])
181 dnl the prefix
182 dnl ==========
184 dnl move this earlier in the script... anyone know why this is handled
185 dnl in such a bizarre way?
187 test "x$prefix" = xNONE && prefix=$ac_default_prefix
188 dnl Let make expand exec_prefix.
189 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
192 _bindir=`eval echo $bindir`
193 _bindir=`eval echo $_bindir`
195 lib_search_path='-L${libdir}'
197 inc_search_path='-I${includedir}'
199 dnl ===============================================
200 dnl Specify paths to look for libraries and headers
201 dnl ===============================================
202 AC_ARG_WITH(libs-from, AS_HELP_STRING([--with-libs-from], [pass compiler flags to look for libraries]),
203         [lib_search_path="$withval $lib_search_path"])
205 AC_ARG_WITH(incs-from, AS_HELP_STRING([--with-incs-from], [pass compiler flags to look for header files]),
206         [inc_search_path="$withval $inc_search_path"])
209 dnl Boehm GC
210 dnl ========
211 AC_ARG_ENABLE([boehm-gc],
212     [AS_HELP_STRING([--enable-boehm-gc], [use Boehm GC instead of the default libc malloc() [default=no]])],
213     [AS_CASE(["$enableval"],
214         [yes], [with_boehm_gc=yes],
215         [no],  [with_boehm_gc=no],
216         [AC_MSG_ERROR([bad value $enableval for --enable-boehm-gc])] )],
217     [with_boehm_gc=no])
218 AS_IF([test "x$with_boehm_gc" = "xyes"],
219     AC_SEARCH_LIBS([GC_malloc], [gc],
220         [AC_DEFINE(USE_BOEHM_GC, 1, [Define if Boehm GC is to be used])],
221         [AC_MSG_FAILURE([--enable-boehm-gc specified but test for libgc failed])]))
224 dnl LCOV
225 dnl ====
226 AC_ARG_ENABLE([lcov],
227     [AS_HELP_STRING([--enable-lcov[=output-directory]], [enable coverage data generation using LCOV (GCC only) [default=no]])],
228     [],
229     [enable_lcov=no])
231 AS_IF([test "x$enable_lcov" != "xno"],
232     [AX_CFLAGS_GCC_OPTION(-fprofile-arcs -ftest-coverage)
233     AS_IF([test "x$enable_lcov" = "xyes"],
234         [lcov_output_directory="coverage-report"],
235         [lcov_output_directory="${enable_lcov}/coverage-report"])
236     AC_SUBST(lcov_output_directory)])
238 AM_CONDITIONAL([USE_LCOV], [test "x$enable_lcov" != "xno"])
241 dnl ============================
242 dnl Checks for library functions
243 dnl ============================
244 dnl not used anywhere
245 AC_FUNC_MEMCMP
246 AC_FUNC_VPRINTF
247 AC_CHECK_FUNCS(gethostname select poll strcasecmp strncasecmp \
248                setsid mallinfo mkstemp sysconf)
249 AC_SEARCH_LIBS([strerror], [cposix])
251 dnl Check for strlcat/strlcpy
252 dnl =========================
253 AC_ARG_WITH([libbsd],
254   [AS_HELP_STRING([--without-libbsd], [do not use libbsd for strlcat and strlcpy [default=check]])],
255   [AS_IF([test "x$with_libbsd" != "xno"],
256     [with_libbsd=bsd]
257     [with_libbsd=]
258   )],
259   [with_libbsd=bsd])
261 tmp_libs=$LIBS
262 AC_SEARCH_LIBS([strlcat],[$with_libbsd],
263   [AC_DEFINE(HAVE_STRLCAT, 1, [Define if strlcat is available])],
264   [],
265   []
267 AC_SEARCH_LIBS([strlcpy],[$with_libbsd],
268   [AC_DEFINE(HAVE_STRLCAT, 1, [Define if strlcpy is available])],
269   [],
270   []
272 LIBS=$tmp_libs
274 LIBBSD=
275 AS_IF([test "x$ac_cv_search_strlcat" = "x-lbsd" -o "x$ac_cv_search_strlcpy" = "x-lbsd"],
276   [LIBBSD=-lbsd
277    AC_CHECK_HEADERS([bsd/string.h])]
279 AC_SUBST(LIBBSD)
281 dnl Check for OpenBSD kernel memory interface - kvm(3)
282 dnl ==================================================
283 AS_IF([test "x$WM_OSDEP" = "xbsd"],
284   AC_SEARCH_LIBS([kvm_openfiles], [kvm]) )
286 dnl Check for inotify
287 dnl =================
288 AC_CHECK_HEADERS(sys/inotify.h, AC_DEFINE(HAVE_INOTIFY, 1, Check for inotify))
291 dnl Checks for header files.
292 dnl =======================
293 AC_HEADER_SYS_WAIT
294 AC_HEADER_TIME
295 AC_CHECK_HEADERS(fcntl.h limits.h sys/ioctl.h libintl.h poll.h malloc.h ctype.h \
296                  string.h strings.h)
299 dnl Checks for typedefs, structures, and compiler characteristics.
300 dnl ==============================================================
301 AC_DECL_SYS_SIGLIST
302 AC_C_CONST
303 AC_C_INLINE
304 WM_C_NORETURN
305 AC_TYPE_SIZE_T
306 AC_TYPE_PID_T
307 AC_TYPE_SIGNAL
310 dnl pkg-config
311 dnl ==========
312 dnl AC_ARG_VAR(PKGCONFIG, [pkg-config command])
313 AC_CHECK_PROG(PKGCONFIG, pkg-config, pkg-config) 
315 dnl gettext
316 dnl =======
318 dnl AM_GNU_GETTEXT
320 INTLIBS=""
322 AC_CHECK_FUNC(gettext, [HAVEGETTEXT="yes"], 
323         AC_CHECK_LIB(intl, gettext, [INTLIBS="-lintl" HAVEGETTEXT="yes"],
324                          INTLIBS="" ))
326 AC_CHECK_PROG(XGETTEXT, xgettext, xgettext)
328 if test "$XGETTEXT" != ""; then 
329     if $XGETTEXT --help 2>&1 | grep illegal >/dev/null ; then
330         echo "xgettext isn't GNU version"
331         XGETTEXT=""
332     fi
335 if test "$LINGUAS" != ""; then
336     if test "$XGETTEXT" != "" -a "$HAVEGETTEXT" != ""; then
337         AC_DEFINE(I18N, 1, [Internationalization (I18N) support (set by configure)])
338         PO=""
339         echo "xgettext and gettext() exist; will build i18n support for $LINGUAS"
340     else
341         LINGUAS=""
342         PO=""
343         echo "xgettext and libintl.a don't both exist; will not build i18n support"
344     fi
345 else
346         INTLIBS=""
347         MOFILES=""
348         WPMOFILES=""
349         UTILMOFILES=""
350         PO=""
354 dnl The Tower of Babel
355 dnl ==================
357 dnl List of supported locales
358 dnl =========================
359 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"
360 supported_wprefs_locales="bg ca cs de es et fi fr hr hu it ja ko pt ru sk zh_CN zh_TW"
361 supported_wings_locales="bg ca cs de fr sk"
362 supported_util_locales="de es fr pt"
364 for lang in $LINGUAS; do
365         ok=0
366         for l in $supported_locales; do
367                 if test "$l" = "$lang"; then
368                         ok=1
369                         break
370                 fi
371         done
372         if test "$ok" = 1; then
373                 MOFILES="$MOFILES $lang.mo"
374         else
375                 echo "Locale $lang is not supported."
376         fi
377         ok=0
378         for l in $supported_wprefs_locales; do
379                 if test "$l" = "$lang"; then
380                         ok=1
381                         break
382                 fi
383         done
384         if test "$ok" = 1; then
385                 WPMOFILES="$WPMOFILES $lang.mo"
386         fi
387         ok=0
388         for l in $supported_util_locales; do
389                 if test "$l" = "$lang"; then
390                         ok=1
391                         break
392                 fi
393         done
394         if test "$ok" = 1; then
395                 UTILMOFILES="$UTILMOFILES $lang.mo"
396         fi
397         ok=0
398         for l in $supported_wings_locales; do
399                 if test "$l" = "$lang"; then
400                         ok=1
401                         break
402                 fi
403         done
404         if test "$ok" = 1; then
405                 WINGSMOFILES="$WINGSMOFILES $lang.mo"
406         fi
407 done
410 dnl Added by Oliver - Support for NLSDIR option
411 dnl ===========================================
412 AC_ARG_WITH(nlsdir, AS_HELP_STRING([--with-nlsdir=PATH], [specify where the locale stuff should go]))
414 if test "x$NLSDIR" = "x"; then
415         if test "x$with_nlsdir" != "x"; then
416                 NLSDIR=$with_nlsdir
417         else
418                 NLSDIR='$(prefix)/lib/locale'
419         fi
422 menutextdomain=
423 AC_ARG_WITH(menu-textdomain, AS_HELP_STRING([--with-menu-textdomain=DOMAIN], [specify gettext domain used for menu translations]),
424         [if test "x$withval" != "xno"; then
425          menutextdomain=$withval
426          fi])
427 AC_SUBST(menutextdomain)
429 AC_SUBST(INTLIBS)
430 AC_SUBST(NLSDIR)
431 AC_SUBST(MOFILES)
432 AC_SUBST(WPMOFILES)
433 AC_SUBST(UTILMOFILES)
434 AC_SUBST(WINGSMOFILES)
435 AC_SUBST(supported_locales)
437 dnl ===========================================
438 dnl             Stuff that uses X
439 dnl ===========================================
441 AC_PATH_XTRA
443 if test $no_x; then
444     AC_MSG_ERROR([The path for the X11 files not found!
445 Make sure you have X and it's headers and libraries (the -devel packages
446 in Linux) installed.])
449 X_LIBRARY_PATH=$x_libraries
450 XCFLAGS="$X_CFLAGS"
451 XLFLAGS="$X_LIBS"
452 XLIBS="-lX11 $X_EXTRA_LIBS"
453 LIBXMU="-lXmu"
454 AC_SUBST(LIBXMU)
456 lib_search_path="$lib_search_path $XLFLAGS"
457 inc_search_path="$inc_search_path $XCFLAGS"
459 AC_SUBST(X_LIBRARY_PATH)
461 dnl Decide which locale function to use, setlocale() or _Xsetlocale()
462 dnl by MANOME Tomonori 
463 dnl ===========================================
464 use_locale=yes
465 AC_ARG_ENABLE(locale, AS_HELP_STRING([--disable-locale], [disable use of X locale support]),
466               use_locale=no)
468 if test "$use_locale" = yes; then
469         AC_CHECK_LIB(X11, _Xsetlocale,
470                 AC_DEFINE(X_LOCALE, 1, [define if you want support for X window's X_LOCALE (set by configure)]),,
471                 $XLFLAGS $XLIBS)
474 dnl Check whether XInternAtoms() exist
475 dnl ==================================
476 AC_CHECK_LIB(X11, XInternAtoms, 
477              AC_DEFINE(HAVE_XINTERNATOMS, 1, [define if your X server has XInternAtoms() (set by configure)]),,
478              $XLFLAGS $XLIBS)
480 dnl Check whether XConvertCase() exist
481 dnl ==================================
482 AC_CHECK_LIB(X11, XConvertCase, 
483              AC_DEFINE(HAVE_XCONVERTCASE, 1, [define if your X server has XConvertCase() (set by configure)]),,
484              $XLFLAGS $XLIBS)
486 dnl XKB keyboard language status
487 dnl ============================
488 AC_ARG_ENABLE(modelock, AS_HELP_STRING([--enable-modelock], [XKB keyboard language status support]),
489                 AC_DEFINE(XKB_MODELOCK, 1, [whether XKB language MODELOCK should be enabled]))
491 dnl Shape support
492 dnl =============
493 shape=yes
494 AC_ARG_ENABLE(shape, AS_HELP_STRING([--disable-shape], [disable shaped window extension support]),
495                 shape=$enableval, shape=yes)
496 added_xext=no
498 if test "$shape" = yes; then
499         AC_CHECK_LIB(Xext, XShapeSelectInput, [XLIBS="-lXext $XLIBS"
500                 added_xext=yes
501                 AC_DEFINE(SHAPE, 1, [define if you want support for shaped windows (set by configure)])], 
502                 shape=no, $XLFLAGS $XLIBS)
505 dnl XRandR support
506 dnl ==============
507 xrandr=no
508 AC_ARG_ENABLE(xrandr, AS_HELP_STRING([--enable-xrandr], [enable XRandR window extension support (NOT recommended, buggy)]),
509                 xrandr=$enableval, xrandr=no)
510 added_xext=no
512 LIBXRANDR=
513 if test "$xrandr" = yes; then
514         AC_CHECK_LIB(Xrandr, XRRQueryExtension, [LIBXRANDR=-lXrandr
515                 added_xext=yes
516                 AC_DEFINE(HAVE_XRANDR, 1, [define if you want support for XRandR (set by configure)])],
517                 xrandr=no, $XLFLAGS $XLIBS)
519 AC_SUBST(LIBXRANDR)
522 dnl libWINGS uses math functions, check whether usage requires linking
523 dnl against libm
525 WM_CHECK_LIBM
528 dnl libWINGS uses FcPatternDel from libfontconfig
530 AC_MSG_CHECKING([for fontconfig library])
531 FCLIBS=`$PKGCONFIG fontconfig --libs`
532 if test "x$FCLIBS" = "x" ; then
533         AC_MSG_RESULT([not found])
534 else
535         AC_MSG_RESULT([found])
537 AC_SUBST(FCLIBS)
540 dnl Xft2 antialiased font support
541 dnl =============================
543 xft=yes
544 XFTLIBS=""
546 if test "x$PKGCONFIG" != x -a "`$PKGCONFIG xft; echo $?`" = 0; then
547         XFTCONFIG="$PKGCONFIG xft"
548         pkgconfig_xft=yes
549 else
550         AC_CHECK_PROG(XFTCONFIG, xft-config, xft-config)
553 AC_MSG_CHECKING([for the Xft2 library])
555 if test "x$XFTCONFIG" != x; then
556         XFTLIBS=`$XFTCONFIG --libs`
557         XFTFLAGS=`$XFTCONFIG --cflags`
558         AC_MSG_RESULT([found])
559 else
560         AC_MSG_RESULT([not found])
561         echo
562         echo "ERROR!!! libXft2 is not installed or could not be found."
563         echo "         Xft2 is a requirement for building Window Maker."
564         echo "         Please install it (along with fontconfig) before continuing."
565         echo
566         exit 1
569 minXFT="2.1.0"
570 goodxft="no"
573 dnl The macro below will use $XFTFLAGS (defined above) to find Xft.h
575 WM_CHECK_XFT_VERSION($minXFT, goodxft=yes, goodxft=no)
577 if test "$goodxft" = no; then
578         echo
579         echo "ERROR!!! libXft on this system is an old version."
580         echo "         Please consider upgrading to at least version ${minXFT}."
581         echo
582         exit 1
585 AC_SUBST(XFTFLAGS)
586 AC_SUBST(XFTLIBS)
589 dnl XINERAMA support
590 dnl ================
591 xinerama=no
592 AC_ARG_ENABLE(xinerama, AS_HELP_STRING([--enable-xinerama], [enable Xinerama extension support]),
593                 xinerama=$enableval, xinerama=no)
595 LIBXINERAMA=
596 if test "$xinerama" = yes; then
597         AC_CHECK_LIB(Xinerama, XineramaQueryScreens, 
598                 [LIBXINERAMA=-lXinerama
599                 xfxine=yes],
600                 xfxine=no, $XLFLAGS $XLIBS)
602         AC_CHECK_LIB(Xext, XineramaGetInfo,
603                 [sunxine=yes
604                 ], sunxine=no, $XLFLAGS $XLIBS)
606         if test "$xfxine" = yes; then
607                 xine=1
608         fi
610         if test "$sunxine" = yes; then
611             xine=1
612             AC_DEFINE(SOLARIS_XINERAMA, 1, 
613                 [define if you want support for the XINERAMA extension and are in Solaris (set by configure)])
614         fi
616         if test "$xine" = 1; then
617             AC_DEFINE(XINERAMA, 1, 
618                 [define if you want support for the XINERAMA extension (set by configure)])
619         fi
621 AC_SUBST(LIBXINERAMA)
624 dnl MIT-SHM support
625 dnl ===============
626 shm=yes
627 AC_ARG_ENABLE(shm, AS_HELP_STRING([--disable-shm], [disable usage of MIT-SHM extension]),
628                 shm=$enableval, shm=yes)
630 if test "$shm" = yes; then
631         AC_CHECK_LIB(Xext, XShmAttach, ok=yes, ok=no, $XLFLAGS $XLIBS)
633         if test "$ok" = yes; then
634         AC_CHECK_FUNC(shmget, ok=yes, ok=no)
635         fi
637         if test "$ok" = yes; then
638                 if test "$added_xext" = no; then
639                         XLIBS="-lXext $XLIBS"
640                 fi
641                 AC_DEFINE(XSHM, 1, [define if X's shared memory extension is available (set by configure)])
642         fi
646 dnl ==============================================
647 dnl         Graphic Format Libraries
648 dnl ==============================================
650 dnl XPM Support
651 dnl ===========
652 AC_ARG_ENABLE([xpm],
653     [AS_HELP_STRING([--disable-xpm], [disable use of XPM pixmaps through libXpm])],
654     [AS_CASE(["$enableval"],
655         [yes|no], [],
656         [AC_MSG_ERROR([bad value $enableval for --enable-xpm])] )],
657     [enable_xpm=auto])
658 WM_IMGFMT_CHECK_XPM
661 # for wmlib
662 AC_SUBST(XCFLAGS)
663 # for test
664 AC_SUBST(XLFLAGS)
665 AC_SUBST(XLIBS)
666 AC_SUBST(X_EXTRA_LIBS)
668 dnl ===============================================
669 dnl             End of stuff that uses X
670 dnl ===============================================
672 dnl PNG Support
673 dnl ===========
674 AC_ARG_ENABLE([png],
675     [AS_HELP_STRING([--disable-png], [disable PNG support through libpng])],
676     [AS_CASE(["$enableval"],
677         [yes|no], [],
678         [AC_MSG_ERROR([bad value $enableval for --enable-png])] )],
679     [enable_png=auto])
680 WM_IMGFMT_CHECK_PNG
683 dnl JPEG Support
684 dnl ============
685 AC_ARG_ENABLE([jpeg],
686     [AS_HELP_STRING([--disable-jpeg], [disable JPEG support through libjpeg])],
687     [AS_CASE(["$enableval"],
688         [yes|no], [],
689         [AC_MSG_ERROR([bad value $enableval for --enable-jpeg])] )],
690     [enable_jpeg=auto])
691 WM_IMGFMT_CHECK_JPEG
694 dnl GIF Support
695 dnl ============
696 AC_ARG_ENABLE(gif,
697     [AS_HELP_STRING([--disable-gif], [disable GIF support through libgif or libungif])],
698     [AS_CASE(["$enableval"],
699         [yes|no], [],
700         [AC_MSG_ERROR([bad value $enableval for --enable-gif])] )],
701     [enable_gif=auto])
702 WM_IMGFMT_CHECK_GIF
705 dnl TIFF Support
706 dnl ============
707 AC_ARG_ENABLE([tiff],
708     [AS_HELP_STRING([--disable-tiff], [disable use of TIFF images through libtiff])],
709     [AS_CASE(["$enableval"],
710         [yes|no], [],
711         [AC_MSG_ERROR([bad value $enableval for --enable-tiff])] )],
712     [enable_tiff=auto])
713 WM_IMGFMT_CHECK_TIFF
716 dnl PPM Support
717 dnl ===========
718 # The PPM format is always enabled because we have built-in support for the format
719 # We are not using any external library like libppm
720 supported_gfx="$supported_gfx builtin-PPM"
723 # Choice of the default format for icons
724 AS_IF([test "x$enable_tiff" != "xno"],
725     [ICONEXT="tiff"],
726     [ICONEXT="xpm"])
729 LIBRARY_SEARCH_PATH="$lib_search_path"
730 HEADER_SEARCH_PATH="$inc_search_path"
732 AC_SUBST(LIBRARY_SEARCH_PATH)
733 AC_SUBST(HEADER_SEARCH_PATH)
736 AC_SUBST(GFXLIBS)
737 AC_SUBST(ICONEXT)
738 AM_CONDITIONAL([ICON_EXT_XPM],  [test "x$ICONEXT" = "xxpm"])
739 AM_CONDITIONAL([ICON_EXT_TIFF], [test "x$ICONEXT" = "xtiff"])
742 dnl ==============================================
743 dnl         End of Graphic Format Libraries
744 dnl ==============================================
748 dnl stdlib.h is checked here, because of conflict in jpeglib.h
749 AC_CHECK_HEADERS(stdlib.h)
751 # AC_PREFIX_PROGRAM(wmaker)
753 dnl Support for PIXMAPDIR option
754 dnl ============================
755 AC_ARG_WITH(pixmapdir, AS_HELP_STRING([--with-pixmapdir=PATH], [specify where pixmaps are located [DATADIR/pixmaps]]))
757 if test "x$with_pixmapdir" != "x"; then
758         pixmapdir=$with_pixmapdir
759 else
760         pixmapdir='${datadir}/pixmaps'
762 AC_SUBST(pixmapdir)
765 dnl Support for GNUSTEP_LOCAL_ROOT, for WPrefs.app
766 dnl ==============================================
768 AC_ARG_WITH(gnustepdir, AS_HELP_STRING([--with-gnustepdir=PATH], [specify the directory for GNUstep applications]))
770 if test "x`echo $with_gnustepdir | grep ^/`" != "x"; then
771     appspath=$with_gnustepdir
774 if test "x$appspath$GNUSTEP_LOCAL_ROOT" = "x"; then
775     wprefs_base_dir=${prefix}
776     wprefs_datadir="${datadir}/WPrefs"
777     wprefs_bindir="${bindir}"
778 else
779     gnustepdir=$appspath
781     if test "x$GNUSTEP_LOCAL_ROOT" != "x" ; then
782         gnustepdir=`echo "$GNUSTEP_LOCAL_ROOT" | sed -e "s|^${prefix}|prefix|"`
783         gnustepdir=`echo $gnustepdir | sed -e 's|^prefix|${prefix}|'`
784     fi
786     wprefs_base_dir=$gnustepdir/Applications
787     wprefs_datadir=$wprefs_base_dir/WPrefs.app
788     wprefs_bindir=$wprefs_base_dir/WPrefs.app
791 AC_SUBST(wprefs_datadir)
792 AC_SUBST(wprefs_bindir)
795 dnl Enable User Defined Menu thing
796 dnl ==============================
797 AC_ARG_ENABLE(usermenu, AS_HELP_STRING([--enable-usermenu], [user defined menus for applications]),
798 if test "$enableval" = yes; then
799         AC_DEFINE(USER_MENU, 1, [define if you want user defined menus for applications])
803 gl_LD_VERSION_SCRIPT
805 AC_OUTPUT(Makefile po/Makefile util/Makefile util/po/Makefile test/Makefile \
806         WINGs/Makefile WINGs/WINGs/Makefile WINGs/Documentation/Makefile \
807         WINGs/Examples/Makefile WINGs/Resources/Makefile WINGs/Tests/Makefile \
808         WINGs/Extras/Makefile WINGs/po/Makefile \
809         wmlib/Makefile wrlib/Makefile wrlib/tests/Makefile \
810         src/Makefile src/wconfig.h \
811         doc/Makefile doc/sk/Makefile doc/cs/Makefile \
812         doc/ru/Makefile \
813         WindowMaker/Makefile WindowMaker/Backgrounds/Makefile \
814         WindowMaker/Defaults/Makefile WindowMaker/IconSets/Makefile \
815         WindowMaker/Icons/Makefile WindowMaker/Pixmaps/Makefile \
816         WindowMaker/Styles/Makefile WindowMaker/Themes/Makefile \
817         WPrefs.app/Makefile WPrefs.app/tiff/Makefile WPrefs.app/xpm/Makefile \
818         WPrefs.app/po/Makefile )
821 dnl Output some helpful data for compiling wraster and WINGs/WUtil apps
822 dnl ===================================================================
824 dnl echo "WFLAGS=\"$LIBPL_INC_PATH -I$prefix/include\"" > WINGs-flags
825 dnl echo "WLIBS=\"-L$exec_prefix/lib -lWINGs -lwraster $LIBPL_LIBS $GFXLIBS -lm\""\
826 dnl     | sed -e 's|\$(prefix)|'"$prefix|" >> WINGs-flags
828 dnl The #lp# and #rp# stuff below is a hack because [ and ] get lost when
829 dnl parsed by m4
831 AC_SUBST(lib_search_path)
832 AC_SUBST(inc_search_path)
835 dnl Spit out the configuration
836 dnl ==========================
838 if test "x$MOFILES" = "x"; then
839         mof=None
840 else
841         mof=`echo $MOFILES`
844 if test "x$MOFILES" = "x"; then
845         languages=None
846 else
847         languages=`echo $MOFILES | sed 's/.mo//g'`
850 echo
851 echo "Window Maker was configured as follows:"
852 echo
853 echo "Installation path prefix            : $prefix"
854 echo "Installation path for binaries      : $_bindir"
855 echo "Installation path for libraries     : $libdir"
856 echo "Installation path for WPrefs.app    : $wprefs_base_dir" | sed -e 's|\${prefix}|'"$prefix|"
857 echo "Supported graphic format libraries  :$supported_gfx"
858 echo "Unsupported features                :$unsupported"
859 echo "Antialiased text support in WINGs   : $xft"
860 echo "Xinerama extension support          : $xinerama"
861 echo "XRandR extension support            : $xrandr"
862 echo "Translated message files to install : $mof"
863 dnl echo "Supported languages beside English  : $languages"
864 if test "x$MOFILES" != "x"; then
865         echo "Installation path for translations  : $NLSDIR" | sed -e 's|\$(prefix)|'"$prefix|"
867 AS_IF([test "x$debug" = "xyes"],
868     [AS_ECHO(["Debug enabled: CFLAGS = $CFLAGS"]) ])
869 echo
871 dnl WM_PRINT_REDCRAP_BUG_STATUS
873 AS_IF([test "x$enable_jpeg" = xno], [dnl
874     AS_ECHO(["WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING"])
875     AS_ECHO([])
876     AS_ECHO(["JPEG support will not be included because the JPEG library is"])
877     AS_ECHO(["not installed correctly or was not found. Background images"])
878     AS_ECHO(["from themes will not display as they usually are JPEG files."])
879     AS_ECHO([])
880     AS_ECHO(["To fix, download and install the jpeg library and/or make sure you"])
881     AS_ECHO(["installed all jpeg related packages, SPECIALLY the development packages"])
882     AS_ECHO(["like jpeg-dev (if you use some prepackaged version of libjpeg)."])
883     AS_ECHO([])
884     AS_ECHO(["WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING"])dnl
888 dnl This is for Emacs.  I'm lazy, I know... (nicolai)
889 dnl ================================================
890 dnl Local Variables:
891 dnl compile-command: "autoconf"
892 dnl End: