WINGs: Added attribute 'noreturn' to public function 'WMScreenMainLoop'
[wmaker-crm.git] / configure.ac
blobd995e630d41a6ac73910a3dd384fc7ad6e3e987a
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_ISC_POSIX
71 AC_PROG_CC
72 WM_PROG_CC_C11
73 AC_PROG_LN_S
74 AC_PROG_GCC_TRADITIONAL
75 AC_PROG_LIBTOOL
78 dnl Debugging Options
79 dnl =================
80 AC_ARG_ENABLE(debug,
81     [AS_HELP_STRING([--enable-debug], [enable debugging options, @<:@default=no@:>@])],
82     [AS_CASE(["$enableval"],
83         [yes], [debug=yes],
84         [no],  [debug=no],
85         [AC_MSG_ERROR([bad value $enableval for --enable-debug])] )],
86     [debug=no])
87 AS_IF([test "x$debug" = "xyes"],
88     [dnl This flag should have already been detected and added, but if user
89      dnl provided an explicit CFLAGS it may not be the case
90      AS_IF([echo " $CFLAGS " | grep " -g " 2>&1 > /dev/null],
91            [@%:@ Debug symbol already activated],
92            [AX_CFLAGS_GCC_OPTION([-g])])
93      dnl
94      dnl This flag generally makes debugging nightmarish, remove it if present
95      CFLAGS="`echo "$CFLAGS" | sed -e 's/-fomit-frame-pointer *//' `"
96      dnl
97      dnl Enable internal debug code
98      CPPFLAGS="$CPPFLAGS -DDEBUG"
99 ],  [dnl
100      dnl When debug is not enabled, the user probably does not wants to keep
101      dnl assertions in the final program
102      CPPFLAGS="$CPPFLAGS -DNDEBUG"
106 AX_CFLAGS_GCC_OPTION(-Wall)
107 AX_CFLAGS_GCC_OPTION(-Wextra -Wno-sign-compare)
108 AS_IF([test "x$debug" = "xyes"],
109     [dnl When debug is enabled, we try to activate more checks from
110      dnl the compiler. They are on independant check because the
111      dnl macro checks all the options at once, but we may have cases
112      dnl where some options are not supported and we don't want to
113      dnl loose all of them.
114      dnl
115      dnl Floating-point comparison is not a good idea
116      AX_CFLAGS_GCC_OPTION([-Wfloat-equal])
117      dnl
118      dnl Try to report misuses of '&' versus '&&' and similar
119      AX_CFLAGS_GCC_OPTION([-Wlogical-op])
120      dnl
121      dnl Reports declaration of global things that are done inside
122      dnl a local environment, instead of using the appropriate
123      dnl header
124      AX_CFLAGS_GCC_OPTION([-Wnested-externs])
125      dnl
126      dnl Use of 'sizeof()' on inappropriate pointer types
127      AX_CFLAGS_GCC_OPTION([-Wpointer-arith])
128      dnl
129      dnl Having more than 1 prototype for a function makes code updates
130      dnl more difficult, so try to avoid it
131      AX_CFLAGS_GCC_OPTION([-Wredundant-decls])
132      dnl
133      dnl Proper attributes helps the compiler to produce better code
134      WM_CFLAGS_CHECK_FIRST([format attribute suggest],
135          [-Wsuggest-attribute=format  dnl new gcc syntax
136           -Wmissing-format-attribute  dnl old gcc syntax, clang
137          ])
138      WM_CFLAGS_CHECK_FIRST([no-return attribute suggest],
139          [-Wsuggest-attribute=noreturn  dnl gcc syntax
140           -Wmissing-noreturn            dnl clang syntax
141          ])
142 ], [dnl
143      dnl When debug not enabled, we try to avoid some non-necessary
144      dnl messages from the compiler
145      dnl
146      dnl To support legacy X servers, we have sometime to use
147      dnl functions marked as deprecated. We do not wish our users
148      dnl to be worried about it
149      AX_CFLAGS_GCC_OPTION([-Wno-deprecated])
150      AX_CFLAGS_GCC_OPTION([-Wno-deprecated-declarations])
154 dnl Tracking on what is detected for final status
155 dnl =============================================
156 unsupported=""
157 supported_gfx=""
160 dnl Platform-specific Makefile setup
161 dnl ================================
162 AS_CASE(["$host"],
163     [*-*-linux*|*-*-cygwin*|*-gnu*], [WM_OSDEP="linux" ; CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=600"],
164     [*-*-freebsd*|*-k*bsd-gnu*],     [WM_OSDEP="bsd"   ; CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=600 -DFREEBSD"],
165     [*-*-netbsd*],                   [WM_OSDEP="bsd"   ; CPPFLAGS="$CPPFLAGS -DNETBSD"],
166     [*-*-openbsd*],                  [WM_OSDEP="bsd"   ; CPPFLAGS="$CPPFLAGS -DOPENBSD"],
167     [*-*-dragonfly*],                [WM_OSDEP="bsd"   ; CPPFLAGS="$CPPFLAGS -DDRAGONFLYBSD"],
168     [*-apple-darwin*],               [WM_OSDEP="darwin"],
169     [*-*-solaris*],                  [WM_OSDEP="stub"],  dnl  solaris.c when done
170     [WM_OSDEP="stub"])
171 AM_CONDITIONAL([WM_OSDEP_LINUX],   [test "x$WM_OSDEP" = "xlinux"])
172 AM_CONDITIONAL([WM_OSDEP_BSD],     [test "x$WM_OSDEP" = "xbsd"])
173 AM_CONDITIONAL([WM_OSDEP_DARWIN],  [test "x$WM_OSDEP" = "xdarwin"])
174 AM_CONDITIONAL([WM_OSDEP_GENERIC], [test "x$WM_OSDEP" = "xstub"])
177 dnl the prefix
178 dnl ==========
180 dnl move this earlier in the script... anyone know why this is handled
181 dnl in such a bizarre way?
183 test "x$prefix" = xNONE && prefix=$ac_default_prefix
184 dnl Let make expand exec_prefix.
185 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
188 _bindir=`eval echo $bindir`
189 _bindir=`eval echo $_bindir`
191 lib_search_path='-L${libdir}'
193 inc_search_path='-I${includedir}'
195 dnl ===============================================
196 dnl Specify paths to look for libraries and headers
197 dnl ===============================================
198 AC_ARG_WITH(libs-from, AS_HELP_STRING([--with-libs-from], [pass compiler flags to look for libraries]),
199         [lib_search_path="$withval $lib_search_path"])
201 AC_ARG_WITH(incs-from, AS_HELP_STRING([--with-incs-from], [pass compiler flags to look for header files]),
202         [inc_search_path="$withval $inc_search_path"])
205 dnl Boehm GC
206 dnl ========
207 AC_ARG_ENABLE([boehm-gc],
208     [AS_HELP_STRING([--enable-boehm-gc], [use Boehm GC instead of the default libc malloc() [default=no]])],
209     [AS_CASE(["$enableval"],
210         [yes], [with_boehm_gc=yes],
211         [no],  [with_boehm_gc=no],
212         [AC_MSG_ERROR([bad value $enableval for --enable-boehm-gc])] )],
213     [with_boehm_gc=no])
214 AS_IF([test "x$with_boehm_gc" = "xyes"],
215     AC_SEARCH_LIBS([GC_malloc], [gc],
216         [AC_DEFINE(USE_BOEHM_GC, 1, [Define if Boehm GC is to be used])],
217         [AC_MSG_FAILURE([--enable-boehm-gc specified but test for libgc failed])]))
220 dnl LCOV
221 dnl ====
222 AC_ARG_ENABLE([lcov],
223     [AS_HELP_STRING([--enable-lcov[=output-directory]], [enable coverage data generation using LCOV (GCC only) [default=no]])],
224     [],
225     [enable_lcov=no])
227 AS_IF([test "x$enable_lcov" != "xno"],
228     [AX_CFLAGS_GCC_OPTION(-fprofile-arcs -ftest-coverage)
229     AS_IF([test "x$enable_lcov" = "xyes"],
230         [lcov_output_directory="coverage-report"],
231         [lcov_output_directory="${enable_lcov}/coverage-report"])
232     AC_SUBST(lcov_output_directory)])
234 AM_CONDITIONAL([USE_LCOV], [test "x$enable_lcov" != "xno"])
237 dnl ============================
238 dnl Checks for library functions
239 dnl ============================
240 dnl not used anywhere
241 AC_FUNC_MEMCMP
242 AC_FUNC_VPRINTF
243 AC_CHECK_FUNCS(gethostname select poll strcasecmp strncasecmp \
244                setsid mallinfo mkstemp sysconf)
246 dnl Check for strlcat/strlcpy
247 dnl =========================
248 AC_ARG_WITH([libbsd],
249   [AS_HELP_STRING([--without-libbsd], [do not use libbsd for strlcat and strlcpy [default=check]])],
250   [AS_IF([test "x$with_libbsd" != "xno"],
251     [with_libbsd=bsd]
252     [with_libbsd=]
253   )],
254   [with_libbsd=bsd])
256 tmp_libs=$LIBS
257 AC_SEARCH_LIBS([strlcat],[$with_libbsd],
258   [AC_DEFINE(HAVE_STRLCAT, 1, [Define if strlcat is available])],
259   [],
260   []
262 AC_SEARCH_LIBS([strlcpy],[$with_libbsd],
263   [AC_DEFINE(HAVE_STRLCAT, 1, [Define if strlcpy is available])],
264   [],
265   []
267 LIBS=$tmp_libs
269 LIBBSD=
270 AS_IF([test "x$ac_cv_search_strlcat" = "x-lbsd" -o "x$ac_cv_search_strlcpy" = "x-lbsd"],
271   [LIBBSD=-lbsd
272    AC_CHECK_HEADERS([bsd/string.h])]
274 AC_SUBST(LIBBSD)
276 dnl Check for OpenBSD kernel memory interface - kvm(3)
277 dnl ==================================================
278 AS_IF([test "x$WM_OSDEP" = "xbsd"],
279   AC_SEARCH_LIBS([kvm_openfiles], [kvm]) )
281 dnl Check for inotify
282 dnl =================
283 AC_CHECK_HEADERS(sys/inotify.h, AC_DEFINE(HAVE_INOTIFY, 1, Check for inotify))
286 dnl Checks for header files.
287 dnl =======================
288 AC_HEADER_SYS_WAIT
289 AC_HEADER_TIME
290 AC_CHECK_HEADERS(fcntl.h limits.h sys/ioctl.h libintl.h poll.h malloc.h ctype.h \
291                  string.h strings.h)
294 dnl Checks for typedefs, structures, and compiler characteristics.
295 dnl ==============================================================
296 AC_DECL_SYS_SIGLIST
297 AC_C_CONST
298 AC_C_INLINE
299 WM_C_NORETURN
300 AC_TYPE_SIZE_T
301 AC_TYPE_PID_T
302 AC_TYPE_SIGNAL
305 dnl pkg-config
306 dnl ==========
307 dnl AC_ARG_VAR(PKGCONFIG, [pkg-config command])
308 AC_CHECK_PROG(PKGCONFIG, pkg-config, pkg-config) 
310 dnl gettext
311 dnl =======
313 dnl AM_GNU_GETTEXT
315 INTLIBS=""
317 AC_CHECK_FUNC(gettext, [HAVEGETTEXT="yes"], 
318         AC_CHECK_LIB(intl, gettext, [INTLIBS="-lintl" HAVEGETTEXT="yes"],
319                          INTLIBS="" ))
321 AC_CHECK_PROG(XGETTEXT, xgettext, xgettext)
323 if test "$XGETTEXT" != ""; then 
324     if $XGETTEXT --help 2>&1 | grep illegal >/dev/null ; then
325         echo "xgettext isn't GNU version"
326         XGETTEXT=""
327     fi
330 if test "$LINGUAS" != ""; then
331     if test "$XGETTEXT" != "" -a "$HAVEGETTEXT" != ""; then
332         AC_DEFINE(I18N, 1, [Internationalization (I18N) support (set by configure)])
333         PO=""
334         echo "xgettext and gettext() exist; will build i18n support for $LINGUAS"
335     else
336         LINGUAS=""
337         PO=""
338         echo "xgettext and libintl.a don't both exist; will not build i18n support"
339     fi
340 else
341         INTLIBS=""
342         MOFILES=""
343         WPMOFILES=""
344         UTILMOFILES=""
345         PO=""
349 dnl The Tower of Babel
350 dnl ==================
352 dnl List of supported locales
353 dnl =========================
354 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"
355 supported_wprefs_locales="bg ca cs de es et fi fr hr hu it ja ko pt ru sk zh_CN zh_TW"
356 supported_wings_locales="bg ca cs de fr sk"
357 supported_util_locales="de es fr pt"
359 for lang in $LINGUAS; do
360         ok=0
361         for l in $supported_locales; do
362                 if test "$l" = "$lang"; then
363                         ok=1
364                         break
365                 fi
366         done
367         if test "$ok" = 1; then
368                 MOFILES="$MOFILES $lang.mo"
369         else
370                 echo "Locale $lang is not supported."
371         fi
372         ok=0
373         for l in $supported_wprefs_locales; do
374                 if test "$l" = "$lang"; then
375                         ok=1
376                         break
377                 fi
378         done
379         if test "$ok" = 1; then
380                 WPMOFILES="$WPMOFILES $lang.mo"
381         fi
382         ok=0
383         for l in $supported_util_locales; do
384                 if test "$l" = "$lang"; then
385                         ok=1
386                         break
387                 fi
388         done
389         if test "$ok" = 1; then
390                 UTILMOFILES="$UTILMOFILES $lang.mo"
391         fi
392         ok=0
393         for l in $supported_wings_locales; do
394                 if test "$l" = "$lang"; then
395                         ok=1
396                         break
397                 fi
398         done
399         if test "$ok" = 1; then
400                 WINGSMOFILES="$WINGSMOFILES $lang.mo"
401         fi
402 done
405 dnl Added by Oliver - Support for NLSDIR option
406 dnl ===========================================
407 AC_ARG_WITH(nlsdir, AS_HELP_STRING([--with-nlsdir=PATH], [specify where the locale stuff should go]))
409 if test "x$NLSDIR" = "x"; then
410         if test "x$with_nlsdir" != "x"; then
411                 NLSDIR=$with_nlsdir
412         else
413                 NLSDIR='$(prefix)/lib/locale'
414         fi
417 menutextdomain=
418 AC_ARG_WITH(menu-textdomain, AS_HELP_STRING([--with-menu-textdomain=DOMAIN], [specify gettext domain used for menu translations]),
419         [if test "x$withval" != "xno"; then
420          menutextdomain=$withval
421          fi])
422 AC_SUBST(menutextdomain)
424 AC_SUBST(INTLIBS)
425 AC_SUBST(NLSDIR)
426 AC_SUBST(MOFILES)
427 AC_SUBST(WPMOFILES)
428 AC_SUBST(UTILMOFILES)
429 AC_SUBST(WINGSMOFILES)
430 AC_SUBST(supported_locales)
432 dnl ===========================================
433 dnl             Stuff that uses X
434 dnl ===========================================
436 AC_PATH_XTRA
438 if test $no_x; then
439     AC_MSG_ERROR([The path for the X11 files not found!
440 Make sure you have X and it's headers and libraries (the -devel packages
441 in Linux) installed.])
444 X_LIBRARY_PATH=$x_libraries
445 XCFLAGS="$X_CFLAGS"
446 XLFLAGS="$X_LIBS"
447 XLIBS="-lX11 $X_EXTRA_LIBS"
448 LIBXMU="-lXmu"
449 AC_SUBST(LIBXMU)
451 lib_search_path="$lib_search_path $XLFLAGS"
452 inc_search_path="$inc_search_path $XCFLAGS"
454 AC_SUBST(X_LIBRARY_PATH)
456 dnl Decide which locale function to use, setlocale() or _Xsetlocale()
457 dnl by MANOME Tomonori 
458 dnl ===========================================
459 use_locale=yes
460 AC_ARG_ENABLE(locale, AS_HELP_STRING([--disable-locale], [disable use of X locale support]),
461               use_locale=no)
463 if test "$use_locale" = yes; then
464         AC_CHECK_LIB(X11, _Xsetlocale,
465                 AC_DEFINE(X_LOCALE, 1, [define if you want support for X window's X_LOCALE (set by configure)]),,
466                 $XLFLAGS $XLIBS)
469 dnl Check whether XInternAtoms() exist
470 dnl ==================================
471 AC_CHECK_LIB(X11, XInternAtoms, 
472              AC_DEFINE(HAVE_XINTERNATOMS, 1, [define if your X server has XInternAtoms() (set by configure)]),,
473              $XLFLAGS $XLIBS)
475 dnl Check whether XConvertCase() exist
476 dnl ==================================
477 AC_CHECK_LIB(X11, XConvertCase, 
478              AC_DEFINE(HAVE_XCONVERTCASE, 1, [define if your X server has XConvertCase() (set by configure)]),,
479              $XLFLAGS $XLIBS)
481 dnl XKB keyboard language status
482 dnl ============================
483 AC_ARG_ENABLE(modelock, AS_HELP_STRING([--enable-modelock], [XKB keyboard language status support]),
484                 AC_DEFINE(XKB_MODELOCK, 1, [whether XKB language MODELOCK should be enabled]))
486 dnl Shape support
487 dnl =============
488 shape=yes
489 AC_ARG_ENABLE(shape, AS_HELP_STRING([--disable-shape], [disable shaped window extension support]),
490                 shape=$enableval, shape=yes)
491 added_xext=no
493 if test "$shape" = yes; then
494         AC_CHECK_LIB(Xext, XShapeSelectInput, [XLIBS="-lXext $XLIBS"
495                 added_xext=yes
496                 AC_DEFINE(SHAPE, 1, [define if you want support for shaped windows (set by configure)])], 
497                 shape=no, $XLFLAGS $XLIBS)
500 dnl XRandR support
501 dnl ==============
502 xrandr=no
503 AC_ARG_ENABLE(xrandr, AS_HELP_STRING([--enable-xrandr], [enable XRandR window extension support (NOT recommended, buggy)]),
504                 xrandr=$enableval, xrandr=no)
505 added_xext=no
507 LIBXRANDR=
508 if test "$xrandr" = yes; then
509         AC_CHECK_LIB(Xrandr, XRRQueryExtension, [LIBXRANDR=-lXrandr
510                 added_xext=yes
511                 AC_DEFINE(HAVE_XRANDR, 1, [define if you want support for XRandR (set by configure)])],
512                 xrandr=no, $XLFLAGS $XLIBS)
514 AC_SUBST(LIBXRANDR)
517 dnl libWINGS uses math functions, check whether usage requires linking
518 dnl against libm
520 WM_CHECK_LIBM
523 dnl libWINGS uses FcPatternDel from libfontconfig
525 AC_MSG_CHECKING([for fontconfig library])
526 FCLIBS=`$PKGCONFIG fontconfig --libs`
527 if test "x$FCLIBS" = "x" ; then
528         AC_MSG_RESULT([not found])
529 else
530         AC_MSG_RESULT([found])
532 AC_SUBST(FCLIBS)
535 dnl Xft2 antialiased font support
536 dnl =============================
538 xft=yes
539 XFTLIBS=""
541 if test "x$PKGCONFIG" != x -a "`$PKGCONFIG xft; echo $?`" = 0; then
542         XFTCONFIG="$PKGCONFIG xft"
543         pkgconfig_xft=yes
544 else
545         AC_CHECK_PROG(XFTCONFIG, xft-config, xft-config)
548 AC_MSG_CHECKING([for the Xft2 library])
550 if test "x$XFTCONFIG" != x; then
551         XFTLIBS=`$XFTCONFIG --libs`
552         XFTFLAGS=`$XFTCONFIG --cflags`
553         AC_MSG_RESULT([found])
554 else
555         AC_MSG_RESULT([not found])
556         echo
557         echo "ERROR!!! libXft2 is not installed or could not be found."
558         echo "         Xft2 is a requirement for building Window Maker."
559         echo "         Please install it (along with fontconfig) before continuing."
560         echo
561         exit 1
564 minXFT="2.1.0"
565 goodxft="no"
568 dnl The macro below will use $XFTFLAGS (defined above) to find Xft.h
570 WM_CHECK_XFT_VERSION($minXFT, goodxft=yes, goodxft=no)
572 if test "$goodxft" = no; then
573         echo
574         echo "ERROR!!! libXft on this system is an old version."
575         echo "         Please consider upgrading to at least version ${minXFT}."
576         echo
577         exit 1
580 AC_SUBST(XFTFLAGS)
581 AC_SUBST(XFTLIBS)
584 dnl XINERAMA support
585 dnl ================
586 xinerama=no
587 AC_ARG_ENABLE(xinerama, AS_HELP_STRING([--enable-xinerama], [enable Xinerama extension support]),
588                 xinerama=$enableval, xinerama=no)
590 LIBXINERAMA=
591 if test "$xinerama" = yes; then
592         AC_CHECK_LIB(Xinerama, XineramaQueryScreens, 
593                 [LIBXINERAMA=-lXinerama
594                 xfxine=yes],
595                 xfxine=no, $XLFLAGS $XLIBS)
597         AC_CHECK_LIB(Xext, XineramaGetInfo,
598                 [sunxine=yes
599                 ], sunxine=no, $XLFLAGS $XLIBS)
601         if test "$xfxine" = yes; then
602                 xine=1
603         fi
605         if test "$sunxine" = yes; then
606             xine=1
607             AC_DEFINE(SOLARIS_XINERAMA, 1, 
608                 [define if you want support for the XINERAMA extension and are in Solaris (set by configure)])
609         fi
611         if test "$xine" = 1; then
612             AC_DEFINE(XINERAMA, 1, 
613                 [define if you want support for the XINERAMA extension (set by configure)])
614         fi
616 AC_SUBST(LIBXINERAMA)
619 dnl MIT-SHM support
620 dnl ===============
621 shm=yes
622 AC_ARG_ENABLE(shm, AS_HELP_STRING([--disable-shm], [disable usage of MIT-SHM extension]),
623                 shm=$enableval, shm=yes)
625 if test "$shm" = yes; then
626         AC_CHECK_LIB(Xext, XShmAttach, ok=yes, ok=no, $XLFLAGS $XLIBS)
628         if test "$ok" = yes; then
629         AC_CHECK_FUNC(shmget, ok=yes, ok=no)
630         fi
632         if test "$ok" = yes; then
633                 if test "$added_xext" = no; then
634                         XLIBS="-lXext $XLIBS"
635                 fi
636                 AC_DEFINE(XSHM, 1, [define if X's shared memory extension is available (set by configure)])
637         fi
641 dnl R6 Style Session Management Support
642 dnl ===================================
646 #AC_DEFINE(R6SM)
647 #AC_SUBST(XSMPLIBS)
651 dnl ==============================================
652 dnl         Graphic Format Libraries
653 dnl ==============================================
655 dnl XPM Support
656 dnl ===========
657 AC_ARG_ENABLE([xpm],
658     [AS_HELP_STRING([--disable-xpm], [disable use of XPM pixmaps through libXpm])],
659     [AS_CASE(["$enableval"],
660         [yes|no], [],
661         [AC_MSG_ERROR([bad value $enableval for --enable-xpm])] )],
662     [enable_xpm=auto])
663 WM_IMGFMT_CHECK_XPM
666 # for wmlib
667 AC_SUBST(XCFLAGS)
668 # for test
669 AC_SUBST(XLFLAGS)
670 AC_SUBST(XLIBS)
671 AC_SUBST(X_EXTRA_LIBS)
673 dnl ===============================================
674 dnl             End of stuff that uses X
675 dnl ===============================================
677 dnl PNG Support
678 dnl ===========
679 AC_ARG_ENABLE([png],
680     [AS_HELP_STRING([--disable-png], [disable PNG support through libpng])],
681     [AS_CASE(["$enableval"],
682         [yes|no], [],
683         [AC_MSG_ERROR([bad value $enableval for --enable-png])] )],
684     [enable_png=auto])
685 WM_IMGFMT_CHECK_PNG
688 dnl JPEG Support
689 dnl ============
690 AC_ARG_ENABLE([jpeg],
691     [AS_HELP_STRING([--disable-jpeg], [disable JPEG support through libjpeg])],
692     [AS_CASE(["$enableval"],
693         [yes|no], [],
694         [AC_MSG_ERROR([bad value $enableval for --enable-jpeg])] )],
695     [enable_jpeg=auto])
696 WM_IMGFMT_CHECK_JPEG
699 dnl GIF Support
700 dnl ============
701 AC_ARG_ENABLE(gif,
702     [AS_HELP_STRING([--disable-gif], [disable GIF support through libgif or libungif])],
703     [AS_CASE(["$enableval"],
704         [yes|no], [],
705         [AC_MSG_ERROR([bad value $enableval for --enable-gif])] )],
706     [enable_gif=auto])
707 WM_IMGFMT_CHECK_GIF
710 dnl TIFF Support
711 dnl ============
712 AC_ARG_ENABLE([tiff],
713     [AS_HELP_STRING([--disable-tiff], [disable use of TIFF images through libtiff])],
714     [AS_CASE(["$enableval"],
715         [yes|no], [],
716         [AC_MSG_ERROR([bad value $enableval for --enable-tiff])] )],
717     [enable_tiff=auto])
718 WM_IMGFMT_CHECK_TIFF
721 dnl PPM Support
722 dnl ===========
723 # The PPM format is always enabled because we have built-in support for the format
724 # We are not using any external library like libppm
725 supported_gfx="$supported_gfx builtin-PPM"
728 # Choice of the default format for icons
729 AS_IF([test "x$enable_tiff" != "xno"],
730     [ICONEXT="tiff"],
731     [ICONEXT="xpm"])
734 LIBRARY_SEARCH_PATH="$lib_search_path"
735 HEADER_SEARCH_PATH="$inc_search_path"
737 AC_SUBST(LIBRARY_SEARCH_PATH)
738 AC_SUBST(HEADER_SEARCH_PATH)
741 AC_SUBST(GFXLIBS)
742 AC_SUBST(ICONEXT)
743 AM_CONDITIONAL([ICON_EXT_XPM],  [test "x$ICONEXT" = "xxpm"])
744 AM_CONDITIONAL([ICON_EXT_TIFF], [test "x$ICONEXT" = "xtiff"])
747 dnl ==============================================
748 dnl         End of Graphic Format Libraries
749 dnl ==============================================
753 dnl stdlib.h is checked here, because of conflict in jpeglib.h
754 AC_CHECK_HEADERS(stdlib.h)
756 # AC_PREFIX_PROGRAM(wmaker)
758 dnl Support for PIXMAPDIR option
759 dnl ============================
760 AC_ARG_WITH(pixmapdir, AS_HELP_STRING([--with-pixmapdir=PATH], [specify where pixmaps are located [DATADIR/pixmaps]]))
762 if test "x$with_pixmapdir" != "x"; then
763         pixmapdir=$with_pixmapdir
764 else
765         pixmapdir='${datadir}/pixmaps'
767 AC_SUBST(pixmapdir)
770 dnl Support for GNUSTEP_LOCAL_ROOT, for WPrefs.app
771 dnl ==============================================
773 AC_ARG_WITH(gnustepdir, AS_HELP_STRING([--with-gnustepdir=PATH], [specify the directory for GNUstep applications]))
775 if test "x`echo $with_gnustepdir | grep ^/`" != "x"; then
776     appspath=$with_gnustepdir
779 if test "x$appspath$GNUSTEP_LOCAL_ROOT" = "x"; then
780     wprefs_base_dir=${prefix}
781     wprefs_datadir="${datadir}/WPrefs"
782     wprefs_bindir="${bindir}"
783 else
784     gnustepdir=$appspath
786     if test "x$GNUSTEP_LOCAL_ROOT" != "x" ; then
787         gnustepdir=`echo "$GNUSTEP_LOCAL_ROOT" | sed -e "s|^${prefix}|prefix|"`
788         gnustepdir=`echo $gnustepdir | sed -e 's|^prefix|${prefix}|'`
789     fi
791     wprefs_base_dir=$gnustepdir/Applications
792     wprefs_datadir=$wprefs_base_dir/WPrefs.app
793     wprefs_bindir=$wprefs_base_dir/WPrefs.app
796 AC_SUBST(wprefs_datadir)
797 AC_SUBST(wprefs_bindir)
800 dnl Enable User Defined Menu thing
801 dnl ==============================
802 AC_ARG_ENABLE(usermenu, AS_HELP_STRING([--enable-usermenu], [user defined menus for applications]),
803 if test "$enableval" = yes; then
804         AC_DEFINE(USER_MENU, 1, [define if you want user defined menus for applications])
808 gl_LD_VERSION_SCRIPT
810 AC_OUTPUT(Makefile po/Makefile util/Makefile util/po/Makefile test/Makefile \
811         WINGs/Makefile WINGs/WINGs/Makefile WINGs/Documentation/Makefile \
812         WINGs/Examples/Makefile WINGs/Resources/Makefile WINGs/Tests/Makefile \
813         WINGs/Extras/Makefile WINGs/po/Makefile \
814         wmlib/Makefile wrlib/Makefile wrlib/tests/Makefile \
815         src/Makefile src/wconfig.h \
816         doc/Makefile doc/sk/Makefile doc/cs/Makefile \
817         doc/ru/Makefile \
818         WindowMaker/Makefile WindowMaker/Backgrounds/Makefile \
819         WindowMaker/Defaults/Makefile WindowMaker/IconSets/Makefile \
820         WindowMaker/Icons/Makefile WindowMaker/Pixmaps/Makefile \
821         WindowMaker/Styles/Makefile WindowMaker/Themes/Makefile \
822         WPrefs.app/Makefile WPrefs.app/tiff/Makefile WPrefs.app/xpm/Makefile \
823         WPrefs.app/po/Makefile )
826 dnl Output some helpful data for compiling wraster and WINGs/WUtil apps
827 dnl ===================================================================
829 dnl echo "WFLAGS=\"$LIBPL_INC_PATH -I$prefix/include\"" > WINGs-flags
830 dnl echo "WLIBS=\"-L$exec_prefix/lib -lWINGs -lwraster $LIBPL_LIBS $GFXLIBS -lm\""\
831 dnl     | sed -e 's|\$(prefix)|'"$prefix|" >> WINGs-flags
833 dnl The #lp# and #rp# stuff below is a hack because [ and ] get lost when
834 dnl parsed by m4
836 AC_SUBST(lib_search_path)
837 AC_SUBST(inc_search_path)
840 dnl Spit out the configuration
841 dnl ==========================
843 if test "x$MOFILES" = "x"; then
844         mof=None
845 else
846         mof=`echo $MOFILES`
849 if test "x$MOFILES" = "x"; then
850         languages=None
851 else
852         languages=`echo $MOFILES | sed 's/.mo//g'`
855 echo
856 echo "Window Maker was configured as follows:"
857 echo
858 echo "Installation path prefix            : $prefix"
859 echo "Installation path for binaries      : $_bindir"
860 echo "Installation path for libraries     : $libdir"
861 echo "Installation path for WPrefs.app    : $wprefs_base_dir" | sed -e 's|\${prefix}|'"$prefix|"
862 echo "Supported graphic format libraries  :$supported_gfx"
863 echo "Unsupported features                :$unsupported"
864 echo "Antialiased text support in WINGs   : $xft"
865 echo "Xinerama extension support          : $xinerama"
866 echo "XRandR extension support            : $xrandr"
867 echo "Translated message files to install : $mof"
868 dnl echo "Supported languages beside English  : $languages"
869 if test "x$MOFILES" != "x"; then
870         echo "Installation path for translations  : $NLSDIR" | sed -e 's|\$(prefix)|'"$prefix|"
872 AS_IF([test "x$debug" = "xyes"],
873     [AS_ECHO(["Debug enabled: CFLAGS = $CFLAGS"]) ])
874 echo
876 dnl WM_PRINT_REDCRAP_BUG_STATUS
878 AS_IF([test "x$enable_jpeg" = xno], [dnl
879     AS_ECHO(["WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING"])
880     AS_ECHO([])
881     AS_ECHO(["JPEG support will not be included because the JPEG library is"])
882     AS_ECHO(["not installed correctly or was not found. Background images"])
883     AS_ECHO(["from themes will not display as they usually are JPEG files."])
884     AS_ECHO([])
885     AS_ECHO(["To fix, download and install the jpeg library and/or make sure you"])
886     AS_ECHO(["installed all jpeg related packages, SPECIALLY the development packages"])
887     AS_ECHO(["like jpeg-dev (if you use some prepackaged version of libjpeg)."])
888     AS_ECHO([])
889     AS_ECHO(["WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING"])dnl
893 dnl This is for Emacs.  I'm lazy, I know... (nicolai)
894 dnl ================================================
895 dnl Local Variables:
896 dnl compile-command: "autoconf"
897 dnl End: