Configure: Added explicit check for math library header
[wmaker-crm.git] / configure.ac
blob75ceab088025a9011fce31242362046ce581ffaa
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.4, , 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=3
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_ISC_POSIX
71 AC_PROG_CC
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     [CFLAGS="-g -O0" ; CPPFLAGS="$CPPFLAGS -DDEBUG"])
90 AX_CFLAGS_GCC_OPTION(-Wall)
91 AX_CFLAGS_GCC_OPTION(-Wextra -Wno-sign-compare -Wno-unused-parameter)
92 AS_IF([test "x$debug" = "xyes"],
93     [dnl When debug is enabled, we try to activate more checks from
94      dnl the compiler. They are on independant check because the
95      dnl macro checks all the options at once, but we may have cases
96      dnl where some options are not supported and we don't want to
97      dnl loose all of them.
98      dnl
99      dnl Floating-point comparison is not a good idea
100      AX_CFLAGS_GCC_OPTION([-Wfloat-equal])
101      dnl
102      dnl Try to report misuses of '&' versus '&&' and similar
103      AX_CFLAGS_GCC_OPTION([-Wlogical-op])
104      dnl
105      dnl Use of 'sizeof()' on inappropriate pointer types
106      AX_CFLAGS_GCC_OPTION([-Wpointer-arith])
107 ], [dnl
108      dnl When debug not enabled, we try to avoid some non-necessary
109      dnl messages from the compiler
110      dnl
111      dnl To support legacy X servers, we have sometime to use
112      dnl functions marked as deprecated. We do not wish our users
113      dnl to be worried about it
114      AX_CFLAGS_GCC_OPTION([-Wno-deprecated])
115      AX_CFLAGS_GCC_OPTION([-Wno-deprecated-declarations])
118 dnl Platform-specific Makefile setup
119 dnl ================================
120 AS_CASE(["$host"],
121     [*-*-linux*|*-*-cygwin*|*-gnu*], [WM_OSDEP="linux" ; CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=600"],
122     [*-*-freebsd*|*-k*bsd-gnu*],     [WM_OSDEP="bsd"   ; CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=600 -DFREEBSD"],
123     [*-*-netbsd*],                   [WM_OSDEP="bsd"   ; CPPFLAGS="$CPPFLAGS -DNETBSD"],
124     [*-*-openbsd*],                  [WM_OSDEP="bsd"   ; CPPFLAGS="$CPPFLAGS -DOPENBSD"],
125     [*-*-dragonfly*],                [WM_OSDEP="bsd"   ; CPPFLAGS="$CPPFLAGS -DDRAGONFLYBSD"],
126     [*-apple-darwin*],               [WM_OSDEP="darwin"],
127     [*-*-solaris*],                  [WM_OSDEP="stub"],  dnl  solaris.c when done
128     [WM_OSDEP="stub"])
129 AM_CONDITIONAL([WM_OSDEP_LINUX],   [test "x$WM_OSDEP" = "xlinux"])
130 AM_CONDITIONAL([WM_OSDEP_BSD],     [test "x$WM_OSDEP" = "xbsd"])
131 AM_CONDITIONAL([WM_OSDEP_DARWIN],  [test "x$WM_OSDEP" = "xdarwin"])
132 AM_CONDITIONAL([WM_OSDEP_GENERIC], [test "x$WM_OSDEP" = "xstub"])
135 dnl the prefix
136 dnl ==========
138 dnl move this earlier in the script... anyone know why this is handled
139 dnl in such a bizarre way?
141 test "x$prefix" = xNONE && prefix=$ac_default_prefix
142 dnl Let make expand exec_prefix.
143 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
146 _bindir=`eval echo $bindir`
147 _bindir=`eval echo $_bindir`
149 lib_search_path='-L${libdir}'
151 inc_search_path='-I${includedir}'
153 dnl ===============================================
154 dnl Specify paths to look for libraries and headers
155 dnl ===============================================
156 AC_ARG_WITH(libs-from, AS_HELP_STRING([--with-libs-from], [pass compiler flags to look for libraries]),
157         [lib_search_path="$withval $lib_search_path"])
159 AC_ARG_WITH(incs-from, AS_HELP_STRING([--with-incs-from], [pass compiler flags to look for header files]),
160         [inc_search_path="$withval $inc_search_path"])
163 dnl Boehm GC
164 dnl ========
165 with_boehm_gc=no
166 AC_ARG_ENABLE([boehm-gc],
167     [AS_HELP_STRING([--enable-boehm-gc], [use Boehm GC instead of the default libc malloc() [default=no]])],
168     [with_boehm_gc=$enableval])
170 AS_IF([test "x$with_boehm_gc" = "xyes"],
171     AC_SEARCH_LIBS([GC_malloc], [gc],
172         [AC_DEFINE(USE_BOEHM_GC, 1, [Define if Boehm GC is to be used])],
173         [AC_MSG_FAILURE([--enable-boehm-gc specified but test for libgc failed])],
174         []
175     )
178 dnl LCOV
179 dnl ====
180 AC_ARG_ENABLE([lcov],
181     [AS_HELP_STRING([--enable-lcov[=output-directory]], [enable coverage data generation using LCOV (GCC only) [default=no]])],
182     [],
183     [enable_lcov=no])
185 AS_IF([test "x$enable_lcov" != "xno"],
186     [AX_CFLAGS_GCC_OPTION(-fprofile-arcs -ftest-coverage)
187     if test "x$enable_lcov" = "xyes"; then
188         lcov_output_directory="coverage-report"
189     else
190         lcov_output_directory="${enable_lcov}/coverage-report"
191     fi
192     AC_SUBST(lcov_output_directory)]
194 AM_CONDITIONAL([USE_LCOV], [test "x$enable_lcov" != "xno"])
197 dnl ============================
198 dnl Checks for library functions
199 dnl ============================
200 dnl not used anywhere
201 AC_FUNC_MEMCMP
202 AC_FUNC_VPRINTF
203 AC_CHECK_FUNCS(gethostname select poll strcasecmp strncasecmp \
204                setsid mallinfo mkstemp sysconf)
206 dnl Check for strlcat/strlcpy
207 dnl =========================
208 AC_ARG_WITH([libbsd],
209   [AS_HELP_STRING([--without-libbsd], [do not use libbsd for strlcat and strlcpy [default=check]])],
210   [AS_IF([test "x$with_libbsd" != "xno"],
211     [with_libbsd=bsd]
212     [with_libbsd=]
213   )],
214   [with_libbsd=bsd])
216 tmp_libs=$LIBS
217 AC_SEARCH_LIBS([strlcat],[$with_libbsd],
218   [AC_DEFINE(HAVE_STRLCAT, 1, [Define if strlcat is available])],
219   [],
220   []
222 AC_SEARCH_LIBS([strlcpy],[$with_libbsd],
223   [AC_DEFINE(HAVE_STRLCAT, 1, [Define if strlcpy is available])],
224   [],
225   []
227 LIBS=$tmp_libs
229 LIBBSD=
230 AS_IF([test "x$ac_cv_search_strlcat" = "x-lbsd" -o "x$ac_cv_search_strlcpy" = "x-lbsd"],
231   [LIBBSD=-lbsd
232    AC_CHECK_HEADERS([bsd/string.h])]
234 AC_SUBST(LIBBSD)
236 dnl Check for OpenBSD kernel memory interface - kvm(3)
237 dnl ==================================================
238 AS_IF([test "x$WM_OSDEP" = "xbsd"],
239   AC_SEARCH_LIBS([kvm_openfiles], [kvm]) )
241 dnl Check for inotify
242 dnl =================
243 AC_CHECK_HEADERS(sys/inotify.h, AC_DEFINE(HAVE_INOTIFY, 1, Check for inotify))
246 dnl Checks for header files.
247 dnl =======================
248 AC_HEADER_SYS_WAIT
249 AC_HEADER_TIME
250 AC_CHECK_HEADERS(fcntl.h limits.h sys/ioctl.h libintl.h poll.h malloc.h ctype.h \
251                  string.h strings.h)
254 dnl Checks for typedefs, structures, and compiler characteristics.
255 dnl ==============================================================
256 AC_DECL_SYS_SIGLIST
257 AC_C_CONST
258 AC_C_INLINE
259 WM_C_NORETURN
260 AC_TYPE_SIZE_T
261 AC_TYPE_PID_T
262 AC_TYPE_SIGNAL
265 dnl pkg-config
266 dnl ==========
267 dnl AC_ARG_VAR(PKGCONFIG, [pkg-config command])
268 AC_CHECK_PROG(PKGCONFIG, pkg-config, pkg-config) 
270 dnl gettext
271 dnl =======
273 dnl AM_GNU_GETTEXT
275 INTLIBS=""
277 AC_CHECK_FUNC(gettext, [HAVEGETTEXT="yes"], 
278         AC_CHECK_LIB(intl, gettext, [INTLIBS="-lintl" HAVEGETTEXT="yes"],
279                          INTLIBS="" ))
281 AC_CHECK_PROG(XGETTEXT, xgettext, xgettext)
283 if test "$XGETTEXT" != ""; then 
284     if $XGETTEXT --help 2>&1 | grep illegal >/dev/null ; then
285         echo "xgettext isn't GNU version"
286         XGETTEXT=""
287     fi
290 if test "$LINGUAS" != ""; then
291     if test "$XGETTEXT" != "" -a "$HAVEGETTEXT" != ""; then
292         AC_DEFINE(I18N, 1, [Internationalization (I18N) support (set by configure)])
293         PO=""
294         echo "xgettext and gettext() exist; will build i18n support for $LINGUAS"
295     else
296         LINGUAS=""
297         PO=""
298         echo "xgettext and libintl.a don't both exist; will not build i18n support"
299     fi
300 else
301         INTLIBS=""
302         MOFILES=""
303         WPMOFILES=""
304         UTILMOFILES=""
305         PO=""
309 dnl The Tower of Babel
310 dnl ==================
312 dnl List of supported locales
313 dnl =========================
314 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"
315 supported_wprefs_locales="bg ca cs de es et fi fr hr hu it ja ko pt ru sk zh_CN zh_TW"
316 supported_wings_locales="bg ca cs de fr sk"
317 supported_util_locales="de es fr pt"
319 for lang in $LINGUAS; do
320         ok=0
321         for l in $supported_locales; do
322                 if test "$l" = "$lang"; then
323                         ok=1
324                         break
325                 fi
326         done
327         if test "$ok" = 1; then
328                 MOFILES="$MOFILES $lang.mo"
329         else
330                 echo "Locale $lang is not supported."
331         fi
332         ok=0
333         for l in $supported_wprefs_locales; do
334                 if test "$l" = "$lang"; then
335                         ok=1
336                         break
337                 fi
338         done
339         if test "$ok" = 1; then
340                 WPMOFILES="$WPMOFILES $lang.mo"
341         fi
342         ok=0
343         for l in $supported_util_locales; do
344                 if test "$l" = "$lang"; then
345                         ok=1
346                         break
347                 fi
348         done
349         if test "$ok" = 1; then
350                 UTILMOFILES="$UTILMOFILES $lang.mo"
351         fi
352         ok=0
353         for l in $supported_wings_locales; do
354                 if test "$l" = "$lang"; then
355                         ok=1
356                         break
357                 fi
358         done
359         if test "$ok" = 1; then
360                 WINGSMOFILES="$WINGSMOFILES $lang.mo"
361         fi
362 done
365 dnl Added by Oliver - Support for NLSDIR option
366 dnl ===========================================
367 AC_ARG_WITH(nlsdir, AS_HELP_STRING([--with-nlsdir=PATH], [specify where the locale stuff should go]))
369 if test "x$NLSDIR" = "x"; then
370         if test "x$with_nlsdir" != "x"; then
371                 NLSDIR=$with_nlsdir
372         else
373                 NLSDIR='$(prefix)/lib/locale'
374         fi
377 menutextdomain=
378 AC_ARG_WITH(menu-textdomain, AS_HELP_STRING([--with-menu-textdomain=DOMAIN], [specify gettext domain used for menu translations]),
379         [if test "x$withval" != "xno"; then
380          menutextdomain=$withval
381          fi])
382 AC_SUBST(menutextdomain)
384 AC_SUBST(INTLIBS)
385 AC_SUBST(NLSDIR)
386 AC_SUBST(MOFILES)
387 AC_SUBST(WPMOFILES)
388 AC_SUBST(UTILMOFILES)
389 AC_SUBST(WINGSMOFILES)
390 AC_SUBST(supported_locales)
392 dnl ===========================================
393 dnl             Stuff that uses X
394 dnl ===========================================
396 AC_PATH_XTRA
398 if test $no_x; then
399     AC_MSG_ERROR([The path for the X11 files not found!
400 Make sure you have X and it's headers and libraries (the -devel packages
401 in Linux) installed.])
404 X_LIBRARY_PATH=$x_libraries
405 XCFLAGS="$X_CFLAGS"
406 XLFLAGS="$X_LIBS"
407 XLIBS="-lX11 $X_EXTRA_LIBS"
408 LIBXMU="-lXmu"
409 AC_SUBST(LIBXMU)
411 lib_search_path="$lib_search_path $XLFLAGS"
412 inc_search_path="$inc_search_path $XCFLAGS"
414 AC_SUBST(X_LIBRARY_PATH)
416 dnl Decide which locale function to use, setlocale() or _Xsetlocale()
417 dnl by MANOME Tomonori 
418 dnl ===========================================
419 use_locale=yes
420 AC_ARG_ENABLE(locale, AS_HELP_STRING([--disable-locale], [disable use of X locale support]),
421               use_locale=no)
423 if test "$use_locale" = yes; then
424         AC_CHECK_LIB(X11, _Xsetlocale,
425                 AC_DEFINE(X_LOCALE, 1, [define if you want support for X window's X_LOCALE (set by configure)]),,
426                 $XLFLAGS $XLIBS)
429 dnl Check whether XInternAtoms() exist
430 dnl ==================================
431 AC_CHECK_LIB(X11, XInternAtoms, 
432              AC_DEFINE(HAVE_XINTERNATOMS, 1, [define if your X server has XInternAtoms() (set by configure)]),,
433              $XLFLAGS $XLIBS)
435 dnl Check whether XConvertCase() exist
436 dnl ==================================
437 AC_CHECK_LIB(X11, XConvertCase, 
438              AC_DEFINE(HAVE_XCONVERTCASE, 1, [define if your X server has XConvertCase() (set by configure)]),,
439              $XLFLAGS $XLIBS)
441 dnl XKB keyboard language status
442 dnl ============================
443 AC_ARG_ENABLE(modelock, AS_HELP_STRING([--enable-modelock], [XKB keyboard language status support]),
444                 AC_DEFINE(XKB_MODELOCK, 1, [whether XKB language MODELOCK should be enabled]))
446 dnl Shape support
447 dnl =============
448 shape=yes
449 AC_ARG_ENABLE(shape, AS_HELP_STRING([--disable-shape], [disable shaped window extension support]),
450                 shape=$enableval, shape=yes)
451 added_xext=no
453 if test "$shape" = yes; then
454         AC_CHECK_LIB(Xext, XShapeSelectInput, [XLIBS="-lXext $XLIBS"
455                 added_xext=yes
456                 AC_DEFINE(SHAPE, 1, [define if you want support for shaped windows (set by configure)])], 
457                 shape=no, $XLFLAGS $XLIBS)
460 dnl XRandR support
461 dnl ==============
462 xrandr=no
463 AC_ARG_ENABLE(xrandr, AS_HELP_STRING([--enable-xrandr], [enable XRandR window extension support (NOT recommended, buggy)]),
464                 xrandr=$enableval, xrandr=no)
465 added_xext=no
467 LIBXRANDR=
468 if test "$xrandr" = yes; then
469         AC_CHECK_LIB(Xrandr, XRRQueryExtension, [LIBXRANDR=-lXrandr
470                 added_xext=yes
471                 AC_DEFINE(HAVE_XRANDR, 1, [define if you want support for XRandR (set by configure)])],
472                 xrandr=no, $XLFLAGS $XLIBS)
474 AC_SUBST(LIBXRANDR)
477 dnl libWINGS uses math functions, check whether usage requires linking
478 dnl against libm
480 WM_CHECK_LIBM
483 dnl libWINGS uses FcPatternDel from libfontconfig
485 AC_MSG_CHECKING([for fontconfig library])
486 FCLIBS=`$PKGCONFIG fontconfig --libs`
487 if test "x$FCLIBS" = "x" ; then
488         AC_MSG_RESULT([not found])
489 else
490         AC_MSG_RESULT([found])
492 AC_SUBST(FCLIBS)
495 dnl Xft2 antialiased font support
496 dnl =============================
498 xft=yes
499 XFTLIBS=""
501 if test "x$PKGCONFIG" != x -a "`$PKGCONFIG xft; echo $?`" = 0; then
502         XFTCONFIG="$PKGCONFIG xft"
503         pkgconfig_xft=yes
504 else
505         AC_CHECK_PROG(XFTCONFIG, xft-config, xft-config)
508 AC_MSG_CHECKING([for the Xft2 library])
510 if test "x$XFTCONFIG" != x; then
511         XFTLIBS=`$XFTCONFIG --libs`
512         XFTFLAGS=`$XFTCONFIG --cflags`
513         AC_MSG_RESULT([found])
514 else
515         AC_MSG_RESULT([not found])
516         echo
517         echo "ERROR!!! libXft2 is not installed or could not be found."
518         echo "         Xft2 is a requirement for building Window Maker."
519         echo "         Please install it (along with fontconfig) before continuing."
520         echo
521         exit 1
524 minXFT="2.1.0"
525 goodxft="no"
528 dnl The macro below will use $XFTFLAGS (defined above) to find Xft.h
530 WM_CHECK_XFT_VERSION($minXFT, goodxft=yes, goodxft=no)
532 if test "$goodxft" = no; then
533         echo
534         echo "ERROR!!! libXft on this system is an old version."
535         echo "         Please consider upgrading to at least version ${minXFT}."
536         echo
537         exit 1
540 AC_SUBST(XFTFLAGS)
541 AC_SUBST(XFTLIBS)
544 dnl XINERAMA support
545 dnl ================
546 xinerama=no
547 AC_ARG_ENABLE(xinerama, AS_HELP_STRING([--enable-xinerama], [enable Xinerama extension support]),
548                 xinerama=$enableval, xinerama=no)
550 LIBXINERAMA=
551 if test "$xinerama" = yes; then
552         AC_CHECK_LIB(Xinerama, XineramaQueryScreens, 
553                 [LIBXINERAMA=-lXinerama
554                 xfxine=yes],
555                 xfxine=no, $XLFLAGS $XLIBS)
557         AC_CHECK_LIB(Xext, XineramaGetInfo,
558                 [sunxine=yes
559                 ], sunxine=no, $XLFLAGS $XLIBS)
561         if test "$xfxine" = yes; then
562                 xine=1
563         fi
565         if test "$sunxine" = yes; then
566             xine=1
567             AC_DEFINE(SOLARIS_XINERAMA, 1, 
568                 [define if you want support for the XINERAMA extension and are in Solaris (set by configure)])
569         fi
571         if test "$xine" = 1; then
572             AC_DEFINE(XINERAMA, 1, 
573                 [define if you want support for the XINERAMA extension (set by configure)])
574         fi
576 AC_SUBST(LIBXINERAMA)
579 dnl MIT-SHM support
580 dnl ===============
581 shm=yes
582 AC_ARG_ENABLE(shm, AS_HELP_STRING([--disable-shm], [disable usage of MIT-SHM extension]),
583                 shm=$enableval, shm=yes)
585 if test "$shm" = yes; then
586         AC_CHECK_LIB(Xext, XShmAttach, ok=yes, ok=no, $XLFLAGS $XLIBS)
588         if test "$ok" = yes; then
589         AC_CHECK_FUNC(shmget, ok=yes, ok=no)
590         fi
592         if test "$ok" = yes; then
593                 if test "$added_xext" = no; then
594                         XLIBS="-lXext $XLIBS"
595                 fi
596                 AC_DEFINE(XSHM, 1, [define if X's shared memory extension is available (set by configure)])
597         fi
601 dnl R6 Style Session Management Support
602 dnl ===================================
606 #AC_DEFINE(R6SM)
607 #AC_SUBST(XSMPLIBS)
611 dnl ==============================================
612 dnl         Graphic Format Libraries
613 dnl ==============================================
615 dnl XPM Support
616 dnl ===========
617 xpm=yes
618 AC_ARG_ENABLE(xpm, AS_HELP_STRING([--disable-xpm], [disable use of XPM pixmaps through libXpm]),
619         xpm=$enableval, xpm=yes)
621 if test "$xpm" = yes; then
622     WM_CHECK_LIB(Xpm, XpmCreatePixmapFromData, [$XLFLAGS $XLIBS])
624     if test "x$ac_cv_lib_Xpm_XpmCreatePixmapFromData" = xyes; then
625         WM_CHECK_HEADER(X11/xpm.h)
626         if test "x$ac_cv_header_X11_xpm_h" = xyes; then
627                 GFXLIBS="$GFXLIBS -lXpm"
628                 supported_gfx="XPM"
629                 AC_DEFINE(USE_XPM, 1, [define if XPM libraries are available (set by configure)])
630         else
631                 supported_gfx="builtin-XPM"
632         fi
633     fi
636 # for wmlib
637 AC_SUBST(XCFLAGS)
638 # for test
639 AC_SUBST(XLFLAGS)
640 AC_SUBST(XLIBS)
641 AC_SUBST(X_EXTRA_LIBS)
643 dnl ===============================================
644 dnl             End of stuff that uses X
645 dnl ===============================================
647 dnl PNG Support
648 dnl ===========
649 png=yes
650 AC_ARG_ENABLE(png, AS_HELP_STRING([--disable-png], [disable PNG support through libpng]),
651         png=$enableval, png=yes, png=no)
653 if test "$png" = yes ; then
654     my_libname=""
655     WM_CHECK_LIB(png, png_get_valid, [-lm])
656     if test "x$ac_cv_lib_png_png_get_valid" = xyes; then
657         my_libname="-lpng"
658     fi
660 dnl Retry with zlib
662     if test "x$my_libname" = x; then
663         unset ac_cv_lib_png_png_get_valid
664         WM_CHECK_LIB(png, png_get_valid, [-lz -lm])
665         if test "x$ac_cv_lib_png_png_get_valid" = xyes; then
666             my_libname="-lpng -lz"
667         fi
668     fi
670     if test "x$ac_cv_lib_png_png_get_valid" = xyes; then
671         WM_CHECK_HEADER(png.h)
672         if test "x$ac_cv_header_png_h" = xyes; then
673             GFXLIBS="$GFXLIBS $my_libname"
674             supported_gfx="$supported_gfx PNG"
675             AC_DEFINE(USE_PNG, 1, [define if PNG libraries are available (set by configure)])
676         fi
677     fi
681 dnl JPEG Support
682 dnl ============
683 jpeg=yes
684 ljpeg=""
685 AC_ARG_ENABLE(jpeg, AS_HELP_STRING([--disable-jpeg], [disable JPEG support through libjpeg]),
686         jpeg=$enableval, jpeg=yes, jpeg=no)
688 if test "$jpeg" = yes; then
689     WM_CHECK_LIB(jpeg, jpeg_destroy_compress)
691     if test "x$ac_cv_lib_jpeg_jpeg_destroy_compress" = xyes; then
693         ljpeg="-ljpeg"
695         WM_CHECK_HEADER(jpeglib.h)
696         if test "x$ac_cv_header_jpeglib_h" = xyes; then
697             GFXLIBS="$GFXLIBS -ljpeg"
698             supported_gfx="$supported_gfx JPEG"
699             AC_DEFINE(USE_JPEG, 1, [define if JPEG libraries are available (set by configure)])
700         fi
701     fi
705 dnl GIF Support
706 dnl ============
707 gif=yes
708 AC_ARG_ENABLE(gif, AS_HELP_STRING([--disable-gif], [disable GIF support through libgif or libungif]),
709         gif=$enableval, gif=yes, gif=no)
711 if test "$gif" = yes; then
712     my_libname=""
713     WM_CHECK_LIB(ungif, DGifOpenFileName, [$XLFLAGS $XLIBS])
714     if test "x$ac_cv_lib_ungif_DGifOpenFileName" = xyes; then
715         my_libname=-lungif
716     fi
718 dnl libungif is the same thing as libgif for all practical purposes.
720     if test "x$my_libname" = x; then
721         WM_CHECK_LIB(gif, DGifOpenFileName, [$XLFLAGS $XLIBS])
722         if test "x$ac_cv_lib_gif_DGifOpenFileName" = xyes; then
723             my_libname=-lgif
724         fi
725     fi
727     if test "$my_libname" != x; then
728         WM_CHECK_HEADER(gif_lib.h)
729         if test "x$ac_cv_header_gif_lib_h" = xyes; then
730             GFXLIBS="$GFXLIBS $my_libname"
731             supported_gfx="$supported_gfx GIF"
732             AC_DEFINE(USE_GIF, 1, [define if GIF libraries are available (set by configure)])
733         fi
734     fi
739 dnl TIFF Support
740 dnl ============
741 AC_ARG_ENABLE(tiff, 
742 AS_HELP_STRING([--disable-tiff], [disable use of TIFF images through libtiff]),
743         tif=$enableval, tif=yes, tif=no)
746 # TIFF can optionally have JPEG and/or zlib support. Must find out
747 # when they are supported so that correct library flags are passed during
748 # detection and linkage
751 # By default use xpm icons if tiff is not found.
752 ICONEXT="xpm"
755 if test "$tif" = yes; then
756     my_libname=""
757     WM_CHECK_LIB(tiff, TIFFGetVersion, [-lm])
758     if test "x$ac_cv_lib_tiff_TIFFGetVersion" = xyes; then
759         my_libname="-ltiff"
760     fi
762 dnl Retry with zlib
764     unset ac_cv_lib_tiff_TIFFGetVersion
765     if test "x$my_libname" = x; then
766         WM_CHECK_LIB(tiff, TIFFGetVersion, [$ljpeg -lz -lm])
767         if test "x$ac_cv_lib_tiff_TIFFGetVersion" = xyes; then
768             my_libname="-ltiff -lz"
769         fi
770     fi
772     if test "x$my_libname" = x; then
773         WM_CHECK_LIB(tiff34, TIFFGetVersion, [$ljpeg -lm])
774         if test "x$ac_cv_lib_tiff34_TIFFGetVersion" = xyes; then
775             my_libname="-ltiff34"
776         fi
777     fi
780     if test "x$my_libname" != x; then
781         WM_CHECK_HEADER(tiffio.h)
782         if test "x$ac_cv_header_tiffio_h" = xyes; then
783             GFXLIBS="$my_libname $GFXLIBS"
784             ICONEXT="tiff"
785             supported_gfx="$supported_gfx TIFF"
786             AC_DEFINE(USE_TIFF, 1, [define if TIFF libraries are available (set by configure)])     
787         fi
788     fi
791 LIBRARY_SEARCH_PATH="$lib_search_path"
792 HEADER_SEARCH_PATH="$inc_search_path"
794 AC_SUBST(LIBRARY_SEARCH_PATH)
795 AC_SUBST(HEADER_SEARCH_PATH)
798 AC_SUBST(GFXLIBS)
799 AC_SUBST(ICONEXT)
800 AM_CONDITIONAL([ICON_EXT_XPM],  [test "x$ICONEXT" = "xxpm"])
801 AM_CONDITIONAL([ICON_EXT_TIFF], [test "x$ICONEXT" = "xtiff"])
804 dnl ==============================================
805 dnl         End of Graphic Format Libraries
806 dnl ==============================================
810 dnl stdlib.h is checked here, because of conflict in jpeglib.h
811 AC_CHECK_HEADERS(stdlib.h)
813 # AC_PREFIX_PROGRAM(wmaker)
815 dnl Support for PIXMAPDIR option
816 dnl ============================
817 AC_ARG_WITH(pixmapdir, AS_HELP_STRING([--with-pixmapdir=PATH], [specify where pixmaps are located [DATADIR/pixmaps]]))
819 if test "x$with_pixmapdir" != "x"; then
820         pixmapdir=$with_pixmapdir
821 else
822         pixmapdir='${datadir}/pixmaps'
824 AC_SUBST(pixmapdir)
827 dnl Support for GNUSTEP_LOCAL_ROOT, for WPrefs.app
828 dnl ==============================================
830 AC_ARG_WITH(gnustepdir, AS_HELP_STRING([--with-gnustepdir=PATH], [specify the directory for GNUstep applications]))
832 if test "x`echo $with_gnustepdir | grep ^/`" != "x"; then
833     appspath=$with_gnustepdir
836 if test "x$appspath$GNUSTEP_LOCAL_ROOT" = "x"; then
837     wprefs_base_dir=${prefix}
838     wprefs_datadir="${datadir}/WPrefs"
839     wprefs_bindir="${bindir}"
840 else
841     gnustepdir=$appspath
843     if test "x$GNUSTEP_LOCAL_ROOT" != "x" ; then
844         gnustepdir=`echo "$GNUSTEP_LOCAL_ROOT" | sed -e "s|^${prefix}|prefix|"`
845         gnustepdir=`echo $gnustepdir | sed -e 's|^prefix|${prefix}|'`
846     fi
848     wprefs_base_dir=$gnustepdir/Applications
849     wprefs_datadir=$wprefs_base_dir/WPrefs.app
850     wprefs_bindir=$wprefs_base_dir/WPrefs.app
853 AC_SUBST(wprefs_datadir)
854 AC_SUBST(wprefs_bindir)
857 dnl Enable User Defined Menu thing
858 dnl ==============================
859 AC_ARG_ENABLE(usermenu, AS_HELP_STRING([--enable-usermenu], [user defined menus for applications]),
860 if test "$enableval" = yes; then
861         AC_DEFINE(USER_MENU, 1, [define if you want user defined menus for applications])
865 gl_LD_VERSION_SCRIPT
867 AC_OUTPUT(Makefile po/Makefile util/Makefile util/po/Makefile test/Makefile \
868         WINGs/Makefile WINGs/WINGs/Makefile WINGs/Documentation/Makefile \
869         WINGs/Examples/Makefile WINGs/Resources/Makefile WINGs/Tests/Makefile \
870         WINGs/Extras/Makefile WINGs/po/Makefile \
871         wmlib/Makefile wrlib/Makefile wrlib/tests/Makefile \
872         src/Makefile src/wconfig.h \
873         doc/Makefile doc/sk/Makefile doc/cs/Makefile \
874         doc/ru/Makefile \
875         WindowMaker/Makefile WindowMaker/Backgrounds/Makefile \
876         WindowMaker/Defaults/Makefile WindowMaker/IconSets/Makefile \
877         WindowMaker/Icons/Makefile WindowMaker/Pixmaps/Makefile \
878         WindowMaker/Styles/Makefile WindowMaker/Themes/Makefile \
879         WPrefs.app/Makefile WPrefs.app/tiff/Makefile WPrefs.app/xpm/Makefile \
880         WPrefs.app/po/Makefile )
883 dnl Output some helpful data for compiling wraster and WINGs/WUtil apps
884 dnl ===================================================================
886 dnl echo "WFLAGS=\"$LIBPL_INC_PATH -I$prefix/include\"" > WINGs-flags
887 dnl echo "WLIBS=\"-L$exec_prefix/lib -lWINGs -lwraster $LIBPL_LIBS $GFXLIBS -lm\""\
888 dnl     | sed -e 's|\$(prefix)|'"$prefix|" >> WINGs-flags
890 dnl The #lp# and #rp# stuff below is a hack because [ and ] get lost when
891 dnl parsed by m4
893 AC_SUBST(lib_search_path)
894 AC_SUBST(inc_search_path)
897 dnl Spit out the configuration
898 dnl ==========================
900 supported_gfx="$supported_gfx builtin-PPM"
902 if test "x$MOFILES" = "x"; then
903         mof=None
904 else
905         mof=`echo $MOFILES`
908 if test "x$MOFILES" = "x"; then
909         languages=None
910 else
911         languages=`echo $MOFILES | sed 's/.mo//g'`
914 echo
915 echo "Window Maker was configured as follows:"
916 echo
917 echo "Installation path prefix            : $prefix"
918 echo "Installation path for binaries      : $_bindir"
919 echo "Installation path for libraries     : $libdir"
920 echo "Installation path for WPrefs.app    : $wprefs_base_dir" | sed -e 's|\${prefix}|'"$prefix|"
921 echo "Supported graphic format libraries  : $supported_gfx"
922 echo "Antialiased text support in WINGs   : $xft"
923 echo "Xinerama extension support          : $xinerama"
924 echo "XRandR extension support            : $xrandr"
925 echo "Translated message files to install : $mof"
926 dnl echo "Supported languages beside English  : $languages"
927 if test "x$MOFILES" != "x"; then
928         echo "Installation path for translations  : $NLSDIR" | sed -e 's|\$(prefix)|'"$prefix|"
930 AS_IF([test "x$debug" = "xyes"], [echo "Debug information enabled           : $debug"])
931 echo
933 dnl WM_PRINT_REDCRAP_BUG_STATUS
935 if test "x$ac_cv_header_jpeglib_h" != xyes; then
936 echo "WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING"
937 echo
938 echo "JPEG support will not be included because the JPEG library is"
939 echo "not installed correctly or was not found. Background images"
940 echo "from themes will not display as they usually are JPEG files."
941 echo
942 echo "To fix, download and install the jpeg library and/or make sure you"
943 echo "installed all jpeg related packages, SPECIALLY the development packages"
944 echo "like jpeg-devel (if you use some prepackaged version of libjpeg)."
945 echo
946 echo "WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING"
950 dnl This is for Emacs.  I'm lazy, I know... (nicolai)
951 dnl ================================================
952 dnl Local Variables:
953 dnl compile-command: "autoconf"
954 dnl End: