RandR misc.
[wmaker-crm.git] / configure.ac
blobdbcc55777d128adde98692886145e7832b761e55
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 GCC provides a couple of checks to detect incorrect macro uses
148      AX_CFLAGS_GCC_OPTION([-Wundef])
149      AX_CFLAGS_GCC_OPTION([-Wunused-macros])
150 ], [dnl
151      dnl When debug not enabled, we try to avoid some non-necessary
152      dnl messages from the compiler
153      dnl
154      dnl To support legacy X servers, we have sometime to use
155      dnl functions marked as deprecated. We do not wish our users
156      dnl to be worried about it
157      AX_CFLAGS_GCC_OPTION([-Wno-deprecated])
158      AX_CFLAGS_GCC_OPTION([-Wno-deprecated-declarations])
162 dnl Tracking on what is detected for final status
163 dnl =============================================
164 unsupported=""
165 supported_xext=""
166 supported_gfx=""
169 dnl Platform-specific Makefile setup
170 dnl ================================
171 AS_CASE(["$host"],
172     [*-*-linux*|*-*-cygwin*|*-gnu*], [WM_OSDEP="linux" ; CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=600"],
173     [*-*-freebsd*|*-k*bsd-gnu*],     [WM_OSDEP="bsd"   ; CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=600 -DFREEBSD"],
174     [*-*-netbsd*],                   [WM_OSDEP="bsd"   ; CPPFLAGS="$CPPFLAGS -DNETBSD"],
175     [*-*-openbsd*],                  [WM_OSDEP="bsd"   ; CPPFLAGS="$CPPFLAGS -DOPENBSD"],
176     [*-*-dragonfly*],                [WM_OSDEP="bsd"   ; CPPFLAGS="$CPPFLAGS -DDRAGONFLYBSD"],
177     [*-apple-darwin*],               [WM_OSDEP="darwin"],
178     [*-*-solaris*],                  [WM_OSDEP="stub"],  dnl  solaris.c when done
179     [WM_OSDEP="stub"])
180 AM_CONDITIONAL([WM_OSDEP_LINUX],   [test "x$WM_OSDEP" = "xlinux"])
181 AM_CONDITIONAL([WM_OSDEP_BSD],     [test "x$WM_OSDEP" = "xbsd"])
182 AM_CONDITIONAL([WM_OSDEP_DARWIN],  [test "x$WM_OSDEP" = "xdarwin"])
183 AM_CONDITIONAL([WM_OSDEP_GENERIC], [test "x$WM_OSDEP" = "xstub"])
186 dnl the prefix
187 dnl ==========
189 dnl move this earlier in the script... anyone know why this is handled
190 dnl in such a bizarre way?
192 test "x$prefix" = xNONE && prefix=$ac_default_prefix
193 dnl Let make expand exec_prefix.
194 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
197 _bindir=`eval echo $bindir`
198 _bindir=`eval echo $_bindir`
200 lib_search_path='-L${libdir}'
202 inc_search_path='-I${includedir}'
204 dnl ===============================================
205 dnl Specify paths to look for libraries and headers
206 dnl ===============================================
207 AC_ARG_WITH(libs-from, AS_HELP_STRING([--with-libs-from], [pass compiler flags to look for libraries]),
208         [lib_search_path="$withval $lib_search_path"])
210 AC_ARG_WITH(incs-from, AS_HELP_STRING([--with-incs-from], [pass compiler flags to look for header files]),
211         [inc_search_path="$withval $inc_search_path"])
214 dnl Boehm GC
215 dnl ========
216 AC_ARG_ENABLE([boehm-gc],
217     [AS_HELP_STRING([--enable-boehm-gc], [use Boehm GC instead of the default libc malloc() [default=no]])],
218     [AS_CASE(["$enableval"],
219         [yes], [with_boehm_gc=yes],
220         [no],  [with_boehm_gc=no],
221         [AC_MSG_ERROR([bad value $enableval for --enable-boehm-gc])] )],
222     [with_boehm_gc=no])
223 AS_IF([test "x$with_boehm_gc" = "xyes"],
224     AC_SEARCH_LIBS([GC_malloc], [gc],
225         [AC_DEFINE(USE_BOEHM_GC, 1, [Define if Boehm GC is to be used])],
226         [AC_MSG_FAILURE([--enable-boehm-gc specified but test for libgc failed])]))
229 dnl LCOV
230 dnl ====
231 AC_ARG_ENABLE([lcov],
232     [AS_HELP_STRING([--enable-lcov[=output-directory]], [enable coverage data generation using LCOV (GCC only) [default=no]])],
233     [],
234     [enable_lcov=no])
236 AS_IF([test "x$enable_lcov" != "xno"],
237     [AX_CFLAGS_GCC_OPTION(-fprofile-arcs -ftest-coverage)
238     AS_IF([test "x$enable_lcov" = "xyes"],
239         [lcov_output_directory="coverage-report"],
240         [lcov_output_directory="${enable_lcov}/coverage-report"])
241     AC_SUBST(lcov_output_directory)])
243 AM_CONDITIONAL([USE_LCOV], [test "x$enable_lcov" != "xno"])
246 dnl ============================
247 dnl Checks for library functions
248 dnl ============================
249 dnl not used anywhere
250 AC_FUNC_MEMCMP
251 AC_FUNC_VPRINTF
252 AC_CHECK_FUNCS(gethostname select poll strcasecmp strncasecmp \
253                setsid mallinfo mkstemp sysconf)
254 AC_SEARCH_LIBS([strerror], [cposix])
256 dnl Check for strlcat/strlcpy
257 dnl =========================
258 AC_ARG_WITH([libbsd],
259   [AS_HELP_STRING([--without-libbsd], [do not use libbsd for strlcat and strlcpy [default=check]])],
260   [AS_IF([test "x$with_libbsd" != "xno"],
261     [with_libbsd=bsd]
262     [with_libbsd=]
263   )],
264   [with_libbsd=bsd])
266 tmp_libs=$LIBS
267 AC_SEARCH_LIBS([strlcat],[$with_libbsd],
268   [AC_DEFINE(HAVE_STRLCAT, 1, [Define if strlcat is available])],
269   [],
270   []
272 AC_SEARCH_LIBS([strlcpy],[$with_libbsd],
273   [AC_DEFINE(HAVE_STRLCAT, 1, [Define if strlcpy is available])],
274   [],
275   []
277 LIBS=$tmp_libs
279 LIBBSD=
280 AS_IF([test "x$ac_cv_search_strlcat" = "x-lbsd" -o "x$ac_cv_search_strlcpy" = "x-lbsd"],
281   [LIBBSD=-lbsd
282    AC_CHECK_HEADERS([bsd/string.h])]
284 AC_SUBST(LIBBSD)
286 dnl Check for OpenBSD kernel memory interface - kvm(3)
287 dnl ==================================================
288 AS_IF([test "x$WM_OSDEP" = "xbsd"],
289   AC_SEARCH_LIBS([kvm_openfiles], [kvm]) )
291 dnl Check for inotify
292 dnl =================
293 AC_CHECK_HEADERS(sys/inotify.h, AC_DEFINE(HAVE_INOTIFY, 1, Check for inotify))
296 dnl Checks for header files.
297 dnl =======================
298 AC_HEADER_SYS_WAIT
299 AC_HEADER_TIME
300 AC_CHECK_HEADERS(fcntl.h limits.h sys/ioctl.h libintl.h poll.h malloc.h ctype.h \
301                  string.h strings.h)
304 dnl Checks for typedefs, structures, and compiler characteristics.
305 dnl ==============================================================
306 AC_DECL_SYS_SIGLIST
307 AC_C_CONST
308 AC_C_INLINE
309 WM_C_NORETURN
310 AC_TYPE_SIZE_T
311 AC_TYPE_PID_T
312 AC_TYPE_SIGNAL
315 dnl pkg-config
316 dnl ==========
317 dnl AC_ARG_VAR(PKGCONFIG, [pkg-config command])
318 AC_CHECK_PROG(PKGCONFIG, pkg-config, pkg-config) 
320 dnl gettext
321 dnl =======
323 dnl AM_GNU_GETTEXT
325 INTLIBS=""
327 AC_CHECK_FUNC(gettext, [HAVEGETTEXT="yes"], 
328         AC_CHECK_LIB(intl, gettext, [INTLIBS="-lintl" HAVEGETTEXT="yes"],
329                          INTLIBS="" ))
331 AC_CHECK_PROG(XGETTEXT, xgettext, xgettext)
333 if test "$XGETTEXT" != ""; then 
334     if $XGETTEXT --help 2>&1 | grep illegal >/dev/null ; then
335         echo "xgettext isn't GNU version"
336         XGETTEXT=""
337     fi
340 if test "$LINGUAS" != ""; then
341     if test "$XGETTEXT" != "" -a "$HAVEGETTEXT" != ""; then
342         AC_DEFINE(I18N, 1, [Internationalization (I18N) support (set by configure)])
343         PO=""
344         echo "xgettext and gettext() exist; will build i18n support for $LINGUAS"
345     else
346         LINGUAS=""
347         PO=""
348         echo "xgettext and libintl.a don't both exist; will not build i18n support"
349     fi
350 else
351         INTLIBS=""
352         MOFILES=""
353         WPMOFILES=""
354         UTILMOFILES=""
355         PO=""
359 dnl The Tower of Babel
360 dnl ==================
362 dnl List of supported locales
363 dnl =========================
364 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"
365 supported_wprefs_locales="bg ca cs de es et fi fr hr hu it ja ko nl pt ru sk zh_CN zh_TW"
366 supported_wings_locales="bg ca cs de fr hu nl sk"
367 supported_util_locales="de es fr nl pt"
369 for lang in $LINGUAS; do
370         ok=0
371         for l in $supported_locales; do
372                 if test "$l" = "$lang"; then
373                         ok=1
374                         break
375                 fi
376         done
377         if test "$ok" = 1; then
378                 MOFILES="$MOFILES $lang.mo"
379         else
380                 echo "Locale $lang is not supported."
381         fi
382         ok=0
383         for l in $supported_wprefs_locales; do
384                 if test "$l" = "$lang"; then
385                         ok=1
386                         break
387                 fi
388         done
389         if test "$ok" = 1; then
390                 WPMOFILES="$WPMOFILES $lang.mo"
391         fi
392         ok=0
393         for l in $supported_util_locales; do
394                 if test "$l" = "$lang"; then
395                         ok=1
396                         break
397                 fi
398         done
399         if test "$ok" = 1; then
400                 UTILMOFILES="$UTILMOFILES $lang.mo"
401         fi
402         ok=0
403         for l in $supported_wings_locales; do
404                 if test "$l" = "$lang"; then
405                         ok=1
406                         break
407                 fi
408         done
409         if test "$ok" = 1; then
410                 WINGSMOFILES="$WINGSMOFILES $lang.mo"
411         fi
412 done
415 dnl Added by Oliver - Support for NLSDIR option
416 dnl ===========================================
417 AC_ARG_WITH(nlsdir, AS_HELP_STRING([--with-nlsdir=PATH], [specify where the locale stuff should go]))
419 if test "x$NLSDIR" = "x"; then
420         if test "x$with_nlsdir" != "x"; then
421                 NLSDIR=$with_nlsdir
422         else
423                 NLSDIR='$(prefix)/lib/locale'
424         fi
427 menutextdomain=
428 AC_ARG_WITH(menu-textdomain, AS_HELP_STRING([--with-menu-textdomain=DOMAIN], [specify gettext domain used for menu translations]),
429         [if test "x$withval" != "xno"; then
430          menutextdomain=$withval
431          fi])
432 AC_SUBST(menutextdomain)
434 AC_SUBST(INTLIBS)
435 AC_SUBST(NLSDIR)
436 AC_SUBST(MOFILES)
437 AC_SUBST(WPMOFILES)
438 AC_SUBST(UTILMOFILES)
439 AC_SUBST(WINGSMOFILES)
440 AC_SUBST(supported_locales)
442 dnl ===========================================
443 dnl             Stuff that uses X
444 dnl ===========================================
446 AC_PATH_XTRA
448 if test $no_x; then
449     AC_MSG_ERROR([The path for the X11 files not found!
450 Make sure you have X and it's headers and libraries (the -devel packages
451 in Linux) installed.])
454 X_LIBRARY_PATH=$x_libraries
455 XCFLAGS="$X_CFLAGS"
456 XLFLAGS="$X_LIBS"
457 XLIBS="-lX11 $X_EXTRA_LIBS"
459 lib_search_path="$lib_search_path $XLFLAGS"
460 inc_search_path="$inc_search_path $XCFLAGS"
462 AC_SUBST(X_LIBRARY_PATH)
464 dnl Decide which locale function to use, setlocale() or _Xsetlocale()
465 dnl by MANOME Tomonori 
466 dnl ===========================================
467 use_locale=yes
468 AC_ARG_ENABLE(locale, AS_HELP_STRING([--disable-locale], [disable use of X locale support]),
469               use_locale=no)
471 if test "$use_locale" = yes; then
472         AC_CHECK_LIB(X11, _Xsetlocale,
473                 AC_DEFINE(X_LOCALE, 1, [define if you want support for X window's X_LOCALE (set by configure)]),,
474                 $XLFLAGS $XLIBS)
477 dnl Check whether XInternAtoms() exist
478 dnl ==================================
479 AC_CHECK_LIB(X11, XInternAtoms, 
480              AC_DEFINE(HAVE_XINTERNATOMS, 1, [define if your X server has XInternAtoms() (set by configure)]),,
481              $XLFLAGS $XLIBS)
483 dnl Check whether XConvertCase() exist
484 dnl ==================================
485 AC_CHECK_LIB(X11, XConvertCase, 
486              AC_DEFINE(HAVE_XCONVERTCASE, 1, [define if your X server has XConvertCase() (set by configure)]),,
487              $XLFLAGS $XLIBS)
489 dnl XKB keyboard language status
490 dnl ============================
491 AC_ARG_ENABLE(modelock, AS_HELP_STRING([--enable-modelock], [XKB keyboard language status support]),
492                 AC_DEFINE(XKB_MODELOCK, 1, [whether XKB language MODELOCK should be enabled]))
494 dnl XShape support
495 dnl ==============
496 AC_ARG_ENABLE([shape],
497     [AS_HELP_STRING([--disable-shape], [disable shaped window extension support])],
498     [AS_CASE(["$enableval"],
499         [yes|no], [],
500         [AC_MSG_ERROR([bad value $enableval for --enable-shape]) ]) ],
501     [enable_shape=auto])
502 WM_XEXT_CHECK_XSHAPE
504 dnl MIT-SHM support
505 dnl ===============
506 AC_ARG_ENABLE([shm],
507     [AS_HELP_STRING([--disable-shm], [disable usage of MIT-SHM extension])],
508     [AS_CASE(["$enableval"],
509         [yes|no], [],
510         [AC_MSG_ERROR([bad value $enableval for --enable-shm]) ]) ],
511     [enable_shm=auto])
512 WM_XEXT_CHECK_XSHM
514 dnl X Misceleanous Utility
515 dnl ======================
516 # the libXmu is used in WRaster
517 WM_EXT_CHECK_XMU
519 dnl XINERAMA support
520 dnl ================
521 AC_ARG_ENABLE([xinerama],
522     [AS_HELP_STRING([--enable-xinerama], [enable Xinerama extension support])],
523     [AS_CASE(["$enableval"],
524         [yes|no], [],
525         [AC_MSG_ERROR([bad value $enableval for --enable-xinerama]) ]) ],
526     [enable_xinerama=auto])
527 WM_XEXT_CHECK_XINERAMA
529 dnl RandR support
530 dnl ==============
531 AC_ARG_ENABLE([randr],
532     [AS_HELP_STRING([--enable-randr], [enable RandR extension support (NOT recommended, buggy)])],
533     [AS_CASE(["$enableval"],
534         [yes|no], [],
535         [AC_MSG_ERROR([bad value $enableval for --enable-randr]) ]) ],
536     [enable_randr=no])
537 WM_XEXT_CHECK_XRANDR
540 dnl libWINGS uses math functions, check whether usage requires linking
541 dnl against libm
543 WM_CHECK_LIBM
546 dnl libWINGS uses FcPatternDel from libfontconfig
548 AC_MSG_CHECKING([for fontconfig library])
549 FCLIBS=`$PKGCONFIG fontconfig --libs`
550 if test "x$FCLIBS" = "x" ; then
551         AC_MSG_RESULT([not found])
552 else
553         AC_MSG_RESULT([found])
555 AC_SUBST(FCLIBS)
558 dnl Xft2 antialiased font support
559 dnl =============================
561 xft=yes
562 XFTLIBS=""
564 if test "x$PKGCONFIG" != x -a "`$PKGCONFIG xft; echo $?`" = 0; then
565         XFTCONFIG="$PKGCONFIG xft"
566         pkgconfig_xft=yes
567 else
568         AC_CHECK_PROG(XFTCONFIG, xft-config, xft-config)
571 AC_MSG_CHECKING([for the Xft2 library])
573 if test "x$XFTCONFIG" != x; then
574         XFTLIBS=`$XFTCONFIG --libs`
575         XFTFLAGS=`$XFTCONFIG --cflags`
576         AC_MSG_RESULT([found])
577 else
578         AC_MSG_RESULT([not found])
579         echo
580         echo "ERROR!!! libXft2 is not installed or could not be found."
581         echo "         Xft2 is a requirement for building Window Maker."
582         echo "         Please install it (along with fontconfig) before continuing."
583         echo
584         exit 1
587 minXFT="2.1.0"
588 goodxft="no"
591 dnl The macro below will use $XFTFLAGS (defined above) to find Xft.h
593 WM_CHECK_XFT_VERSION($minXFT, goodxft=yes, goodxft=no)
595 if test "$goodxft" = no; then
596         echo
597         echo "ERROR!!! libXft on this system is an old version."
598         echo "         Please consider upgrading to at least version ${minXFT}."
599         echo
600         exit 1
603 AC_SUBST(XFTFLAGS)
604 AC_SUBST(XFTLIBS)
607 dnl ==============================================
608 dnl         Graphic Format Libraries
609 dnl ==============================================
611 dnl XPM Support
612 dnl ===========
613 AC_ARG_ENABLE([xpm],
614     [AS_HELP_STRING([--disable-xpm], [disable use of XPM pixmaps through libXpm])],
615     [AS_CASE(["$enableval"],
616         [yes|no], [],
617         [AC_MSG_ERROR([bad value $enableval for --enable-xpm])] )],
618     [enable_xpm=auto])
619 WM_IMGFMT_CHECK_XPM
622 # for wmlib
623 AC_SUBST(XCFLAGS)
624 # for test
625 AC_SUBST(XLFLAGS)
626 AC_SUBST(XLIBS)
627 AC_SUBST(X_EXTRA_LIBS)
629 dnl ===============================================
630 dnl             End of stuff that uses X
631 dnl ===============================================
633 dnl PNG Support
634 dnl ===========
635 AC_ARG_ENABLE([png],
636     [AS_HELP_STRING([--disable-png], [disable PNG support through libpng])],
637     [AS_CASE(["$enableval"],
638         [yes|no], [],
639         [AC_MSG_ERROR([bad value $enableval for --enable-png])] )],
640     [enable_png=auto])
641 WM_IMGFMT_CHECK_PNG
644 dnl JPEG Support
645 dnl ============
646 AC_ARG_ENABLE([jpeg],
647     [AS_HELP_STRING([--disable-jpeg], [disable JPEG support through libjpeg])],
648     [AS_CASE(["$enableval"],
649         [yes|no], [],
650         [AC_MSG_ERROR([bad value $enableval for --enable-jpeg])] )],
651     [enable_jpeg=auto])
652 WM_IMGFMT_CHECK_JPEG
655 dnl GIF Support
656 dnl ============
657 AC_ARG_ENABLE(gif,
658     [AS_HELP_STRING([--disable-gif], [disable GIF support through libgif or libungif])],
659     [AS_CASE(["$enableval"],
660         [yes|no], [],
661         [AC_MSG_ERROR([bad value $enableval for --enable-gif])] )],
662     [enable_gif=auto])
663 WM_IMGFMT_CHECK_GIF
666 dnl TIFF Support
667 dnl ============
668 AC_ARG_ENABLE([tiff],
669     [AS_HELP_STRING([--disable-tiff], [disable use of TIFF images through libtiff])],
670     [AS_CASE(["$enableval"],
671         [yes|no], [],
672         [AC_MSG_ERROR([bad value $enableval for --enable-tiff])] )],
673     [enable_tiff=auto])
674 WM_IMGFMT_CHECK_TIFF
677 dnl PPM Support
678 dnl ===========
679 # The PPM format is always enabled because we have built-in support for the format
680 # We are not using any external library like libppm
681 supported_gfx="$supported_gfx builtin-PPM"
684 # Choice of the default format for icons
685 AS_IF([test "x$enable_tiff" != "xno"],
686     [ICONEXT="tiff"],
687     [ICONEXT="xpm"])
690 LIBRARY_SEARCH_PATH="$lib_search_path"
691 HEADER_SEARCH_PATH="$inc_search_path"
693 AC_SUBST(LIBRARY_SEARCH_PATH)
694 AC_SUBST(HEADER_SEARCH_PATH)
697 AC_SUBST(GFXLIBS)
698 AC_SUBST(ICONEXT)
699 AM_CONDITIONAL([ICON_EXT_XPM],  [test "x$ICONEXT" = "xxpm"])
700 AM_CONDITIONAL([ICON_EXT_TIFF], [test "x$ICONEXT" = "xtiff"])
703 dnl ==============================================
704 dnl         End of Graphic Format Libraries
705 dnl ==============================================
709 dnl stdlib.h is checked here, because of conflict in jpeglib.h
710 AC_CHECK_HEADERS(stdlib.h)
712 # AC_PREFIX_PROGRAM(wmaker)
714 dnl Support for PIXMAPDIR option
715 dnl ============================
716 AC_ARG_WITH(pixmapdir, AS_HELP_STRING([--with-pixmapdir=PATH], [specify where pixmaps are located [DATADIR/pixmaps]]))
718 if test "x$with_pixmapdir" != "x"; then
719         pixmapdir=$with_pixmapdir
720 else
721         pixmapdir='${datadir}/pixmaps'
723 AC_SUBST(pixmapdir)
726 dnl Support for GNUSTEP_LOCAL_ROOT, for WPrefs.app
727 dnl ==============================================
729 AC_ARG_WITH(gnustepdir, AS_HELP_STRING([--with-gnustepdir=PATH], [specify the directory for GNUstep applications]))
731 if test "x`echo $with_gnustepdir | grep ^/`" != "x"; then
732     appspath=$with_gnustepdir
735 if test "x$appspath$GNUSTEP_LOCAL_ROOT" = "x"; then
736     wprefs_base_dir=${prefix}
737     wprefs_datadir="${datadir}/WPrefs"
738     wprefs_bindir="${bindir}"
739 else
740     gnustepdir=$appspath
742     if test "x$GNUSTEP_LOCAL_ROOT" != "x" ; then
743         gnustepdir=`echo "$GNUSTEP_LOCAL_ROOT" | sed -e "s|^${prefix}|prefix|"`
744         gnustepdir=`echo $gnustepdir | sed -e 's|^prefix|${prefix}|'`
745     fi
747     wprefs_base_dir=$gnustepdir/Applications
748     wprefs_datadir=$wprefs_base_dir/WPrefs.app
749     wprefs_bindir=$wprefs_base_dir/WPrefs.app
752 AC_SUBST(wprefs_datadir)
753 AC_SUBST(wprefs_bindir)
756 dnl Enable User Defined Menu thing
757 dnl ==============================
758 AC_ARG_ENABLE(usermenu, AS_HELP_STRING([--enable-usermenu], [user defined menus for applications]),
759 if test "$enableval" = yes; then
760         AC_DEFINE(USER_MENU, 1, [define if you want user defined menus for applications])
764 gl_LD_VERSION_SCRIPT
766 AC_OUTPUT(Makefile po/Makefile util/Makefile util/po/Makefile test/Makefile \
767         WINGs/Makefile WINGs/WINGs/Makefile WINGs/Documentation/Makefile \
768         WINGs/Examples/Makefile WINGs/Resources/Makefile WINGs/Tests/Makefile \
769         WINGs/Extras/Makefile WINGs/po/Makefile \
770         wmlib/Makefile wrlib/Makefile wrlib/tests/Makefile \
771         src/Makefile src/wconfig.h \
772         doc/Makefile doc/sk/Makefile doc/cs/Makefile \
773         doc/ru/Makefile \
774         WindowMaker/Makefile WindowMaker/Backgrounds/Makefile \
775         WindowMaker/Defaults/Makefile WindowMaker/IconSets/Makefile \
776         WindowMaker/Icons/Makefile WindowMaker/Pixmaps/Makefile \
777         WindowMaker/Styles/Makefile WindowMaker/Themes/Makefile \
778         WPrefs.app/Makefile WPrefs.app/tiff/Makefile WPrefs.app/xpm/Makefile \
779         WPrefs.app/po/Makefile )
782 dnl Output some helpful data for compiling wraster and WINGs/WUtil apps
783 dnl ===================================================================
785 dnl echo "WFLAGS=\"$LIBPL_INC_PATH -I$prefix/include\"" > WINGs-flags
786 dnl echo "WLIBS=\"-L$exec_prefix/lib -lWINGs -lwraster $LIBPL_LIBS $GFXLIBS -lm\""\
787 dnl     | sed -e 's|\$(prefix)|'"$prefix|" >> WINGs-flags
789 dnl The #lp# and #rp# stuff below is a hack because [ and ] get lost when
790 dnl parsed by m4
792 AC_SUBST(lib_search_path)
793 AC_SUBST(inc_search_path)
796 dnl Spit out the configuration
797 dnl ==========================
799 if test "x$MOFILES" = "x"; then
800         mof=None
801 else
802         mof=`echo $MOFILES`
805 if test "x$MOFILES" = "x"; then
806         languages=None
807 else
808         languages=`echo $MOFILES | sed 's/.mo//g'`
811 echo
812 echo "Window Maker was configured as follows:"
813 echo
814 echo "Installation path prefix            : $prefix"
815 echo "Installation path for binaries      : $_bindir"
816 echo "Installation path for libraries     : $libdir"
817 echo "Installation path for WPrefs.app    : $wprefs_base_dir" | sed -e 's|\${prefix}|'"$prefix|"
818 echo "Supported X extensions:             :$supported_xext"
819 echo "Supported graphic format libraries  :$supported_gfx"
820 echo "Unsupported features                :$unsupported"
821 echo "Antialiased text support in WINGs   : $xft"
822 echo "Translated message files to install : $mof"
823 dnl echo "Supported languages beside English  : $languages"
824 if test "x$MOFILES" != "x"; then
825         echo "Installation path for translations  : $NLSDIR" | sed -e 's|\$(prefix)|'"$prefix|"
827 AS_IF([test "x$debug" = "xyes"],
828     [AS_ECHO(["Debug enabled: CFLAGS = $CFLAGS"]) ])
829 echo
831 dnl WM_PRINT_REDCRAP_BUG_STATUS
833 AS_IF([test "x$enable_jpeg" = xno], [dnl
834     AS_ECHO(["WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING"])
835     AS_ECHO([])
836     AS_ECHO(["JPEG support will not be included because the JPEG library is"])
837     AS_ECHO(["not installed correctly or was not found. Background images"])
838     AS_ECHO(["from themes will not display as they usually are JPEG files."])
839     AS_ECHO([])
840     AS_ECHO(["To fix, download and install the jpeg library and/or make sure you"])
841     AS_ECHO(["installed all jpeg related packages, SPECIALLY the development packages"])
842     AS_ECHO(["like jpeg-dev (if you use some prepackaged version of libjpeg)."])
843     AS_ECHO([])
844     AS_ECHO(["WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING"])dnl
848 dnl This is for Emacs.  I'm lazy, I know... (nicolai)
849 dnl ================================================
850 dnl Local Variables:
851 dnl compile-command: "autoconf"
852 dnl End: