Code refactoring: replaced macro 'XINERAMA' by 'USE_XINERAMA' for consistency
[wmaker-crm.git] / configure.ac
blob99df9c6ac2e9deaeef3adfca1d25e843fa89eb8d
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_xext=""
162 supported_gfx=""
165 dnl Platform-specific Makefile setup
166 dnl ================================
167 AS_CASE(["$host"],
168     [*-*-linux*|*-*-cygwin*|*-gnu*], [WM_OSDEP="linux" ; CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=600"],
169     [*-*-freebsd*|*-k*bsd-gnu*],     [WM_OSDEP="bsd"   ; CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=600 -DFREEBSD"],
170     [*-*-netbsd*],                   [WM_OSDEP="bsd"   ; CPPFLAGS="$CPPFLAGS -DNETBSD"],
171     [*-*-openbsd*],                  [WM_OSDEP="bsd"   ; CPPFLAGS="$CPPFLAGS -DOPENBSD"],
172     [*-*-dragonfly*],                [WM_OSDEP="bsd"   ; CPPFLAGS="$CPPFLAGS -DDRAGONFLYBSD"],
173     [*-apple-darwin*],               [WM_OSDEP="darwin"],
174     [*-*-solaris*],                  [WM_OSDEP="stub"],  dnl  solaris.c when done
175     [WM_OSDEP="stub"])
176 AM_CONDITIONAL([WM_OSDEP_LINUX],   [test "x$WM_OSDEP" = "xlinux"])
177 AM_CONDITIONAL([WM_OSDEP_BSD],     [test "x$WM_OSDEP" = "xbsd"])
178 AM_CONDITIONAL([WM_OSDEP_DARWIN],  [test "x$WM_OSDEP" = "xdarwin"])
179 AM_CONDITIONAL([WM_OSDEP_GENERIC], [test "x$WM_OSDEP" = "xstub"])
182 dnl the prefix
183 dnl ==========
185 dnl move this earlier in the script... anyone know why this is handled
186 dnl in such a bizarre way?
188 test "x$prefix" = xNONE && prefix=$ac_default_prefix
189 dnl Let make expand exec_prefix.
190 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
193 _bindir=`eval echo $bindir`
194 _bindir=`eval echo $_bindir`
196 lib_search_path='-L${libdir}'
198 inc_search_path='-I${includedir}'
200 dnl ===============================================
201 dnl Specify paths to look for libraries and headers
202 dnl ===============================================
203 AC_ARG_WITH(libs-from, AS_HELP_STRING([--with-libs-from], [pass compiler flags to look for libraries]),
204         [lib_search_path="$withval $lib_search_path"])
206 AC_ARG_WITH(incs-from, AS_HELP_STRING([--with-incs-from], [pass compiler flags to look for header files]),
207         [inc_search_path="$withval $inc_search_path"])
210 dnl Boehm GC
211 dnl ========
212 AC_ARG_ENABLE([boehm-gc],
213     [AS_HELP_STRING([--enable-boehm-gc], [use Boehm GC instead of the default libc malloc() [default=no]])],
214     [AS_CASE(["$enableval"],
215         [yes], [with_boehm_gc=yes],
216         [no],  [with_boehm_gc=no],
217         [AC_MSG_ERROR([bad value $enableval for --enable-boehm-gc])] )],
218     [with_boehm_gc=no])
219 AS_IF([test "x$with_boehm_gc" = "xyes"],
220     AC_SEARCH_LIBS([GC_malloc], [gc],
221         [AC_DEFINE(USE_BOEHM_GC, 1, [Define if Boehm GC is to be used])],
222         [AC_MSG_FAILURE([--enable-boehm-gc specified but test for libgc failed])]))
225 dnl LCOV
226 dnl ====
227 AC_ARG_ENABLE([lcov],
228     [AS_HELP_STRING([--enable-lcov[=output-directory]], [enable coverage data generation using LCOV (GCC only) [default=no]])],
229     [],
230     [enable_lcov=no])
232 AS_IF([test "x$enable_lcov" != "xno"],
233     [AX_CFLAGS_GCC_OPTION(-fprofile-arcs -ftest-coverage)
234     AS_IF([test "x$enable_lcov" = "xyes"],
235         [lcov_output_directory="coverage-report"],
236         [lcov_output_directory="${enable_lcov}/coverage-report"])
237     AC_SUBST(lcov_output_directory)])
239 AM_CONDITIONAL([USE_LCOV], [test "x$enable_lcov" != "xno"])
242 dnl ============================
243 dnl Checks for library functions
244 dnl ============================
245 dnl not used anywhere
246 AC_FUNC_MEMCMP
247 AC_FUNC_VPRINTF
248 AC_CHECK_FUNCS(gethostname select poll strcasecmp strncasecmp \
249                setsid mallinfo mkstemp sysconf)
250 AC_SEARCH_LIBS([strerror], [cposix])
252 dnl Check for strlcat/strlcpy
253 dnl =========================
254 AC_ARG_WITH([libbsd],
255   [AS_HELP_STRING([--without-libbsd], [do not use libbsd for strlcat and strlcpy [default=check]])],
256   [AS_IF([test "x$with_libbsd" != "xno"],
257     [with_libbsd=bsd]
258     [with_libbsd=]
259   )],
260   [with_libbsd=bsd])
262 tmp_libs=$LIBS
263 AC_SEARCH_LIBS([strlcat],[$with_libbsd],
264   [AC_DEFINE(HAVE_STRLCAT, 1, [Define if strlcat is available])],
265   [],
266   []
268 AC_SEARCH_LIBS([strlcpy],[$with_libbsd],
269   [AC_DEFINE(HAVE_STRLCAT, 1, [Define if strlcpy is available])],
270   [],
271   []
273 LIBS=$tmp_libs
275 LIBBSD=
276 AS_IF([test "x$ac_cv_search_strlcat" = "x-lbsd" -o "x$ac_cv_search_strlcpy" = "x-lbsd"],
277   [LIBBSD=-lbsd
278    AC_CHECK_HEADERS([bsd/string.h])]
280 AC_SUBST(LIBBSD)
282 dnl Check for OpenBSD kernel memory interface - kvm(3)
283 dnl ==================================================
284 AS_IF([test "x$WM_OSDEP" = "xbsd"],
285   AC_SEARCH_LIBS([kvm_openfiles], [kvm]) )
287 dnl Check for inotify
288 dnl =================
289 AC_CHECK_HEADERS(sys/inotify.h, AC_DEFINE(HAVE_INOTIFY, 1, Check for inotify))
292 dnl Checks for header files.
293 dnl =======================
294 AC_HEADER_SYS_WAIT
295 AC_HEADER_TIME
296 AC_CHECK_HEADERS(fcntl.h limits.h sys/ioctl.h libintl.h poll.h malloc.h ctype.h \
297                  string.h strings.h)
300 dnl Checks for typedefs, structures, and compiler characteristics.
301 dnl ==============================================================
302 AC_DECL_SYS_SIGLIST
303 AC_C_CONST
304 AC_C_INLINE
305 WM_C_NORETURN
306 AC_TYPE_SIZE_T
307 AC_TYPE_PID_T
308 AC_TYPE_SIGNAL
311 dnl pkg-config
312 dnl ==========
313 dnl AC_ARG_VAR(PKGCONFIG, [pkg-config command])
314 AC_CHECK_PROG(PKGCONFIG, pkg-config, pkg-config) 
316 dnl gettext
317 dnl =======
319 dnl AM_GNU_GETTEXT
321 INTLIBS=""
323 AC_CHECK_FUNC(gettext, [HAVEGETTEXT="yes"], 
324         AC_CHECK_LIB(intl, gettext, [INTLIBS="-lintl" HAVEGETTEXT="yes"],
325                          INTLIBS="" ))
327 AC_CHECK_PROG(XGETTEXT, xgettext, xgettext)
329 if test "$XGETTEXT" != ""; then 
330     if $XGETTEXT --help 2>&1 | grep illegal >/dev/null ; then
331         echo "xgettext isn't GNU version"
332         XGETTEXT=""
333     fi
336 if test "$LINGUAS" != ""; then
337     if test "$XGETTEXT" != "" -a "$HAVEGETTEXT" != ""; then
338         AC_DEFINE(I18N, 1, [Internationalization (I18N) support (set by configure)])
339         PO=""
340         echo "xgettext and gettext() exist; will build i18n support for $LINGUAS"
341     else
342         LINGUAS=""
343         PO=""
344         echo "xgettext and libintl.a don't both exist; will not build i18n support"
345     fi
346 else
347         INTLIBS=""
348         MOFILES=""
349         WPMOFILES=""
350         UTILMOFILES=""
351         PO=""
355 dnl The Tower of Babel
356 dnl ==================
358 dnl List of supported locales
359 dnl =========================
360 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"
361 supported_wprefs_locales="bg ca cs de es et fi fr hr hu it ja ko pt ru sk zh_CN zh_TW"
362 supported_wings_locales="bg ca cs de fr sk"
363 supported_util_locales="de es fr pt"
365 for lang in $LINGUAS; do
366         ok=0
367         for l in $supported_locales; do
368                 if test "$l" = "$lang"; then
369                         ok=1
370                         break
371                 fi
372         done
373         if test "$ok" = 1; then
374                 MOFILES="$MOFILES $lang.mo"
375         else
376                 echo "Locale $lang is not supported."
377         fi
378         ok=0
379         for l in $supported_wprefs_locales; do
380                 if test "$l" = "$lang"; then
381                         ok=1
382                         break
383                 fi
384         done
385         if test "$ok" = 1; then
386                 WPMOFILES="$WPMOFILES $lang.mo"
387         fi
388         ok=0
389         for l in $supported_util_locales; do
390                 if test "$l" = "$lang"; then
391                         ok=1
392                         break
393                 fi
394         done
395         if test "$ok" = 1; then
396                 UTILMOFILES="$UTILMOFILES $lang.mo"
397         fi
398         ok=0
399         for l in $supported_wings_locales; do
400                 if test "$l" = "$lang"; then
401                         ok=1
402                         break
403                 fi
404         done
405         if test "$ok" = 1; then
406                 WINGSMOFILES="$WINGSMOFILES $lang.mo"
407         fi
408 done
411 dnl Added by Oliver - Support for NLSDIR option
412 dnl ===========================================
413 AC_ARG_WITH(nlsdir, AS_HELP_STRING([--with-nlsdir=PATH], [specify where the locale stuff should go]))
415 if test "x$NLSDIR" = "x"; then
416         if test "x$with_nlsdir" != "x"; then
417                 NLSDIR=$with_nlsdir
418         else
419                 NLSDIR='$(prefix)/lib/locale'
420         fi
423 menutextdomain=
424 AC_ARG_WITH(menu-textdomain, AS_HELP_STRING([--with-menu-textdomain=DOMAIN], [specify gettext domain used for menu translations]),
425         [if test "x$withval" != "xno"; then
426          menutextdomain=$withval
427          fi])
428 AC_SUBST(menutextdomain)
430 AC_SUBST(INTLIBS)
431 AC_SUBST(NLSDIR)
432 AC_SUBST(MOFILES)
433 AC_SUBST(WPMOFILES)
434 AC_SUBST(UTILMOFILES)
435 AC_SUBST(WINGSMOFILES)
436 AC_SUBST(supported_locales)
438 dnl ===========================================
439 dnl             Stuff that uses X
440 dnl ===========================================
442 AC_PATH_XTRA
444 if test $no_x; then
445     AC_MSG_ERROR([The path for the X11 files not found!
446 Make sure you have X and it's headers and libraries (the -devel packages
447 in Linux) installed.])
450 X_LIBRARY_PATH=$x_libraries
451 XCFLAGS="$X_CFLAGS"
452 XLFLAGS="$X_LIBS"
453 XLIBS="-lX11 $X_EXTRA_LIBS"
454 LIBXMU="-lXmu"
455 AC_SUBST(LIBXMU)
457 lib_search_path="$lib_search_path $XLFLAGS"
458 inc_search_path="$inc_search_path $XCFLAGS"
460 AC_SUBST(X_LIBRARY_PATH)
462 dnl Decide which locale function to use, setlocale() or _Xsetlocale()
463 dnl by MANOME Tomonori 
464 dnl ===========================================
465 use_locale=yes
466 AC_ARG_ENABLE(locale, AS_HELP_STRING([--disable-locale], [disable use of X locale support]),
467               use_locale=no)
469 if test "$use_locale" = yes; then
470         AC_CHECK_LIB(X11, _Xsetlocale,
471                 AC_DEFINE(X_LOCALE, 1, [define if you want support for X window's X_LOCALE (set by configure)]),,
472                 $XLFLAGS $XLIBS)
475 dnl Check whether XInternAtoms() exist
476 dnl ==================================
477 AC_CHECK_LIB(X11, XInternAtoms, 
478              AC_DEFINE(HAVE_XINTERNATOMS, 1, [define if your X server has XInternAtoms() (set by configure)]),,
479              $XLFLAGS $XLIBS)
481 dnl Check whether XConvertCase() exist
482 dnl ==================================
483 AC_CHECK_LIB(X11, XConvertCase, 
484              AC_DEFINE(HAVE_XCONVERTCASE, 1, [define if your X server has XConvertCase() (set by configure)]),,
485              $XLFLAGS $XLIBS)
487 dnl XKB keyboard language status
488 dnl ============================
489 AC_ARG_ENABLE(modelock, AS_HELP_STRING([--enable-modelock], [XKB keyboard language status support]),
490                 AC_DEFINE(XKB_MODELOCK, 1, [whether XKB language MODELOCK should be enabled]))
492 dnl XShape support
493 dnl ==============
494 AC_ARG_ENABLE([shape],
495     [AS_HELP_STRING([--disable-shape], [disable shaped window extension support])],
496     [AS_CASE(["$enableval"],
497         [yes|no], [],
498         [AC_MSG_ERROR([bad value $enableval for --enable-shape]) ]) ],
499     [enable_shape=auto])
500 WM_XEXT_CHECK_XSHAPE
502 dnl XRandR support
503 dnl ==============
504 xrandr=no
505 AC_ARG_ENABLE(xrandr, AS_HELP_STRING([--enable-xrandr], [enable XRandR window extension support (NOT recommended, buggy)]),
506                 xrandr=$enableval, xrandr=no)
507 added_xext=no
509 LIBXRANDR=
510 if test "$xrandr" = yes; then
511         AC_CHECK_LIB(Xrandr, XRRQueryExtension, [LIBXRANDR=-lXrandr
512                 added_xext=yes
513                 AC_DEFINE(HAVE_XRANDR, 1, [define if you want support for XRandR (set by configure)])],
514                 xrandr=no, $XLFLAGS $XLIBS)
516 AC_SUBST(LIBXRANDR)
519 dnl libWINGS uses math functions, check whether usage requires linking
520 dnl against libm
522 WM_CHECK_LIBM
525 dnl libWINGS uses FcPatternDel from libfontconfig
527 AC_MSG_CHECKING([for fontconfig library])
528 FCLIBS=`$PKGCONFIG fontconfig --libs`
529 if test "x$FCLIBS" = "x" ; then
530         AC_MSG_RESULT([not found])
531 else
532         AC_MSG_RESULT([found])
534 AC_SUBST(FCLIBS)
537 dnl Xft2 antialiased font support
538 dnl =============================
540 xft=yes
541 XFTLIBS=""
543 if test "x$PKGCONFIG" != x -a "`$PKGCONFIG xft; echo $?`" = 0; then
544         XFTCONFIG="$PKGCONFIG xft"
545         pkgconfig_xft=yes
546 else
547         AC_CHECK_PROG(XFTCONFIG, xft-config, xft-config)
550 AC_MSG_CHECKING([for the Xft2 library])
552 if test "x$XFTCONFIG" != x; then
553         XFTLIBS=`$XFTCONFIG --libs`
554         XFTFLAGS=`$XFTCONFIG --cflags`
555         AC_MSG_RESULT([found])
556 else
557         AC_MSG_RESULT([not found])
558         echo
559         echo "ERROR!!! libXft2 is not installed or could not be found."
560         echo "         Xft2 is a requirement for building Window Maker."
561         echo "         Please install it (along with fontconfig) before continuing."
562         echo
563         exit 1
566 minXFT="2.1.0"
567 goodxft="no"
570 dnl The macro below will use $XFTFLAGS (defined above) to find Xft.h
572 WM_CHECK_XFT_VERSION($minXFT, goodxft=yes, goodxft=no)
574 if test "$goodxft" = no; then
575         echo
576         echo "ERROR!!! libXft on this system is an old version."
577         echo "         Please consider upgrading to at least version ${minXFT}."
578         echo
579         exit 1
582 AC_SUBST(XFTFLAGS)
583 AC_SUBST(XFTLIBS)
586 dnl XINERAMA support
587 dnl ================
588 xinerama=no
589 AC_ARG_ENABLE(xinerama, AS_HELP_STRING([--enable-xinerama], [enable Xinerama extension support]),
590                 xinerama=$enableval, xinerama=no)
592 LIBXINERAMA=
593 if test "$xinerama" = yes; then
594         AC_CHECK_LIB(Xinerama, XineramaQueryScreens, 
595                 [LIBXINERAMA=-lXinerama
596                 xfxine=yes],
597                 xfxine=no, $XLFLAGS $XLIBS)
599         AC_CHECK_LIB(Xext, XineramaGetInfo,
600                 [sunxine=yes
601                 ], sunxine=no, $XLFLAGS $XLIBS)
603         if test "$xfxine" = yes; then
604                 xine=1
605         fi
607         if test "$sunxine" = yes; then
608             xine=1
609             AC_DEFINE(SOLARIS_XINERAMA, 1, 
610                 [define if you want support for the XINERAMA extension and are in Solaris (set by configure)])
611         fi
613         if test "$xine" = 1; then
614             AC_DEFINE(USE_XINERAMA, 1,
615                 [define if you want support for the XINERAMA extension (set by configure)])
616         fi
618 AC_SUBST(LIBXINERAMA)
621 dnl MIT-SHM support
622 dnl ===============
623 shm=yes
624 AC_ARG_ENABLE(shm, AS_HELP_STRING([--disable-shm], [disable usage of MIT-SHM extension]),
625                 shm=$enableval, shm=yes)
627 if test "$shm" = yes; then
628         AC_CHECK_LIB(Xext, XShmAttach, ok=yes, ok=no, $XLFLAGS $XLIBS)
630         if test "$ok" = yes; then
631         AC_CHECK_FUNC(shmget, ok=yes, ok=no)
632         fi
634         if test "$ok" = yes; then
635                 if test "$added_xext" = no; then
636                         XLIBS="-lXext $XLIBS"
637                 fi
638                 AC_DEFINE(XSHM, 1, [define if X's shared memory extension is available (set by configure)])
639         fi
643 dnl ==============================================
644 dnl         Graphic Format Libraries
645 dnl ==============================================
647 dnl XPM Support
648 dnl ===========
649 AC_ARG_ENABLE([xpm],
650     [AS_HELP_STRING([--disable-xpm], [disable use of XPM pixmaps through libXpm])],
651     [AS_CASE(["$enableval"],
652         [yes|no], [],
653         [AC_MSG_ERROR([bad value $enableval for --enable-xpm])] )],
654     [enable_xpm=auto])
655 WM_IMGFMT_CHECK_XPM
658 # for wmlib
659 AC_SUBST(XCFLAGS)
660 # for test
661 AC_SUBST(XLFLAGS)
662 AC_SUBST(XLIBS)
663 AC_SUBST(X_EXTRA_LIBS)
665 dnl ===============================================
666 dnl             End of stuff that uses X
667 dnl ===============================================
669 dnl PNG Support
670 dnl ===========
671 AC_ARG_ENABLE([png],
672     [AS_HELP_STRING([--disable-png], [disable PNG support through libpng])],
673     [AS_CASE(["$enableval"],
674         [yes|no], [],
675         [AC_MSG_ERROR([bad value $enableval for --enable-png])] )],
676     [enable_png=auto])
677 WM_IMGFMT_CHECK_PNG
680 dnl JPEG Support
681 dnl ============
682 AC_ARG_ENABLE([jpeg],
683     [AS_HELP_STRING([--disable-jpeg], [disable JPEG support through libjpeg])],
684     [AS_CASE(["$enableval"],
685         [yes|no], [],
686         [AC_MSG_ERROR([bad value $enableval for --enable-jpeg])] )],
687     [enable_jpeg=auto])
688 WM_IMGFMT_CHECK_JPEG
691 dnl GIF Support
692 dnl ============
693 AC_ARG_ENABLE(gif,
694     [AS_HELP_STRING([--disable-gif], [disable GIF support through libgif or libungif])],
695     [AS_CASE(["$enableval"],
696         [yes|no], [],
697         [AC_MSG_ERROR([bad value $enableval for --enable-gif])] )],
698     [enable_gif=auto])
699 WM_IMGFMT_CHECK_GIF
702 dnl TIFF Support
703 dnl ============
704 AC_ARG_ENABLE([tiff],
705     [AS_HELP_STRING([--disable-tiff], [disable use of TIFF images through libtiff])],
706     [AS_CASE(["$enableval"],
707         [yes|no], [],
708         [AC_MSG_ERROR([bad value $enableval for --enable-tiff])] )],
709     [enable_tiff=auto])
710 WM_IMGFMT_CHECK_TIFF
713 dnl PPM Support
714 dnl ===========
715 # The PPM format is always enabled because we have built-in support for the format
716 # We are not using any external library like libppm
717 supported_gfx="$supported_gfx builtin-PPM"
720 # Choice of the default format for icons
721 AS_IF([test "x$enable_tiff" != "xno"],
722     [ICONEXT="tiff"],
723     [ICONEXT="xpm"])
726 LIBRARY_SEARCH_PATH="$lib_search_path"
727 HEADER_SEARCH_PATH="$inc_search_path"
729 AC_SUBST(LIBRARY_SEARCH_PATH)
730 AC_SUBST(HEADER_SEARCH_PATH)
733 AC_SUBST(GFXLIBS)
734 AC_SUBST(ICONEXT)
735 AM_CONDITIONAL([ICON_EXT_XPM],  [test "x$ICONEXT" = "xxpm"])
736 AM_CONDITIONAL([ICON_EXT_TIFF], [test "x$ICONEXT" = "xtiff"])
739 dnl ==============================================
740 dnl         End of Graphic Format Libraries
741 dnl ==============================================
745 dnl stdlib.h is checked here, because of conflict in jpeglib.h
746 AC_CHECK_HEADERS(stdlib.h)
748 # AC_PREFIX_PROGRAM(wmaker)
750 dnl Support for PIXMAPDIR option
751 dnl ============================
752 AC_ARG_WITH(pixmapdir, AS_HELP_STRING([--with-pixmapdir=PATH], [specify where pixmaps are located [DATADIR/pixmaps]]))
754 if test "x$with_pixmapdir" != "x"; then
755         pixmapdir=$with_pixmapdir
756 else
757         pixmapdir='${datadir}/pixmaps'
759 AC_SUBST(pixmapdir)
762 dnl Support for GNUSTEP_LOCAL_ROOT, for WPrefs.app
763 dnl ==============================================
765 AC_ARG_WITH(gnustepdir, AS_HELP_STRING([--with-gnustepdir=PATH], [specify the directory for GNUstep applications]))
767 if test "x`echo $with_gnustepdir | grep ^/`" != "x"; then
768     appspath=$with_gnustepdir
771 if test "x$appspath$GNUSTEP_LOCAL_ROOT" = "x"; then
772     wprefs_base_dir=${prefix}
773     wprefs_datadir="${datadir}/WPrefs"
774     wprefs_bindir="${bindir}"
775 else
776     gnustepdir=$appspath
778     if test "x$GNUSTEP_LOCAL_ROOT" != "x" ; then
779         gnustepdir=`echo "$GNUSTEP_LOCAL_ROOT" | sed -e "s|^${prefix}|prefix|"`
780         gnustepdir=`echo $gnustepdir | sed -e 's|^prefix|${prefix}|'`
781     fi
783     wprefs_base_dir=$gnustepdir/Applications
784     wprefs_datadir=$wprefs_base_dir/WPrefs.app
785     wprefs_bindir=$wprefs_base_dir/WPrefs.app
788 AC_SUBST(wprefs_datadir)
789 AC_SUBST(wprefs_bindir)
792 dnl Enable User Defined Menu thing
793 dnl ==============================
794 AC_ARG_ENABLE(usermenu, AS_HELP_STRING([--enable-usermenu], [user defined menus for applications]),
795 if test "$enableval" = yes; then
796         AC_DEFINE(USER_MENU, 1, [define if you want user defined menus for applications])
800 gl_LD_VERSION_SCRIPT
802 AC_OUTPUT(Makefile po/Makefile util/Makefile util/po/Makefile test/Makefile \
803         WINGs/Makefile WINGs/WINGs/Makefile WINGs/Documentation/Makefile \
804         WINGs/Examples/Makefile WINGs/Resources/Makefile WINGs/Tests/Makefile \
805         WINGs/Extras/Makefile WINGs/po/Makefile \
806         wmlib/Makefile wrlib/Makefile wrlib/tests/Makefile \
807         src/Makefile src/wconfig.h \
808         doc/Makefile doc/sk/Makefile doc/cs/Makefile \
809         doc/ru/Makefile \
810         WindowMaker/Makefile WindowMaker/Backgrounds/Makefile \
811         WindowMaker/Defaults/Makefile WindowMaker/IconSets/Makefile \
812         WindowMaker/Icons/Makefile WindowMaker/Pixmaps/Makefile \
813         WindowMaker/Styles/Makefile WindowMaker/Themes/Makefile \
814         WPrefs.app/Makefile WPrefs.app/tiff/Makefile WPrefs.app/xpm/Makefile \
815         WPrefs.app/po/Makefile )
818 dnl Output some helpful data for compiling wraster and WINGs/WUtil apps
819 dnl ===================================================================
821 dnl echo "WFLAGS=\"$LIBPL_INC_PATH -I$prefix/include\"" > WINGs-flags
822 dnl echo "WLIBS=\"-L$exec_prefix/lib -lWINGs -lwraster $LIBPL_LIBS $GFXLIBS -lm\""\
823 dnl     | sed -e 's|\$(prefix)|'"$prefix|" >> WINGs-flags
825 dnl The #lp# and #rp# stuff below is a hack because [ and ] get lost when
826 dnl parsed by m4
828 AC_SUBST(lib_search_path)
829 AC_SUBST(inc_search_path)
832 dnl Spit out the configuration
833 dnl ==========================
835 if test "x$MOFILES" = "x"; then
836         mof=None
837 else
838         mof=`echo $MOFILES`
841 if test "x$MOFILES" = "x"; then
842         languages=None
843 else
844         languages=`echo $MOFILES | sed 's/.mo//g'`
847 echo
848 echo "Window Maker was configured as follows:"
849 echo
850 echo "Installation path prefix            : $prefix"
851 echo "Installation path for binaries      : $_bindir"
852 echo "Installation path for libraries     : $libdir"
853 echo "Installation path for WPrefs.app    : $wprefs_base_dir" | sed -e 's|\${prefix}|'"$prefix|"
854 echo "Supported X extensions:             :$supported_xext"
855 echo "Supported graphic format libraries  :$supported_gfx"
856 echo "Unsupported features                :$unsupported"
857 echo "Antialiased text support in WINGs   : $xft"
858 echo "Xinerama extension support          : $xinerama"
859 echo "XRandR extension support            : $xrandr"
860 echo "Translated message files to install : $mof"
861 dnl echo "Supported languages beside English  : $languages"
862 if test "x$MOFILES" != "x"; then
863         echo "Installation path for translations  : $NLSDIR" | sed -e 's|\$(prefix)|'"$prefix|"
865 AS_IF([test "x$debug" = "xyes"],
866     [AS_ECHO(["Debug enabled: CFLAGS = $CFLAGS"]) ])
867 echo
869 dnl WM_PRINT_REDCRAP_BUG_STATUS
871 AS_IF([test "x$enable_jpeg" = xno], [dnl
872     AS_ECHO(["WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING"])
873     AS_ECHO([])
874     AS_ECHO(["JPEG support will not be included because the JPEG library is"])
875     AS_ECHO(["not installed correctly or was not found. Background images"])
876     AS_ECHO(["from themes will not display as they usually are JPEG files."])
877     AS_ECHO([])
878     AS_ECHO(["To fix, download and install the jpeg library and/or make sure you"])
879     AS_ECHO(["installed all jpeg related packages, SPECIALLY the development packages"])
880     AS_ECHO(["like jpeg-dev (if you use some prepackaged version of libjpeg)."])
881     AS_ECHO([])
882     AS_ECHO(["WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING"])dnl
886 dnl This is for Emacs.  I'm lazy, I know... (nicolai)
887 dnl ================================================
888 dnl Local Variables:
889 dnl compile-command: "autoconf"
890 dnl End: