Use -lbsd for strlcat/strlcpy, if needed and available
[wmaker-crm.git] / configure.ac
bloba37f545ea02c7096857b03645d4f6a9722c6c3dc
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                 CFLAGS="-DSTUB_HINT=\\\"${host}\\\""
109         ;;
110 esac
111 AC_SUBST(WM_OSDEP)
114 dnl the prefix
115 dnl ==========
117 dnl move this earlier in the script... anyone know why this is handled
118 dnl in such a bizarre way?
120 test "x$prefix" = xNONE && prefix=$ac_default_prefix
121 dnl Let make expand exec_prefix.
122 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
125 _bindir=`eval echo $bindir`
126 _bindir=`eval echo $_bindir`
128 _libdir=`eval echo $libdir`
129 _libdir=`eval echo $_libdir`
130 lib_search_path="-L$_libdir"
132 inc_search_path=`eval echo $includedir`
133 inc_search_path="-I`eval echo $inc_search_path`"
135 dnl ===============================================
136 dnl Specify paths to look for libraries and headers
137 dnl ===============================================
138 AC_ARG_WITH(libs-from, AS_HELP_STRING([--with-libs-from], [pass compiler flags to look for libraries]),
139         [lib_search_path="$withval $lib_search_path"])
141 AC_ARG_WITH(incs-from, AS_HELP_STRING([--with-incs-from], [pass compiler flags to look for header files]),
142         [inc_search_path="$withval $inc_search_path"])
145 dnl Boehm GC
146 dnl ========
147 with_boehm_gc=no
148 AC_ARG_ENABLE([boehm-gc],
149     [AS_HELP_STRING([--enable-boehm-gc], [use Boehm GC instead of the default libc malloc() [default=no]])],
150     [with_boehm_gc=$enableval])
152 AS_IF([test "x$with_boehm_gc" = "xyes"],
153     AC_SEARCH_LIBS([GC_malloc], [gc],
154         [AC_DEFINE(USE_BOEHM_GC, 1, [Define if Boehm GC is to be used])],
155         [AC_MSG_FAILURE([--enable-boehm-gc specified but test for libgc failed])]
156     )
160 dnl ============================
161 dnl Checks for library functions
162 dnl ============================
163 dnl not used anywhere
164 AC_FUNC_MEMCMP
165 AC_FUNC_VPRINTF
166 AC_CHECK_FUNCS(gethostname select poll strcasecmp strncasecmp \
167                setsid atexit mallinfo mkstemp sysconf)
169 dnl Check for strlcat/strlcpy
170 dnl =========================
171 AC_ARG_WITH([libbsd],
172   [AS_HELP_STRING([--without-libbsd], [do not use libbsd for strlcat and strlcpy [default=check]])],
173   [AS_IF([test "x$with_libbsd" != "xno"],
174     [with_libbsd=bsd]
175     [with_libbsd=]
176   )],
177   [with_libbsd=bsd])
179 tmp_libs=$LIBS
180 AC_SEARCH_LIBS([strlcat],[$with_libbsd],
181   [AC_DEFINE(HAVE_STRLCAT, 1, [Define if strlcat is available])],
182   []
184 AC_SEARCH_LIBS([strlcpy],[$with_libbsd],
185   [AC_DEFINE(HAVE_STRLCAT, 1, [Define if strlcpy is available])],
186   []
188 LIBS=$tmp_libs
190 LIBBSD=
191 AS_IF([test "x$ac_cv_search_strlcat" = "x-lbsd" -o "x$ac_cv_search_strlcpy" = "x-lbsd"],
192   [LIBBSD=-lbsd
193    AC_CHECK_HEADERS([bsd/string.h])]
195 AC_SUBST(LIBBSD)
197 dnl Check for inotify
198 dnl =================
199 AC_CHECK_HEADERS(sys/inotify.h, AC_DEFINE(HAVE_INOTIFY, 1, Check for inotify))
201 dnl Check CPP
202 dnl =========
203 if test "x$CPP_PATH" = x; then
204     AC_PATH_PROG(CPP_PATH, cpp, notfound, 
205                 $PATH:/lib:/usr/bin:/bin:/usr/lib:/usr/ccs/lib)
209 dnl Tell stupid Solaris cpp that the files it will process have C++ like syntax
210 dnl RedHat 5.x is broken too, so it won't make a symlink from cpp to the
211 dnl standard locations
213 if test "$CPP_PATH" = "/usr/ccs/lib/cpp" -o "$CPP_PATH" = "notfound" ; then
214     if test "$GCC" = "yes"; then
215         CPP_PATH="gcc -E -x c"
216     else 
217         if test "$CPP_PATH" = "/usr/ccs/lib/cpp"; then
218             CPP_PATH="$CPP_PATH -B"
219         else
220             echo "cpp, the C preprocessor was not found in your system."
221             echo "Create a symbolic link from it to /lib/cpp and rerun configure"
222             exit
223         fi
224     fi
226 AC_DEFINE_UNQUOTED(CPP_PATH, "$CPP_PATH", [define to the path to cpp])
230 dnl Checks for header files.
231 dnl =======================
232 AC_HEADER_SYS_WAIT
233 AC_HEADER_TIME
234 AC_CHECK_HEADERS(fcntl.h limits.h sys/ioctl.h sys/time.h sys/types.h \
235                  libintl.h sys/select.h poll.h malloc.h ctype.h string.h \
236                  strings.h)
240 dnl Checks for typedefs, structures, and compiler characteristics.
241 dnl ==============================================================
242 AC_DECL_SYS_SIGLIST
243 AC_C_CONST
244 AC_TYPE_SIZE_T
245 AC_TYPE_PID_T
246 AC_TYPE_SIGNAL
249 dnl pkg-config
250 dnl ==========
251 dnl AC_ARG_VAR(PKGCONFIG, [pkg-config command])
252 AC_CHECK_PROG(PKGCONFIG, pkg-config, pkg-config) 
254 dnl gettext
255 dnl =======
257 dnl AM_GNU_GETTEXT
259 INTLIBS=""
261 AC_CHECK_FUNC(gettext, [HAVEGETTEXT="yes"], 
262         AC_CHECK_LIB(intl, gettext, [INTLIBS="-lintl" HAVEGETTEXT="yes"],
263                          INTLIBS="" ))
265 AC_CHECK_PROG(XGETTEXT, xgettext, xgettext)
267 if test "$XGETTEXT" != ""; then 
268     if $XGETTEXT --help 2>&1 | grep illegal >/dev/null ; then
269         echo "xgettext isn't GNU version"
270         XGETTEXT=""
271     fi
274 if test "$LINGUAS" != ""; then
275     if test "$XGETTEXT" != "" -a "$HAVEGETTEXT" != ""; then
276         AC_DEFINE(I18N, 1, [Internationalization (I18N) support (set by configure)])
277         PO=""
278         echo "xgettext and gettext() exist; will build i18n support for $LINGUAS"
279     else
280         LINGUAS=""
281         PO=""
282         echo "xgettext and libintl.a don't both exist; will not build i18n support"
283     fi
284 else
285         INTLIBS=""
286         MOFILES=""
287         WPMOFILES=""
288         UTILMOFILES=""
289         PO=""
293 dnl The Tower of Babel
294 dnl ==================
296 dnl List of supported locales
297 dnl =========================
298 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"
299 supported_wprefs_locales="bg ca cs de es et fi fr hr hu it ja ko pt ru sk zh_CN zh_TW"
300 supported_wings_locales="bg ca cs de fr sk"
301 supported_util_locales="de"
303 for lang in $LINGUAS; do
304         ok=0
305         for l in $supported_locales; do
306                 if test "$l" = "$lang"; then
307                         ok=1
308                         break
309                 fi
310         done
311         if test "$ok" = 1; then
312                 MOFILES="$MOFILES $lang.mo"
313         else
314                 echo "Locale $lang is not supported."
315         fi
316         ok=0
317         for l in $supported_wprefs_locales; do
318                 if test "$l" = "$lang"; then
319                         ok=1
320                         break
321                 fi
322         done
323         if test "$ok" = 1; then
324                 WPMOFILES="$WPMOFILES $lang.mo"
325         fi
326         ok=0
327         for l in $supported_util_locales; do
328                 if test "$l" = "$lang"; then
329                         ok=1
330                         break
331                 fi
332         done
333         if test "$ok" = 1; then
334                 UTILMOFILES="$UTILMOFILES $lang.mo"
335         fi
336         ok=0
337         for l in $supported_wings_locales; do
338                 if test "$l" = "$lang"; then
339                         ok=1
340                         break
341                 fi
342         done
343         if test "$ok" = 1; then
344                 WINGSMOFILES="$WINGSMOFILES $lang.mo"
345         fi
346 done
349 dnl Added by Oliver - Support for NLSDIR option
350 dnl ===========================================
351 AC_ARG_WITH(nlsdir, AS_HELP_STRING([--with-nlsdir=PATH], [specify where the locale stuff should go]))
353 if test "x$NLSDIR" = "x"; then
354         if test "x$with_nlsdir" != "x"; then
355                 NLSDIR=$with_nlsdir
356         else
357                 NLSDIR='$(prefix)/lib/locale'
358         fi
361 AC_ARG_WITH(menu-textdomain, AS_HELP_STRING([--with-menu-textdomain=DOMAIN], [specify gettext domain used for menu translations]),
362         [if test "x$withval" != "xno"; then
363          AC_DEFINE_UNQUOTED([MENU_TEXTDOMAIN], ["$withval"], [gettext domain used for menu translations])
364          fi])
366 AC_SUBST(INTLIBS)
367 AC_SUBST(NLSDIR)
368 AC_SUBST(MOFILES)
369 AC_SUBST(WPMOFILES)
370 AC_SUBST(UTILMOFILES)
371 AC_SUBST(WINGSMOFILES)
372 AC_SUBST(supported_locales)
374 dnl ===========================================
375 dnl             Stuff that uses X
376 dnl ===========================================
378 AC_PATH_XTRA
380 if test $no_x; then
381     AC_MSG_ERROR([The path for the X11 files not found!
382 Make sure you have X and it's headers and libraries (the -devel packages
383 in Linux) installed.])
386 X_LIBRARY_PATH=$x_libraries
387 XCFLAGS="$X_CFLAGS"
388 XLFLAGS="$X_LIBS"
389 XLIBS="-lX11 -lXmu $X_EXTRA_LIBS"
391 lib_search_path="$lib_search_path $XLFLAGS"
392 inc_search_path="$inc_search_path $XCFLAGS"
394 AC_SUBST(X_LIBRARY_PATH)
396 dnl Decide which locale function to use, setlocale() or _Xsetlocale()
397 dnl by MANOME Tomonori 
398 dnl ===========================================
399 use_locale=yes
400 AC_ARG_ENABLE(locale, AS_HELP_STRING([--disable-locale], [disable use of X locale support]),
401               use_locale=no)
403 if test "$use_locale" = yes; then
404         AC_CHECK_LIB(X11, _Xsetlocale,
405                 AC_DEFINE(X_LOCALE, 1, [define if you want support for X window's X_LOCALE (set by configure)]),,
406                 $XLFLAGS $XLIBS)
409 dnl Check whether XInternAtoms() exist
410 dnl ==================================
411 AC_CHECK_LIB(X11, XInternAtoms, 
412              AC_DEFINE(HAVE_XINTERNATOMS, 1, [define if your X server has XInternAtoms() (set by configure)]),,
413              $XLFLAGS $XLIBS)
415 dnl Check whether XConvertCase() exist
416 dnl ==================================
417 AC_CHECK_LIB(X11, XConvertCase, 
418              AC_DEFINE(HAVE_XCONVERTCASE, 1, [define if your X server has XConvertCase() (set by configure)]),,
419              $XLFLAGS $XLIBS)
421 dnl XKB keyboard language status
422 dnl ============================
423 AC_ARG_ENABLE(modelock, AS_HELP_STRING([--enable-modelock], [XKB keyboard language status support]),
424                 AC_DEFINE(XKB_MODELOCK, 1, [whether XKB language MODELOCK should be enabled]))
426 dnl Shape support
427 dnl =============
428 shape=yes
429 AC_ARG_ENABLE(shape, AS_HELP_STRING([--disable-shape], [disable shaped window extension support]),
430                 shape=$enableval, shape=yes)
431 added_xext=no
433 if test "$shape" = yes; then
434         AC_CHECK_LIB(Xext, XShapeSelectInput, [XLIBS="-lXext $XLIBS"
435                 added_xext=yes
436                 AC_DEFINE(SHAPE, 1, [define if you want support for shaped windows (set by configure)])], 
437                 shape=no, $XLFLAGS $XLIBS)
440 dnl XRandR support
441 dnl ==============
442 xrandr=no
443 AC_ARG_ENABLE(xrandr, AS_HELP_STRING([--enable-xrandr], [enable XRandR window extension support]),
444                 xrandr=$enableval, xrandr=no)
445 added_xext=no
447 if test "$xrandr" = yes; then
448         AC_CHECK_LIB(Xrandr, XRRQueryExtension, [XLIBS="-lXrandr $XLIBS"
449                 added_xext=yes
450                 AC_DEFINE(HAVE_XRANDR, 1, [define if you want support for XRandR (set by configure)])],
451                 xrandr=no, $XLFLAGS $XLIBS)
455 dnl libWINGS uses math functions, check whether usage requires linking
456 dnl against libm
458 AC_CHECK_FUNC(atan,[mathneedslibm=no;LIBM=],[mathneedslibm=dunno])
459 if test "x$mathneedslibm" = "xdunno" ; then
460         AC_CHECK_LIB(m, atan, [LIBM=-lm])
462 AC_SUBST(LIBM)
466 dnl libWINGS uses FcPatternDel from libfontconfig
468 AC_MSG_CHECKING([for fontconfig library])
469 FCLIBS=`$PKGCONFIG fontconfig --libs`
470 if test "x$FCLIBS" = "x" ; then
471         AC_MSG_RESULT([not found])
472 else
473         AC_MSG_RESULT([found])
475 AC_SUBST(FCLIBS)
478 dnl Xft2 antialiased font support
479 dnl =============================
481 xft=yes
482 XFTLIBS=""
484 if test "x$PKGCONFIG" != x -a "`$PKGCONFIG xft; echo $?`" = 0; then
485         XFTCONFIG="$PKGCONFIG xft"
486         pkgconfig_xft=yes
487 else
488         AC_CHECK_PROG(XFTCONFIG, xft-config, xft-config)
491 AC_MSG_CHECKING([for the Xft2 library])
493 if test "x$XFTCONFIG" != x; then
494         XFTLIBS=`$XFTCONFIG --libs`
495         XFTFLAGS=`$XFTCONFIG --cflags`
496         AC_MSG_RESULT([found])
497 else
498         AC_MSG_RESULT([not found])
499         echo
500         echo "ERROR!!! libXft2 is not installed or could not be found."
501         echo "         Xft2 is a requirement for building Window Maker."
502         echo "         Please install it (along with fontconfig) before continuing."
503         echo
504         exit 1
507 minXFT="2.1.0"
508 goodxft="no"
511 dnl The macro below will use $XFTFLAGS (defined above) to find Xft.h
513 WM_CHECK_XFT_VERSION($minXFT, goodxft=yes, goodxft=no)
515 if test "$goodxft" = no; then
516         echo
517         echo "ERROR!!! libXft on this system is an old version."
518         echo "         Please consider upgrading to at least version ${minXFT}."
519         echo
520         exit 1
523 AC_SUBST(XFTFLAGS)
524 AC_SUBST(XFTLIBS)
527 dnl XINERAMA support
528 dnl ================
529 xinerama=no
530 AC_ARG_ENABLE(xinerama, AS_HELP_STRING([--enable-xinerama], [enable Xinerama extension support]),
531                 xinerama=$enableval, xinerama=no)
533 if test "$xinerama" = yes; then
534         AC_CHECK_LIB(Xinerama, XineramaQueryScreens, 
535                 [XLIBS="-lXinerama $XLIBS"
536                 xfxine=yes],
537                 xfxine=no, $XLFLAGS $XLIBS)
539         AC_CHECK_LIB(Xext, XineramaGetInfo,
540                 [sunxine=yes
541                 ], sunxine=no, $XLFLAGS $XLIBS)
543         if test "$xfxine" = yes; then
544                 xine=1
545         fi
547         if test "$sunxine" = yes; then
548             xine=1
549             AC_DEFINE(SOLARIS_XINERAMA, 1, 
550                 [define if you want support for the XINERAMA extension and are in Solaris (set by configure)])
551         fi
553         if test "$xine" = 1; then
554             AC_DEFINE(XINERAMA, 1, 
555                 [define if you want support for the XINERAMA extension (set by configure)])
556         fi
561 dnl MIT-SHM support
562 dnl ===============
563 shm=yes
564 AC_ARG_ENABLE(shm, AS_HELP_STRING([--disable-shm], [disable usage of MIT-SHM extension]),
565                 shm=$enableval, shm=yes)
567 if test "$shm" = yes; then
568         AC_CHECK_LIB(Xext, XShmAttach, ok=yes, ok=no, $XLFLAGS $XLIBS)
570         if test "$ok" = yes; then
571         AC_CHECK_FUNC(shmget, ok=yes, ok=no)
572         fi
574         if test "$ok" = yes; then
575                 if test "$added_xext" = no; then
576                         XLIBS="-lXext $XLIBS"
577                 fi
578                 AC_DEFINE(XSHM, 1, [define if X's shared memory extension is available (set by configure)])
579         fi
583 dnl R6 Style Session Management Support
584 dnl ===================================
588 #AC_DEFINE(R6SM)
589 #AC_SUBST(XSMPLIBS)
593 dnl ==============================================
594 dnl         Graphic Format Libraries
595 dnl ==============================================
597 dnl XPM Support
598 dnl ===========
599 xpm=yes
600 AC_ARG_ENABLE(xpm, AS_HELP_STRING([--disable-xpm], [disable use of XPM pixmaps through libXpm]),
601         xpm=$enableval, xpm=yes)
603 if test "$xpm" = yes; then
604     WM_CHECK_LIB(Xpm, XpmCreatePixmapFromData, [$XLFLAGS $XLIBS])
606     if test "x$ac_cv_lib_Xpm_XpmCreatePixmapFromData" = xyes; then
607         WM_CHECK_HEADER(X11/xpm.h)
608         if test "x$ac_cv_header_X11_xpm_h" = xyes; then
609                 GFXLIBS="$GFXLIBS -lXpm"
610                 supported_gfx="XPM"
611                 AC_DEFINE(USE_XPM, 1, [define if XPM libraries are available (set by configure)])
612         else
613                 supported_gfx="builtin-XPM"
614         fi
615     fi
618 AC_SUBST(XLFLAGS)
619 AC_SUBST(XLIBS)
620 AC_SUBST(X_EXTRA_LIBS)
622 dnl ===============================================
623 dnl             End of stuff that uses X
624 dnl ===============================================
626 dnl PNG Support
627 dnl ===========
628 png=yes
629 AC_ARG_ENABLE(png, AS_HELP_STRING([--disable-png], [disable PNG support through libpng]),
630         png=$enableval, png=yes, png=no)
632 if test "$png" = yes ; then
633     WM_CHECK_LIB(png, png_get_valid, [-lz -lm])
635     if test "x$ac_cv_lib_png_png_get_valid" = xyes; then
636         WM_CHECK_HEADER(png.h)
637         if test "x$ac_cv_header_png_h" = xyes; then
638             GFXLIBS="$GFXLIBS -lpng -lz" 
639             supported_gfx="$supported_gfx PNG"
640             AC_DEFINE(USE_PNG, 1, [define if PNG libraries are available (set by configure)])
641         fi
642     fi
646 dnl JPEG Support
647 dnl ============
648 jpeg=yes
649 ljpeg=""
650 AC_ARG_ENABLE(jpeg, AS_HELP_STRING([--disable-jpeg], [disable JPEG support through libjpeg]),
651         jpeg=$enableval, jpeg=yes, jpeg=no)
653 if test "$jpeg" = yes; then
654     WM_CHECK_LIB(jpeg, jpeg_destroy_compress)
656     if test "x$ac_cv_lib_jpeg_jpeg_destroy_compress" = xyes; then
658         ljpeg="-ljpeg"
660         WM_CHECK_HEADER(jpeglib.h)
661         if test "x$ac_cv_header_jpeglib_h" = xyes; then
662             GFXLIBS="$GFXLIBS -ljpeg"
663             supported_gfx="$supported_gfx JPEG"
664             AC_DEFINE(USE_JPEG, 1, [define if JPEG libraries are available (set by configure)])
665         fi
666     fi
670 dnl GIF Support
671 dnl ============
672 gif=yes
673 AC_ARG_ENABLE(gif, AS_HELP_STRING([--disable-gif], [disable GIF support through libgif or libungif]),
674         gif=$enableval, gif=yes, gif=no)
676 if test "$gif" = yes; then
677     my_libname=""
678     WM_CHECK_LIB(ungif, DGifOpenFileName, [$XLFLAGS $XLIBS])
679     if test "x$ac_cv_lib_ungif_DGifOpenFileName" = xyes; then
680         my_libname=-lungif
681     fi
683 dnl libungif is the same thing as libgif for all practical purposes.
685     if test "x$my_libname" = x; then
686         WM_CHECK_LIB(gif, DGifOpenFileName, [$XLFLAGS $XLIBS])
687         if test "x$ac_cv_lib_gif_DGifOpenFileName" = xyes; then
688             my_libname=-lgif
689         fi
690     fi
692     if test "$my_libname" != x; then
693         WM_CHECK_HEADER(gif_lib.h)
694         if test "x$ac_cv_header_gif_lib_h" = xyes; then
695             GFXLIBS="$GFXLIBS $my_libname"
696             supported_gfx="$supported_gfx GIF"
697             AC_DEFINE(USE_GIF, 1, [define if GIF libraries are available (set by configure)])
698         fi
699     fi
704 dnl TIFF Support
705 dnl ============
706 AC_ARG_ENABLE(tiff, 
707 AS_HELP_STRING([--disable-tiff], [disable use of TIFF images through libtiff]),
708         tif=$enableval, tif=yes, tif=no)
711 # TIFF can optionally have JPEG and/or zlib support. Must find out
712 # when they are supported so that correct library flags are passed during
713 # detection and linkage
716 # By default use xpm icons if tiff is not found.
717 ICONEXT="xpm"
720 if test "$tif" = yes; then
721     my_libname=""
722     WM_CHECK_LIB(tiff, TIFFGetVersion, [-lm])
723     if test "x$ac_cv_lib_tiff_TIFFGetVersion" = xyes; then
724         my_libname="-ltiff"
725     fi
727 dnl Retry with zlib
729     unset ac_cv_lib_tiff_TIFFGetVersion
730     if test "x$my_libname" = x; then
731         WM_CHECK_LIB(tiff, TIFFGetVersion, [$ljpeg -lz -lm])
732         if test "x$ac_cv_lib_tiff_TIFFGetVersion" = xyes; then
733             my_libname="-ltiff -lz"
734         fi
735     fi
737     if test "x$my_libname" = x; then
738         WM_CHECK_LIB(tiff34, TIFFGetVersion, [$ljpeg -lm])
739         if test "x$ac_cv_lib_tiff34_TIFFGetVersion" = xyes; then
740             my_libname="-ltiff34"
741         fi
742     fi
745     if test "x$my_libname" != x; then
746         WM_CHECK_HEADER(tiffio.h)
747         if test "x$ac_cv_header_tiffio_h" = xyes; then
748             GFXLIBS="$my_libname $GFXLIBS"
749             ICONEXT="tiff"
750             supported_gfx="$supported_gfx TIFF"
751             AC_DEFINE(USE_TIFF, 1, [define if TIFF libraries are available (set by configure)])     
752         fi
753     fi
756 LIBRARY_SEARCH_PATH="$lib_search_path"
757 HEADER_SEARCH_PATH="$inc_search_path"
759 AC_SUBST(LIBRARY_SEARCH_PATH)
760 AC_SUBST(HEADER_SEARCH_PATH)
763 AC_SUBST(GFXLIBS)
764 AC_SUBST(ICONEXT)
767 dnl ==============================================
768 dnl         End of Graphic Format Libraries
769 dnl ==============================================
773 dnl stdlib.h is checked here, because of conflict in jpeglib.h
774 AC_CHECK_HEADERS(stdlib.h)
776 # AC_PREFIX_PROGRAM(wmaker)
778 dnl Support for PIXMAPDIR option
779 dnl ============================
780 AC_ARG_WITH(pixmapdir, AS_HELP_STRING([--with-pixmapdir=PATH], [specify where pixmaps are located [DATADIR/pixmaps]]))
782 if test "x$with_pixmapdir" != "x"; then
783         pixmapdir=$with_pixmapdir
784 else
785         pixmapdir=`eval echo ${datadir}/pixmaps`
788 AC_DEFINE_UNQUOTED(PIXMAPDIR, "$pixmapdir", [define an extra path for pixmaps (set by configure)])
790 pkgdatadir=`eval echo $datadir`
791 AC_DEFINE_UNQUOTED(PKGDATADIR, "$pkgdatadir/WindowMaker", [where shared data is stored (defined by configure)])
793 _sysconfdir=`eval echo $sysconfdir`
794 AC_DEFINE_UNQUOTED(SYSCONFDIR, "$_sysconfdir", [where the configuration is stored (defined by configure)])
797 dnl Support for GNUSTEP_LOCAL_ROOT, for WPrefs.app
798 dnl ==============================================
800 AC_ARG_WITH(gnustepdir, AS_HELP_STRING([--with-gnustepdir=PATH], [specify the directory for GNUstep applications]))
802 if test "x`echo $with_gnustepdir | grep ^/`" != "x"; then
803     appspath=$with_gnustepdir
806 if test "x$appspath$GNUSTEP_LOCAL_ROOT" = "x"; then
807     wprefs_base_dir=${prefix}
808     wprefs_datadir="${datadir}/WPrefs"
809     wprefs_bindir="${bindir}"
810 else
811     gnustepdir=$appspath
813     if test "x$GNUSTEP_LOCAL_ROOT" != "x" ; then
814         gnustepdir=`echo "$GNUSTEP_LOCAL_ROOT" | sed -e "s|^${prefix}|prefix|"`
815         gnustepdir=`echo $gnustepdir | sed -e 's|^prefix|${prefix}|'`
816     fi
818     wprefs_base_dir=$gnustepdir/Applications
819     wprefs_datadir=$wprefs_base_dir/WPrefs.app
820     wprefs_bindir=$wprefs_base_dir/WPrefs.app
823 AC_SUBST(wprefs_datadir)
824 AC_SUBST(wprefs_bindir)
827 dnl Enable User Defined Menu thing
828 dnl ==============================
829 AC_ARG_ENABLE(usermenu, AS_HELP_STRING([--enable-usermenu], [user defined menus for applications]),
830 if test "$enableval" = yes; then
831         AC_DEFINE(USER_MENU, 1, [define if you want user defined menus for applications])
835 gl_LD_VERSION_SCRIPT
837 AC_OUTPUT(Makefile po/Makefile util/Makefile util/po/Makefile \
838         WINGs/Makefile WINGs/WINGs/Makefile WINGs/Documentation/Makefile \
839         WINGs/Examples/Makefile WINGs/Resources/Makefile WINGs/Tests/Makefile \
840         WINGs/Extras/Makefile WINGs/po/Makefile \
841         wrlib/Makefile wrlib/tests/Makefile \
842         src/Makefile src/wconfig.h \
843         doc/Makefile doc/sk/Makefile doc/cs/Makefile \
844         doc/ru/Makefile \
845         WindowMaker/Makefile WindowMaker/Backgrounds/Makefile \
846         WindowMaker/Defaults/Makefile WindowMaker/IconSets/Makefile \
847         WindowMaker/Icons/Makefile WindowMaker/Pixmaps/Makefile \
848         WindowMaker/Styles/Makefile WindowMaker/Themes/Makefile \
849         WPrefs.app/Makefile WPrefs.app/tiff/Makefile WPrefs.app/xpm/Makefile \
850         WPrefs.app/po/Makefile )
853 dnl Output some helpful data for compiling wraster and WINGs/WUtil apps
854 dnl ===================================================================
856 dnl echo "WFLAGS=\"$LIBPL_INC_PATH -I$prefix/include\"" > WINGs-flags
857 dnl echo "WLIBS=\"-L$exec_prefix/lib -lWINGs -lwraster $LIBPL_LIBS $GFXLIBS -lm\""\
858 dnl     | sed -e 's|\$(prefix)|'"$prefix|" >> WINGs-flags
860 dnl The #lp# and #rp# stuff below is a hack because [ and ] get lost when
861 dnl parsed by m4
863 cat <<EOF >get-wraster-flags
864 #!/bin/sh
866 WCFLAGS="$inc_search_path"
867 WLFLAGS="$lib_search_path"
868 WLIBS="-lwraster $GFXLIBS $XLIBS -lm"
870 usage="Usage: get-wraster-flags #lp#--cflags#rp# #lp#--ldflags#rp# #lp#--libs#rp#"
872 if test \$# -eq 0; then
873       echo "\${usage}" 1>&2
874       exit 1
877 while test \$# -gt 0; do
878   case \$1 in
879     --cflags)
880         echo \$WCFLAGS
881         ;;
882     --ldflags|--lflags)
883         echo \$WLFLAGS
884         ;;
885     --libs)
886         echo \$WLIBS
887         ;;
888     *)
889         echo "\${usage}" 1>&2
890         exit 1
891         ;;
892   esac
893   shift
894 done
899 cat <<EOF > wrlib/wrlib.pc
900 Name: wrlib
901 Description: Image manipulation and conversion library
902 Version: $VERSION
903 Libs: $lib_search_path -lwraster $GFXLIBS $XLIBS -lm
904 Cflags: $inc_search_path
907 cat <<EOF >get-wings-flags
908 #!/bin/sh
910 WCFLAGS="$inc_search_path"
911 WLFLAGS="$lib_search_path"
912 WLIBS="-lWINGs -lWUtil -lwraster $GFXLIBS $XFTLIBS $XLIBS -lm $INTLIBS"
914 usage="Usage: get-wings-flags #lp#--cflags#rp# #lp#--ldflags#rp# #lp#--libs#rp#"
916 if test \$# -eq 0; then
917       echo "\${usage}" 1>&2
918       exit 1
921 while test \$# -gt 0; do
922   case \$1 in
923     --cflags)
924         echo \$WCFLAGS
925         ;;
926     --ldflags|--lflags)
927         echo \$WLFLAGS
928         ;;
929     --libs)
930         echo \$WLIBS
931         ;;
932     *)
933         echo "\${usage}" 1>&2
934         exit 1
935         ;;
936   esac
937   shift
938 done
943 cat <<EOF > WINGs/WINGs.pc
944 Name: WINGs
945 Description: Small widget set with the NeXTStep(TM) look and feel
946 Version: $VERSION
947 Requires: wrlib
948 Libs: $lib_search_path -lWINGs $XFTLIBS $XLIBS -lm $INTLIBS
949 Cflags: $inc_search_path
952 cat <<EOF >get-wutil-flags
953 #!/bin/sh
955 WCFLAGS="-I`eval echo ${includedir}`"
956 WLFLAGS="-L${_libdir}"
957 WLIBS="-lWUtil $INTLIBS"
959 usage="Usage: get-wutil-flags #lp#--cflags#rp# #lp#--ldflags#rp# #lp#--libs#rp#"
961 if test \$# -eq 0; then
962       echo "\${usage}" 1>&2
963       exit 1
966 while test \$# -gt 0; do
967   case \$1 in
968     --cflags)
969         echo \$WCFLAGS
970         ;;
971     --ldflags|--lflags)
972         echo \$WLFLAGS
973         ;;
974     --libs)
975         echo \$WLIBS
976         ;;
977     *)
978         echo "\${usage}" 1>&2
979         exit 1
980         ;;
981   esac
982   shift
983 done
988 sed 's/#lp#/[/g' get-wraster-flags | sed 's/#rp#/]/g' > wrlib/get-wraster-flags
989 sed 's/#lp#/[/g' get-wings-flags | sed 's/#rp#/]/g' > WINGs/get-wings-flags
990 sed 's/#lp#/[/g' get-wutil-flags | sed 's/#rp#/]/g' > WINGs/get-wutil-flags
992 chmod 755 wrlib/get-wraster-flags WINGs/get-wings-flags WINGs/get-wutil-flags
994 rm -f get-wraster-flags get-wings-flags get-wutil-flags
998 dnl Spit out the configuration
999 dnl ==========================
1001 supported_gfx="$supported_gfx builtin-PPM"
1003 if test "x$MOFILES" = "x"; then
1004         mof=None
1005 else
1006         mof=`echo $MOFILES`
1009 if test "x$MOFILES" = "x"; then
1010         languages=None
1011 else
1012         languages=`echo $MOFILES | sed 's/.mo//g'`
1015 echo
1016 echo "Window Maker was configured as follows:"
1017 echo
1018 echo "Installation path prefix            : $prefix"
1019 echo "Installation path for binaries      : $_bindir"
1020 echo "Installation path for WPrefs.app    : $wprefs_base_dir" | sed -e 's|\${prefix}|'"$prefix|"
1021 echo "Supported graphic format libraries  : $supported_gfx"
1022 echo "Antialiased text support in WINGs   : $xft"
1023 echo "Xinerama extension support          : $xinerama"
1024 echo "XRandR extension support            : $xrandr"
1025 echo "Translated message files to install : $mof"
1026 dnl echo "Supported languages beside English  : $languages"
1027 if test "x$MOFILES" != "x"; then
1028         echo "Installation path for translations  : $NLSDIR" | sed -e 's|\$(prefix)|'"$prefix|"
1030 echo
1032 dnl WM_PRINT_REDCRAP_BUG_STATUS
1034 if test "x$ac_cv_header_jpeglib_h" != xyes; then
1035 echo "WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING"
1036 echo
1037 echo "JPEG support will not be included because the JPEG library is"
1038 echo "not installed correctly or was not found. Background images"
1039 echo "from themes will not display as they usually are JPEG files."
1040 echo
1041 echo "To fix, download and install the jpeg library and/or make sure you"
1042 echo "installed all jpeg related packages, SPECIALLY the development packages"
1043 echo "like jpeg-devel (if you use some prepackaged version of libjpeg)."
1044 echo
1045 echo "WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING"
1049 dnl This is for Emacs.  I'm lazy, I know... (nicolai)
1050 dnl ================================================
1051 dnl Local Variables:
1052 dnl compile-command: "autoconf"
1053 dnl End: