More precise information on unknown systems
[wmaker-crm.git] / configure.ac
blob9afae793d6e30b548a3804cfdb6c2ac82ae38ed3
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.94.0-crm, , WindowMaker, http://www.windowmaker.info/)
15 AC_CONFIG_SRCDIR(src/WindowMaker.h)
16 AC_CONFIG_MACRO_DIR([m4])
17 AM_CONFIG_HEADER(src/config.h)
18 AM_INIT_AUTOMAKE([1.11 silent-rules])
20 dnl libtool library versioning
21 dnl =======================
22 dnl
23 dnl current
24 dnl revision
25 dnl age
26 dnl
27 dnl 1. Start with version information of ‘0:0:0’ for each libtool library.
28 dnl 2. Update the version information only immediately before a public
29 dnl release of your software. More frequent updates are unnecessary, and
30 dnl only guarantee that the current interface number gets larger faster.
31 dnl 3. If the library source code has changed at all since the last
32 dnl update, then increment revision (‘c:r:a’ becomes ‘c:r+1:a’).
33 dnl 4. If any interfaces have been added, removed, or changed since the
34 dnl last update, increment current, and set revision to 0.
35 dnl 5. If any interfaces have been added since the last public release,
36 dnl then increment age.
37 dnl 6. If any interfaces have been removed or changed since the last
38 dnl public release, then set age to 0.
39 dnl
40 dnl libwraster
41 WRASTER_CURRENT=4
42 WRASTER_REVISION=0
43 WRASTER_AGE=1
44 WRASTER_VERSION=$WRASTER_CURRENT:$WRASTER_REVISION:$WRASTER_AGE
45 AC_SUBST(WRASTER_VERSION)
46 dnl
47 dnl libWINGs
48 WINGS_CURRENT=2
49 WINGS_REVISION=1
50 WINGS_AGE=0
51 WINGS_VERSION=$WINGS_CURRENT:$WINGS_REVISION:$WINGS_AGE
52 AC_SUBST(WINGS_VERSION)
53 dnl
54 dnl libWUtil
55 WUTIL_CURRENT=2
56 WUTIL_REVISION=0
57 WUTIL_AGE=0
58 WUTIL_VERSION=$WUTIL_CURRENT:$WUTIL_REVISION:$WUTIL_AGE
59 AC_SUBST(WUTIL_VERSION)
62 dnl Checks for host/os name
63 dnl =======================
64 dnl AC_CANONICAL_HOST -- already done by AC_PROG_LIBTOOL
66 dnl Checks for programs.
67 dnl ===================
68 AC_ISC_POSIX
69 AC_PROG_CC
70 AC_PROG_LN_S
71 AC_PROG_GCC_TRADITIONAL
72 AC_PROG_LIBTOOL
74 AX_CFLAGS_GCC_OPTION(-Wall)
75 AX_CFLAGS_GCC_OPTION(-Wextra -Wno-sign-compare -Wno-unused-parameter)
77 dnl Platform-specific Makefile setup
78 dnl ================================
80 case "${host}" in
81         *-*-linux*|*-*-cygwin*)
82                 WM_OSDEP="linux"
83         ;;
84         *-*-freebsd*)
85                 WM_OSDEP="bsd"
86                 CFLAGS="$CFLAGS -DFREEBSD"
87         ;;
88         *-*-netbsd*)
89                 WM_OSDEP="bsd"
90                 CFLAGS="$CFLAGS -DNETBSD"
91         ;;
92         *-*-openbsd*)
93                 WM_OSDEP="bsd"
94         CFLAGS="$CFLAGS -DOPENBSD"
95         ;;
96         *-*-dragonfly*)
97                 WM_OSDEP="bsd"
98                 CFLAGS="$CFLAGS -DDRAGONFLYBSD"
99         ;;
100         *-apple-darwin*)
101                 WM_OSDEP="darwin"
102         ;;
103         *-*-solaris*)
104                 WM_OSDEP="stub"         # solaris.c when done
105         ;;
106         *)
107                 WM_OSDEP="stub"
108         ;;
109 esac
110 AC_SUBST(WM_OSDEP)
113 dnl the prefix
114 dnl ==========
116 dnl move this earlier in the script... anyone know why this is handled
117 dnl in such a bizarre way?
119 test "x$prefix" = xNONE && prefix=$ac_default_prefix
120 dnl Let make expand exec_prefix.
121 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
124 _bindir=`eval echo $bindir`
125 _bindir=`eval echo $_bindir`
127 _libdir=`eval echo $libdir`
128 _libdir=`eval echo $_libdir`
129 lib_search_path="-L$_libdir"
131 inc_search_path=`eval echo $includedir`
132 inc_search_path="-I`eval echo $inc_search_path`"
134 dnl ===============================================
135 dnl Specify paths to look for libraries and headers
136 dnl ===============================================
137 AC_ARG_WITH(libs-from, AS_HELP_STRING([--with-libs-from], [pass compiler flags to look for libraries]),
138         [lib_search_path="$withval $lib_search_path"])
140 AC_ARG_WITH(incs-from, AS_HELP_STRING([--with-incs-from], [pass compiler flags to look for header files]),
141         [inc_search_path="$withval $inc_search_path"])
144 dnl Boehm GC
145 dnl ========
146 with_boehm_gc=no
147 AC_ARG_ENABLE([boehm-gc],
148     [AS_HELP_STRING([--enable-boehm-gc], [use Boehm GC instead of the default libc malloc() [default=no]])],
149     [with_boehm_gc=$enableval])
151 AS_IF([test "x$with_boehm_gc" = "xyes"],
152     AC_SEARCH_LIBS([GC_malloc], [gc],
153         [AC_DEFINE(USE_BOEHM_GC, 1, [Define if Boehm GC is to be used])],
154         [AC_MSG_FAILURE([--enable-boehm-gc specified but test for libgc failed])]
155     )
159 dnl ============================
160 dnl Checks for library functions
161 dnl ============================
162 dnl not used anywhere
163 AC_FUNC_MEMCMP
164 AC_FUNC_VPRINTF
165 AC_CHECK_FUNCS(gethostname select poll strcasecmp strncasecmp \
166                setsid atexit mallinfo mkstemp sysconf)
168 dnl Check for strlcat/strlcpy
169 dnl =========================
170 AC_ARG_WITH([libbsd],
171   [AS_HELP_STRING([--without-libbsd], [do not use libbsd for strlcat and strlcpy [default=check]])],
172   [AS_IF([test "x$with_libbsd" != "xno"],
173     [with_libbsd=bsd]
174     [with_libbsd=]
175   )],
176   [with_libbsd=bsd])
178 tmp_libs=$LIBS
179 AC_SEARCH_LIBS([strlcat],[$with_libbsd],
180   [AC_DEFINE(HAVE_STRLCAT, 1, [Define if strlcat is available])],
181   []
183 AC_SEARCH_LIBS([strlcpy],[$with_libbsd],
184   [AC_DEFINE(HAVE_STRLCAT, 1, [Define if strlcpy is available])],
185   []
187 LIBS=$tmp_libs
189 LIBBSD=
190 AS_IF([test "x$ac_cv_search_strlcat" = "x-lbsd" -o "x$ac_cv_search_strlcpy" = "x-lbsd"],
191   [LIBBSD=-lbsd
192    AC_CHECK_HEADERS([bsd/string.h])]
194 AC_SUBST(LIBBSD)
196 dnl Check for inotify
197 dnl =================
198 AC_CHECK_HEADERS(sys/inotify.h, AC_DEFINE(HAVE_INOTIFY, 1, Check for inotify))
200 dnl Check CPP
201 dnl =========
202 if test "x$CPP_PATH" = x; then
203     AC_PATH_PROG(CPP_PATH, cpp, notfound, 
204                 $PATH:/lib:/usr/bin:/bin:/usr/lib:/usr/ccs/lib)
208 dnl Tell stupid Solaris cpp that the files it will process have C++ like syntax
209 dnl RedHat 5.x is broken too, so it won't make a symlink from cpp to the
210 dnl standard locations
212 if test "$CPP_PATH" = "/usr/ccs/lib/cpp" -o "$CPP_PATH" = "notfound" ; then
213     if test "$GCC" = "yes"; then
214         CPP_PATH="gcc -E -x c"
215     else 
216         if test "$CPP_PATH" = "/usr/ccs/lib/cpp"; then
217             CPP_PATH="$CPP_PATH -B"
218         else
219             echo "cpp, the C preprocessor was not found in your system."
220             echo "Create a symbolic link from it to /lib/cpp and rerun configure"
221             exit
222         fi
223     fi
225 AC_DEFINE_UNQUOTED(CPP_PATH, "$CPP_PATH", [define to the path to cpp])
229 dnl Checks for header files.
230 dnl =======================
231 AC_HEADER_SYS_WAIT
232 AC_HEADER_TIME
233 AC_CHECK_HEADERS(fcntl.h limits.h sys/ioctl.h sys/time.h sys/types.h \
234                  libintl.h sys/select.h poll.h malloc.h ctype.h string.h \
235                  strings.h)
239 dnl Checks for typedefs, structures, and compiler characteristics.
240 dnl ==============================================================
241 AC_DECL_SYS_SIGLIST
242 AC_C_CONST
243 AC_TYPE_SIZE_T
244 AC_TYPE_PID_T
245 AC_TYPE_SIGNAL
248 dnl pkg-config
249 dnl ==========
250 dnl AC_ARG_VAR(PKGCONFIG, [pkg-config command])
251 AC_CHECK_PROG(PKGCONFIG, pkg-config, pkg-config) 
253 dnl gettext
254 dnl =======
256 dnl AM_GNU_GETTEXT
258 INTLIBS=""
260 AC_CHECK_FUNC(gettext, [HAVEGETTEXT="yes"], 
261         AC_CHECK_LIB(intl, gettext, [INTLIBS="-lintl" HAVEGETTEXT="yes"],
262                          INTLIBS="" ))
264 AC_CHECK_PROG(XGETTEXT, xgettext, xgettext)
266 if test "$XGETTEXT" != ""; then 
267     if $XGETTEXT --help 2>&1 | grep illegal >/dev/null ; then
268         echo "xgettext isn't GNU version"
269         XGETTEXT=""
270     fi
273 if test "$LINGUAS" != ""; then
274     if test "$XGETTEXT" != "" -a "$HAVEGETTEXT" != ""; then
275         AC_DEFINE(I18N, 1, [Internationalization (I18N) support (set by configure)])
276         PO=""
277         echo "xgettext and gettext() exist; will build i18n support for $LINGUAS"
278     else
279         LINGUAS=""
280         PO=""
281         echo "xgettext and libintl.a don't both exist; will not build i18n support"
282     fi
283 else
284         INTLIBS=""
285         MOFILES=""
286         WPMOFILES=""
287         UTILMOFILES=""
288         PO=""
292 dnl The Tower of Babel
293 dnl ==================
295 dnl List of supported locales
296 dnl =========================
297 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"
298 supported_wprefs_locales="bg ca cs de es et fi fr hr hu it ja ko pt ru sk zh_CN zh_TW"
299 supported_wings_locales="bg ca cs de fr sk"
300 supported_util_locales="de"
302 for lang in $LINGUAS; do
303         ok=0
304         for l in $supported_locales; do
305                 if test "$l" = "$lang"; then
306                         ok=1
307                         break
308                 fi
309         done
310         if test "$ok" = 1; then
311                 MOFILES="$MOFILES $lang.mo"
312         else
313                 echo "Locale $lang is not supported."
314         fi
315         ok=0
316         for l in $supported_wprefs_locales; do
317                 if test "$l" = "$lang"; then
318                         ok=1
319                         break
320                 fi
321         done
322         if test "$ok" = 1; then
323                 WPMOFILES="$WPMOFILES $lang.mo"
324         fi
325         ok=0
326         for l in $supported_util_locales; do
327                 if test "$l" = "$lang"; then
328                         ok=1
329                         break
330                 fi
331         done
332         if test "$ok" = 1; then
333                 UTILMOFILES="$UTILMOFILES $lang.mo"
334         fi
335         ok=0
336         for l in $supported_wings_locales; do
337                 if test "$l" = "$lang"; then
338                         ok=1
339                         break
340                 fi
341         done
342         if test "$ok" = 1; then
343                 WINGSMOFILES="$WINGSMOFILES $lang.mo"
344         fi
345 done
348 dnl Added by Oliver - Support for NLSDIR option
349 dnl ===========================================
350 AC_ARG_WITH(nlsdir, AS_HELP_STRING([--with-nlsdir=PATH], [specify where the locale stuff should go]))
352 if test "x$NLSDIR" = "x"; then
353         if test "x$with_nlsdir" != "x"; then
354                 NLSDIR=$with_nlsdir
355         else
356                 NLSDIR='$(prefix)/lib/locale'
357         fi
360 AC_ARG_WITH(menu-textdomain, AS_HELP_STRING([--with-menu-textdomain=DOMAIN], [specify gettext domain used for menu translations]),
361         [if test "x$withval" != "xno"; then
362          AC_DEFINE_UNQUOTED([MENU_TEXTDOMAIN], ["$withval"], [gettext domain used for menu translations])
363          fi])
365 AC_SUBST(INTLIBS)
366 AC_SUBST(NLSDIR)
367 AC_SUBST(MOFILES)
368 AC_SUBST(WPMOFILES)
369 AC_SUBST(UTILMOFILES)
370 AC_SUBST(WINGSMOFILES)
371 AC_SUBST(supported_locales)
373 dnl ===========================================
374 dnl             Stuff that uses X
375 dnl ===========================================
377 AC_PATH_XTRA
379 if test $no_x; then
380     AC_MSG_ERROR([The path for the X11 files not found!
381 Make sure you have X and it's headers and libraries (the -devel packages
382 in Linux) installed.])
385 X_LIBRARY_PATH=$x_libraries
386 XCFLAGS="$X_CFLAGS"
387 XLFLAGS="$X_LIBS"
388 XLIBS="-lX11 $X_EXTRA_LIBS"
389 LIBXMU="-lXmu"
390 AC_SUBST(LIBXMU)
392 lib_search_path="$lib_search_path $XLFLAGS"
393 inc_search_path="$inc_search_path $XCFLAGS"
395 AC_SUBST(X_LIBRARY_PATH)
397 dnl Decide which locale function to use, setlocale() or _Xsetlocale()
398 dnl by MANOME Tomonori 
399 dnl ===========================================
400 use_locale=yes
401 AC_ARG_ENABLE(locale, AS_HELP_STRING([--disable-locale], [disable use of X locale support]),
402               use_locale=no)
404 if test "$use_locale" = yes; then
405         AC_CHECK_LIB(X11, _Xsetlocale,
406                 AC_DEFINE(X_LOCALE, 1, [define if you want support for X window's X_LOCALE (set by configure)]),,
407                 $XLFLAGS $XLIBS)
410 dnl Check whether XInternAtoms() exist
411 dnl ==================================
412 AC_CHECK_LIB(X11, XInternAtoms, 
413              AC_DEFINE(HAVE_XINTERNATOMS, 1, [define if your X server has XInternAtoms() (set by configure)]),,
414              $XLFLAGS $XLIBS)
416 dnl Check whether XConvertCase() exist
417 dnl ==================================
418 AC_CHECK_LIB(X11, XConvertCase, 
419              AC_DEFINE(HAVE_XCONVERTCASE, 1, [define if your X server has XConvertCase() (set by configure)]),,
420              $XLFLAGS $XLIBS)
422 dnl XKB keyboard language status
423 dnl ============================
424 AC_ARG_ENABLE(modelock, AS_HELP_STRING([--enable-modelock], [XKB keyboard language status support]),
425                 AC_DEFINE(XKB_MODELOCK, 1, [whether XKB language MODELOCK should be enabled]))
427 dnl Shape support
428 dnl =============
429 shape=yes
430 AC_ARG_ENABLE(shape, AS_HELP_STRING([--disable-shape], [disable shaped window extension support]),
431                 shape=$enableval, shape=yes)
432 added_xext=no
434 if test "$shape" = yes; then
435         AC_CHECK_LIB(Xext, XShapeSelectInput, [XLIBS="-lXext $XLIBS"
436                 added_xext=yes
437                 AC_DEFINE(SHAPE, 1, [define if you want support for shaped windows (set by configure)])], 
438                 shape=no, $XLFLAGS $XLIBS)
441 dnl XRandR support
442 dnl ==============
443 xrandr=no
444 AC_ARG_ENABLE(xrandr, AS_HELP_STRING([--enable-xrandr], [enable XRandR window extension support]),
445                 xrandr=$enableval, xrandr=no)
446 added_xext=no
448 LIBXRANDR=
449 if test "$xrandr" = yes; then
450         AC_CHECK_LIB(Xrandr, XRRQueryExtension, [LIBXRANDR=-lXrandr
451                 added_xext=yes
452                 AC_DEFINE(HAVE_XRANDR, 1, [define if you want support for XRandR (set by configure)])],
453                 xrandr=no, $XLFLAGS $XLIBS)
455 AC_SUBST(LIBXRANDR)
458 dnl libWINGS uses math functions, check whether usage requires linking
459 dnl against libm
461 AC_CHECK_FUNC(atan,[mathneedslibm=no;LIBM=],[mathneedslibm=dunno])
462 if test "x$mathneedslibm" = "xdunno" ; then
463         AC_CHECK_LIB(m, atan, [LIBM=-lm])
465 AC_SUBST(LIBM)
469 dnl libWINGS uses FcPatternDel from libfontconfig
471 AC_MSG_CHECKING([for fontconfig library])
472 FCLIBS=`$PKGCONFIG fontconfig --libs`
473 if test "x$FCLIBS" = "x" ; then
474         AC_MSG_RESULT([not found])
475 else
476         AC_MSG_RESULT([found])
478 AC_SUBST(FCLIBS)
481 dnl Xft2 antialiased font support
482 dnl =============================
484 xft=yes
485 XFTLIBS=""
487 if test "x$PKGCONFIG" != x -a "`$PKGCONFIG xft; echo $?`" = 0; then
488         XFTCONFIG="$PKGCONFIG xft"
489         pkgconfig_xft=yes
490 else
491         AC_CHECK_PROG(XFTCONFIG, xft-config, xft-config)
494 AC_MSG_CHECKING([for the Xft2 library])
496 if test "x$XFTCONFIG" != x; then
497         XFTLIBS=`$XFTCONFIG --libs`
498         XFTFLAGS=`$XFTCONFIG --cflags`
499         AC_MSG_RESULT([found])
500 else
501         AC_MSG_RESULT([not found])
502         echo
503         echo "ERROR!!! libXft2 is not installed or could not be found."
504         echo "         Xft2 is a requirement for building Window Maker."
505         echo "         Please install it (along with fontconfig) before continuing."
506         echo
507         exit 1
510 minXFT="2.1.0"
511 goodxft="no"
514 dnl The macro below will use $XFTFLAGS (defined above) to find Xft.h
516 WM_CHECK_XFT_VERSION($minXFT, goodxft=yes, goodxft=no)
518 if test "$goodxft" = no; then
519         echo
520         echo "ERROR!!! libXft on this system is an old version."
521         echo "         Please consider upgrading to at least version ${minXFT}."
522         echo
523         exit 1
526 AC_SUBST(XFTFLAGS)
527 AC_SUBST(XFTLIBS)
530 dnl XINERAMA support
531 dnl ================
532 xinerama=no
533 AC_ARG_ENABLE(xinerama, AS_HELP_STRING([--enable-xinerama], [enable Xinerama extension support]),
534                 xinerama=$enableval, xinerama=no)
536 LIBXINERAMA=
537 if test "$xinerama" = yes; then
538         AC_CHECK_LIB(Xinerama, XineramaQueryScreens, 
539                 [LIBXINERAMA=-lXinerama
540                 xfxine=yes],
541                 xfxine=no, $XLFLAGS $XLIBS)
543         AC_CHECK_LIB(Xext, XineramaGetInfo,
544                 [sunxine=yes
545                 ], sunxine=no, $XLFLAGS $XLIBS)
547         if test "$xfxine" = yes; then
548                 xine=1
549         fi
551         if test "$sunxine" = yes; then
552             xine=1
553             AC_DEFINE(SOLARIS_XINERAMA, 1, 
554                 [define if you want support for the XINERAMA extension and are in Solaris (set by configure)])
555         fi
557         if test "$xine" = 1; then
558             AC_DEFINE(XINERAMA, 1, 
559                 [define if you want support for the XINERAMA extension (set by configure)])
560         fi
562 AC_SUBST(LIBXINERAMA)
565 dnl MIT-SHM support
566 dnl ===============
567 shm=yes
568 AC_ARG_ENABLE(shm, AS_HELP_STRING([--disable-shm], [disable usage of MIT-SHM extension]),
569                 shm=$enableval, shm=yes)
571 if test "$shm" = yes; then
572         AC_CHECK_LIB(Xext, XShmAttach, ok=yes, ok=no, $XLFLAGS $XLIBS)
574         if test "$ok" = yes; then
575         AC_CHECK_FUNC(shmget, ok=yes, ok=no)
576         fi
578         if test "$ok" = yes; then
579                 if test "$added_xext" = no; then
580                         XLIBS="-lXext $XLIBS"
581                 fi
582                 AC_DEFINE(XSHM, 1, [define if X's shared memory extension is available (set by configure)])
583         fi
587 dnl R6 Style Session Management Support
588 dnl ===================================
592 #AC_DEFINE(R6SM)
593 #AC_SUBST(XSMPLIBS)
597 dnl ==============================================
598 dnl         Graphic Format Libraries
599 dnl ==============================================
601 dnl XPM Support
602 dnl ===========
603 xpm=yes
604 AC_ARG_ENABLE(xpm, AS_HELP_STRING([--disable-xpm], [disable use of XPM pixmaps through libXpm]),
605         xpm=$enableval, xpm=yes)
607 if test "$xpm" = yes; then
608     WM_CHECK_LIB(Xpm, XpmCreatePixmapFromData, [$XLFLAGS $XLIBS])
610     if test "x$ac_cv_lib_Xpm_XpmCreatePixmapFromData" = xyes; then
611         WM_CHECK_HEADER(X11/xpm.h)
612         if test "x$ac_cv_header_X11_xpm_h" = xyes; then
613                 GFXLIBS="$GFXLIBS -lXpm"
614                 supported_gfx="XPM"
615                 AC_DEFINE(USE_XPM, 1, [define if XPM libraries are available (set by configure)])
616         else
617                 supported_gfx="builtin-XPM"
618         fi
619     fi
622 AC_SUBST(XLFLAGS)
623 AC_SUBST(XLIBS)
624 AC_SUBST(X_EXTRA_LIBS)
626 dnl ===============================================
627 dnl             End of stuff that uses X
628 dnl ===============================================
630 dnl PNG Support
631 dnl ===========
632 png=yes
633 AC_ARG_ENABLE(png, AS_HELP_STRING([--disable-png], [disable PNG support through libpng]),
634         png=$enableval, png=yes, png=no)
636 if test "$png" = yes ; then
637     my_libname=""
638     WM_CHECK_LIB(png, png_get_valid, [-lm])
639     if test "x$ac_cv_lib_png_png_get_valid" = xyes; then
640         my_libname="-lpng"
641     fi
643 dnl Retry with zlib
645     if test "x$my_libname" = x; then
646         unset ac_cv_lib_png_png_get_valid
647         WM_CHECK_LIB(png, png_get_valid, [-lz -lm])
648         if test "x$ac_cv_lib_png_png_get_valid" = xyes; then
649             my_libname="-lpng -lz"
650         fi
651     fi
653     if test "x$ac_cv_lib_png_png_get_valid" = xyes; then
654         WM_CHECK_HEADER(png.h)
655         if test "x$ac_cv_header_png_h" = xyes; then
656             GFXLIBS="$GFXLIBS $my_libname"
657             supported_gfx="$supported_gfx PNG"
658             AC_DEFINE(USE_PNG, 1, [define if PNG libraries are available (set by configure)])
659         fi
660     fi
664 dnl JPEG Support
665 dnl ============
666 jpeg=yes
667 ljpeg=""
668 AC_ARG_ENABLE(jpeg, AS_HELP_STRING([--disable-jpeg], [disable JPEG support through libjpeg]),
669         jpeg=$enableval, jpeg=yes, jpeg=no)
671 if test "$jpeg" = yes; then
672     WM_CHECK_LIB(jpeg, jpeg_destroy_compress)
674     if test "x$ac_cv_lib_jpeg_jpeg_destroy_compress" = xyes; then
676         ljpeg="-ljpeg"
678         WM_CHECK_HEADER(jpeglib.h)
679         if test "x$ac_cv_header_jpeglib_h" = xyes; then
680             GFXLIBS="$GFXLIBS -ljpeg"
681             supported_gfx="$supported_gfx JPEG"
682             AC_DEFINE(USE_JPEG, 1, [define if JPEG libraries are available (set by configure)])
683         fi
684     fi
688 dnl GIF Support
689 dnl ============
690 gif=yes
691 AC_ARG_ENABLE(gif, AS_HELP_STRING([--disable-gif], [disable GIF support through libgif or libungif]),
692         gif=$enableval, gif=yes, gif=no)
694 if test "$gif" = yes; then
695     my_libname=""
696     WM_CHECK_LIB(ungif, DGifOpenFileName, [$XLFLAGS $XLIBS])
697     if test "x$ac_cv_lib_ungif_DGifOpenFileName" = xyes; then
698         my_libname=-lungif
699     fi
701 dnl libungif is the same thing as libgif for all practical purposes.
703     if test "x$my_libname" = x; then
704         WM_CHECK_LIB(gif, DGifOpenFileName, [$XLFLAGS $XLIBS])
705         if test "x$ac_cv_lib_gif_DGifOpenFileName" = xyes; then
706             my_libname=-lgif
707         fi
708     fi
710     if test "$my_libname" != x; then
711         WM_CHECK_HEADER(gif_lib.h)
712         if test "x$ac_cv_header_gif_lib_h" = xyes; then
713             GFXLIBS="$GFXLIBS $my_libname"
714             supported_gfx="$supported_gfx GIF"
715             AC_DEFINE(USE_GIF, 1, [define if GIF libraries are available (set by configure)])
716         fi
717     fi
722 dnl TIFF Support
723 dnl ============
724 AC_ARG_ENABLE(tiff, 
725 AS_HELP_STRING([--disable-tiff], [disable use of TIFF images through libtiff]),
726         tif=$enableval, tif=yes, tif=no)
729 # TIFF can optionally have JPEG and/or zlib support. Must find out
730 # when they are supported so that correct library flags are passed during
731 # detection and linkage
734 # By default use xpm icons if tiff is not found.
735 ICONEXT="xpm"
738 if test "$tif" = yes; then
739     my_libname=""
740     WM_CHECK_LIB(tiff, TIFFGetVersion, [-lm])
741     if test "x$ac_cv_lib_tiff_TIFFGetVersion" = xyes; then
742         my_libname="-ltiff"
743     fi
745 dnl Retry with zlib
747     unset ac_cv_lib_tiff_TIFFGetVersion
748     if test "x$my_libname" = x; then
749         WM_CHECK_LIB(tiff, TIFFGetVersion, [$ljpeg -lz -lm])
750         if test "x$ac_cv_lib_tiff_TIFFGetVersion" = xyes; then
751             my_libname="-ltiff -lz"
752         fi
753     fi
755     if test "x$my_libname" = x; then
756         WM_CHECK_LIB(tiff34, TIFFGetVersion, [$ljpeg -lm])
757         if test "x$ac_cv_lib_tiff34_TIFFGetVersion" = xyes; then
758             my_libname="-ltiff34"
759         fi
760     fi
763     if test "x$my_libname" != x; then
764         WM_CHECK_HEADER(tiffio.h)
765         if test "x$ac_cv_header_tiffio_h" = xyes; then
766             GFXLIBS="$my_libname $GFXLIBS"
767             ICONEXT="tiff"
768             supported_gfx="$supported_gfx TIFF"
769             AC_DEFINE(USE_TIFF, 1, [define if TIFF libraries are available (set by configure)])     
770         fi
771     fi
774 LIBRARY_SEARCH_PATH="$lib_search_path"
775 HEADER_SEARCH_PATH="$inc_search_path"
777 AC_SUBST(LIBRARY_SEARCH_PATH)
778 AC_SUBST(HEADER_SEARCH_PATH)
781 AC_SUBST(GFXLIBS)
782 AC_SUBST(ICONEXT)
785 dnl ==============================================
786 dnl         End of Graphic Format Libraries
787 dnl ==============================================
791 dnl stdlib.h is checked here, because of conflict in jpeglib.h
792 AC_CHECK_HEADERS(stdlib.h)
794 # AC_PREFIX_PROGRAM(wmaker)
796 dnl Support for PIXMAPDIR option
797 dnl ============================
798 AC_ARG_WITH(pixmapdir, AS_HELP_STRING([--with-pixmapdir=PATH], [specify where pixmaps are located [DATADIR/pixmaps]]))
800 if test "x$with_pixmapdir" != "x"; then
801         pixmapdir=$with_pixmapdir
802 else
803         pixmapdir=`eval echo ${datadir}/pixmaps`
806 AC_DEFINE_UNQUOTED(PIXMAPDIR, "$pixmapdir", [define an extra path for pixmaps (set by configure)])
808 pkgdatadir=`eval echo $datadir`
809 AC_DEFINE_UNQUOTED(PKGDATADIR, "$pkgdatadir/WindowMaker", [where shared data is stored (defined by configure)])
811 _sysconfdir=`eval echo $sysconfdir`
812 AC_DEFINE_UNQUOTED(SYSCONFDIR, "$_sysconfdir", [where the configuration is stored (defined by configure)])
815 dnl Support for GNUSTEP_LOCAL_ROOT, for WPrefs.app
816 dnl ==============================================
818 AC_ARG_WITH(gnustepdir, AS_HELP_STRING([--with-gnustepdir=PATH], [specify the directory for GNUstep applications]))
820 if test "x`echo $with_gnustepdir | grep ^/`" != "x"; then
821     appspath=$with_gnustepdir
824 if test "x$appspath$GNUSTEP_LOCAL_ROOT" = "x"; then
825     wprefs_base_dir=${prefix}
826     wprefs_datadir="${datadir}/WPrefs"
827     wprefs_bindir="${bindir}"
828 else
829     gnustepdir=$appspath
831     if test "x$GNUSTEP_LOCAL_ROOT" != "x" ; then
832         gnustepdir=`echo "$GNUSTEP_LOCAL_ROOT" | sed -e "s|^${prefix}|prefix|"`
833         gnustepdir=`echo $gnustepdir | sed -e 's|^prefix|${prefix}|'`
834     fi
836     wprefs_base_dir=$gnustepdir/Applications
837     wprefs_datadir=$wprefs_base_dir/WPrefs.app
838     wprefs_bindir=$wprefs_base_dir/WPrefs.app
841 AC_SUBST(wprefs_datadir)
842 AC_SUBST(wprefs_bindir)
845 dnl Enable User Defined Menu thing
846 dnl ==============================
847 AC_ARG_ENABLE(usermenu, AS_HELP_STRING([--enable-usermenu], [user defined menus for applications]),
848 if test "$enableval" = yes; then
849         AC_DEFINE(USER_MENU, 1, [define if you want user defined menus for applications])
853 gl_LD_VERSION_SCRIPT
855 AC_OUTPUT(Makefile po/Makefile util/Makefile util/po/Makefile \
856         WINGs/Makefile WINGs/WINGs/Makefile WINGs/Documentation/Makefile \
857         WINGs/Examples/Makefile WINGs/Resources/Makefile WINGs/Tests/Makefile \
858         WINGs/Extras/Makefile WINGs/po/Makefile \
859         wrlib/Makefile wrlib/tests/Makefile \
860         src/Makefile src/wconfig.h \
861         doc/Makefile doc/sk/Makefile doc/cs/Makefile \
862         doc/ru/Makefile \
863         WindowMaker/Makefile WindowMaker/Backgrounds/Makefile \
864         WindowMaker/Defaults/Makefile WindowMaker/IconSets/Makefile \
865         WindowMaker/Icons/Makefile WindowMaker/Pixmaps/Makefile \
866         WindowMaker/Styles/Makefile WindowMaker/Themes/Makefile \
867         WPrefs.app/Makefile WPrefs.app/tiff/Makefile WPrefs.app/xpm/Makefile \
868         WPrefs.app/po/Makefile )
871 dnl Output some helpful data for compiling wraster and WINGs/WUtil apps
872 dnl ===================================================================
874 dnl echo "WFLAGS=\"$LIBPL_INC_PATH -I$prefix/include\"" > WINGs-flags
875 dnl echo "WLIBS=\"-L$exec_prefix/lib -lWINGs -lwraster $LIBPL_LIBS $GFXLIBS -lm\""\
876 dnl     | sed -e 's|\$(prefix)|'"$prefix|" >> WINGs-flags
878 dnl The #lp# and #rp# stuff below is a hack because [ and ] get lost when
879 dnl parsed by m4
881 cat <<EOF >get-wraster-flags
882 #!/bin/sh
884 WCFLAGS="$inc_search_path"
885 WLFLAGS="$lib_search_path"
886 WLIBS="-lwraster $GFXLIBS $XLIBS -lm"
888 usage="Usage: get-wraster-flags #lp#--cflags#rp# #lp#--ldflags#rp# #lp#--libs#rp#"
890 if test \$# -eq 0; then
891       echo "\${usage}" 1>&2
892       exit 1
895 while test \$# -gt 0; do
896   case \$1 in
897     --cflags)
898         echo \$WCFLAGS
899         ;;
900     --ldflags|--lflags)
901         echo \$WLFLAGS
902         ;;
903     --libs)
904         echo \$WLIBS
905         ;;
906     *)
907         echo "\${usage}" 1>&2
908         exit 1
909         ;;
910   esac
911   shift
912 done
917 cat <<EOF > wrlib/wrlib.pc
918 Name: wrlib
919 Description: Image manipulation and conversion library
920 Version: $VERSION
921 Libs: $lib_search_path -lwraster $GFXLIBS $XLIBS -lm
922 Cflags: $inc_search_path
925 cat <<EOF >get-wings-flags
926 #!/bin/sh
928 WCFLAGS="$inc_search_path"
929 WLFLAGS="$lib_search_path"
930 WLIBS="-lWINGs -lWUtil -lwraster $GFXLIBS $XFTLIBS $XLIBS -lm $INTLIBS"
932 usage="Usage: get-wings-flags #lp#--cflags#rp# #lp#--ldflags#rp# #lp#--libs#rp#"
934 if test \$# -eq 0; then
935       echo "\${usage}" 1>&2
936       exit 1
939 while test \$# -gt 0; do
940   case \$1 in
941     --cflags)
942         echo \$WCFLAGS
943         ;;
944     --ldflags|--lflags)
945         echo \$WLFLAGS
946         ;;
947     --libs)
948         echo \$WLIBS
949         ;;
950     *)
951         echo "\${usage}" 1>&2
952         exit 1
953         ;;
954   esac
955   shift
956 done
961 cat <<EOF > WINGs/WINGs.pc
962 Name: WINGs
963 Description: Small widget set with the NeXTStep(TM) look and feel
964 Version: $VERSION
965 Requires: wrlib
966 Libs: $lib_search_path -lWINGs $XFTLIBS $XLIBS -lm $INTLIBS
967 Cflags: $inc_search_path
970 cat <<EOF >get-wutil-flags
971 #!/bin/sh
973 WCFLAGS="-I`eval echo ${includedir}`"
974 WLFLAGS="-L${_libdir}"
975 WLIBS="-lWUtil $INTLIBS"
977 usage="Usage: get-wutil-flags #lp#--cflags#rp# #lp#--ldflags#rp# #lp#--libs#rp#"
979 if test \$# -eq 0; then
980       echo "\${usage}" 1>&2
981       exit 1
984 while test \$# -gt 0; do
985   case \$1 in
986     --cflags)
987         echo \$WCFLAGS
988         ;;
989     --ldflags|--lflags)
990         echo \$WLFLAGS
991         ;;
992     --libs)
993         echo \$WLIBS
994         ;;
995     *)
996         echo "\${usage}" 1>&2
997         exit 1
998         ;;
999   esac
1000   shift
1001 done
1006 sed 's/#lp#/[/g' get-wraster-flags | sed 's/#rp#/]/g' > wrlib/get-wraster-flags
1007 sed 's/#lp#/[/g' get-wings-flags | sed 's/#rp#/]/g' > WINGs/get-wings-flags
1008 sed 's/#lp#/[/g' get-wutil-flags | sed 's/#rp#/]/g' > WINGs/get-wutil-flags
1010 chmod 755 wrlib/get-wraster-flags WINGs/get-wings-flags WINGs/get-wutil-flags
1012 rm -f get-wraster-flags get-wings-flags get-wutil-flags
1016 dnl Spit out the configuration
1017 dnl ==========================
1019 supported_gfx="$supported_gfx builtin-PPM"
1021 if test "x$MOFILES" = "x"; then
1022         mof=None
1023 else
1024         mof=`echo $MOFILES`
1027 if test "x$MOFILES" = "x"; then
1028         languages=None
1029 else
1030         languages=`echo $MOFILES | sed 's/.mo//g'`
1033 echo
1034 echo "Window Maker was configured as follows:"
1035 echo
1036 echo "Installation path prefix            : $prefix"
1037 echo "Installation path for binaries      : $_bindir"
1038 echo "Installation path for WPrefs.app    : $wprefs_base_dir" | sed -e 's|\${prefix}|'"$prefix|"
1039 echo "Supported graphic format libraries  : $supported_gfx"
1040 echo "Antialiased text support in WINGs   : $xft"
1041 echo "Xinerama extension support          : $xinerama"
1042 echo "XRandR extension support            : $xrandr"
1043 echo "Translated message files to install : $mof"
1044 dnl echo "Supported languages beside English  : $languages"
1045 if test "x$MOFILES" != "x"; then
1046         echo "Installation path for translations  : $NLSDIR" | sed -e 's|\$(prefix)|'"$prefix|"
1048 echo
1050 dnl WM_PRINT_REDCRAP_BUG_STATUS
1052 if test "x$ac_cv_header_jpeglib_h" != xyes; then
1053 echo "WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING"
1054 echo
1055 echo "JPEG support will not be included because the JPEG library is"
1056 echo "not installed correctly or was not found. Background images"
1057 echo "from themes will not display as they usually are JPEG files."
1058 echo
1059 echo "To fix, download and install the jpeg library and/or make sure you"
1060 echo "installed all jpeg related packages, SPECIALLY the development packages"
1061 echo "like jpeg-devel (if you use some prepackaged version of libjpeg)."
1062 echo
1063 echo "WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING"
1067 dnl This is for Emacs.  I'm lazy, I know... (nicolai)
1068 dnl ================================================
1069 dnl Local Variables:
1070 dnl compile-command: "autoconf"
1071 dnl End: