WINGs: Add detection and local copy for strlcat()/strlcpy()
[wmaker-crm.git] / configure.ac
blobb6d0e48e1ebb51819ad6fde4c8f7510bf0125141
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)
169 dnl Check for strlcat/strlcpy
170 dnl =========================
171 dnl XXX: A clean way to use libbsd-supplied equivalents should be come up
172 dnl      with. This is a tricky-ish problem, as it will require a conditional
173 dnl      inclusion of an extra header everywhere there is string.h included.
174 AC_CHECK_FUNC(strlcat, AC_DEFINE(HAVE_STRLCAT, 1, Check for strlcat))
175 AC_CHECK_FUNC(strlcpy, AC_DEFINE(HAVE_STRLCPY, 1, Check for strlcpy))
177 dnl Check for inotify
178 dnl =================
179 AC_CHECK_HEADERS(sys/inotify.h, AC_DEFINE(HAVE_INOTIFY, 1, Check for inotify))
181 dnl Check CPP
182 dnl =========
183 if test "x$CPP_PATH" = x; then
184     AC_PATH_PROG(CPP_PATH, cpp, notfound, 
185                 $PATH:/lib:/usr/bin:/bin:/usr/lib:/usr/ccs/lib)
189 dnl Tell stupid Solaris cpp that the files it will process have C++ like syntax
190 dnl RedHat 5.x is broken too, so it won't make a symlink from cpp to the
191 dnl standard locations
193 if test "$CPP_PATH" = "/usr/ccs/lib/cpp" -o "$CPP_PATH" = "notfound" ; then
194     if test "$GCC" = "yes"; then
195         CPP_PATH="gcc -E -x c"
196     else 
197         if test "$CPP_PATH" = "/usr/ccs/lib/cpp"; then
198             CPP_PATH="$CPP_PATH -B"
199         else
200             echo "cpp, the C preprocessor was not found in your system."
201             echo "Create a symbolic link from it to /lib/cpp and rerun configure"
202             exit
203         fi
204     fi
206 AC_DEFINE_UNQUOTED(CPP_PATH, "$CPP_PATH", [define to the path to cpp])
210 dnl Checks for header files.
211 dnl =======================
212 AC_HEADER_SYS_WAIT
213 AC_HEADER_TIME
214 AC_CHECK_HEADERS(fcntl.h limits.h sys/ioctl.h sys/time.h sys/types.h \
215                  libintl.h sys/select.h poll.h malloc.h ctype.h string.h \
216                  strings.h)
220 dnl Checks for typedefs, structures, and compiler characteristics.
221 dnl ==============================================================
222 AC_DECL_SYS_SIGLIST
223 AC_C_CONST
224 AC_TYPE_SIZE_T
225 AC_TYPE_PID_T
226 AC_TYPE_SIGNAL
229 dnl pkg-config
230 dnl ==========
231 dnl AC_ARG_VAR(PKGCONFIG, [pkg-config command])
232 AC_CHECK_PROG(PKGCONFIG, pkg-config, pkg-config) 
234 dnl gettext
235 dnl =======
237 dnl AM_GNU_GETTEXT
239 INTLIBS=""
241 AC_CHECK_FUNC(gettext, [HAVEGETTEXT="yes"], 
242         AC_CHECK_LIB(intl, gettext, [INTLIBS="-lintl" HAVEGETTEXT="yes"],
243                          INTLIBS="" ))
245 AC_CHECK_PROG(XGETTEXT, xgettext, xgettext)
247 if test "$XGETTEXT" != ""; then 
248     if $XGETTEXT --help 2>&1 | grep illegal >/dev/null ; then
249         echo "xgettext isn't GNU version"
250         XGETTEXT=""
251     fi
254 if test "$LINGUAS" != ""; then
255     if test "$XGETTEXT" != "" -a "$HAVEGETTEXT" != ""; then
256         AC_DEFINE(I18N, 1, [Internationalization (I18N) support (set by configure)])
257         PO=""
258         echo "xgettext and gettext() exist; will build i18n support for $LINGUAS"
259     else
260         LINGUAS=""
261         PO=""
262         echo "xgettext and libintl.a don't both exist; will not build i18n support"
263     fi
264 else
265         INTLIBS=""
266         MOFILES=""
267         WPMOFILES=""
268         UTILMOFILES=""
269         PO=""
273 dnl The Tower of Babel
274 dnl ==================
276 dnl List of supported locales
277 dnl =========================
278 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"
279 supported_wprefs_locales="bg ca cs de es et fi fr hr hu it ja ko pt ru sk zh_CN zh_TW"
280 supported_wings_locales="bg ca cs de fr sk"
281 supported_util_locales="de"
283 for lang in $LINGUAS; do
284         ok=0
285         for l in $supported_locales; do
286                 if test "$l" = "$lang"; then
287                         ok=1
288                         break
289                 fi
290         done
291         if test "$ok" = 1; then
292                 MOFILES="$MOFILES $lang.mo"
293         else
294                 echo "Locale $lang is not supported."
295         fi
296         ok=0
297         for l in $supported_wprefs_locales; do
298                 if test "$l" = "$lang"; then
299                         ok=1
300                         break
301                 fi
302         done
303         if test "$ok" = 1; then
304                 WPMOFILES="$WPMOFILES $lang.mo"
305         fi
306         ok=0
307         for l in $supported_util_locales; do
308                 if test "$l" = "$lang"; then
309                         ok=1
310                         break
311                 fi
312         done
313         if test "$ok" = 1; then
314                 UTILMOFILES="$UTILMOFILES $lang.mo"
315         fi
316         ok=0
317         for l in $supported_wings_locales; do
318                 if test "$l" = "$lang"; then
319                         ok=1
320                         break
321                 fi
322         done
323         if test "$ok" = 1; then
324                 WINGSMOFILES="$WINGSMOFILES $lang.mo"
325         fi
326 done
329 dnl Added by Oliver - Support for NLSDIR option
330 dnl ===========================================
331 AC_ARG_WITH(nlsdir, AS_HELP_STRING([--with-nlsdir=PATH], [specify where the locale stuff should go]))
333 if test "x$NLSDIR" = "x"; then
334         if test "x$with_nlsdir" != "x"; then
335                 NLSDIR=$with_nlsdir
336         else
337                 NLSDIR='$(prefix)/lib/locale'
338         fi
341 AC_ARG_WITH(menu-textdomain, AS_HELP_STRING([--with-menu-textdomain=DOMAIN], [specify gettext domain used for menu translations]),
342         [if test "x$withval" != "xno"; then
343          AC_DEFINE_UNQUOTED([MENU_TEXTDOMAIN], ["$withval"], [gettext domain used for menu translations])
344          fi])
346 AC_SUBST(INTLIBS)
347 AC_SUBST(NLSDIR)
348 AC_SUBST(MOFILES)
349 AC_SUBST(WPMOFILES)
350 AC_SUBST(UTILMOFILES)
351 AC_SUBST(WINGSMOFILES)
352 AC_SUBST(supported_locales)
354 dnl ===========================================
355 dnl             Stuff that uses X
356 dnl ===========================================
358 AC_PATH_XTRA
360 if test $no_x; then
361     AC_MSG_ERROR([The path for the X11 files not found!
362 Make sure you have X and it's headers and libraries (the -devel packages
363 in Linux) installed.])
366 X_LIBRARY_PATH=$x_libraries
367 XCFLAGS="$X_CFLAGS"
368 XLFLAGS="$X_LIBS"
369 XLIBS="-lX11 -lXmu $X_EXTRA_LIBS"
371 lib_search_path="$lib_search_path $XLFLAGS"
372 inc_search_path="$inc_search_path $XCFLAGS"
374 AC_SUBST(X_LIBRARY_PATH)
376 dnl Decide which locale function to use, setlocale() or _Xsetlocale()
377 dnl by MANOME Tomonori 
378 dnl ===========================================
379 use_locale=yes
380 AC_ARG_ENABLE(locale, AS_HELP_STRING([--disable-locale], [disable use of X locale support]),
381               use_locale=no)
383 if test "$use_locale" = yes; then
384         AC_CHECK_LIB(X11, _Xsetlocale,
385                 AC_DEFINE(X_LOCALE, 1, [define if you want support for X window's X_LOCALE (set by configure)]),,
386                 $XLFLAGS $XLIBS)
389 dnl Check whether XInternAtoms() exist
390 dnl ==================================
391 AC_CHECK_LIB(X11, XInternAtoms, 
392              AC_DEFINE(HAVE_XINTERNATOMS, 1, [define if your X server has XInternAtoms() (set by configure)]),,
393              $XLFLAGS $XLIBS)
395 dnl Check whether XConvertCase() exist
396 dnl ==================================
397 AC_CHECK_LIB(X11, XConvertCase, 
398              AC_DEFINE(HAVE_XCONVERTCASE, 1, [define if your X server has XConvertCase() (set by configure)]),,
399              $XLFLAGS $XLIBS)
401 dnl XKB keyboard language status
402 dnl ============================
403 AC_ARG_ENABLE(modelock, AS_HELP_STRING([--enable-modelock], [XKB keyboard language status support]),
404                 AC_DEFINE(XKB_MODELOCK, 1, [whether XKB language MODELOCK should be enabled]))
406 dnl Shape support
407 dnl =============
408 shape=yes
409 AC_ARG_ENABLE(shape, AS_HELP_STRING([--disable-shape], [disable shaped window extension support]),
410                 shape=$enableval, shape=yes)
411 added_xext=no
413 if test "$shape" = yes; then
414         AC_CHECK_LIB(Xext, XShapeSelectInput, [XLIBS="-lXext $XLIBS"
415                 added_xext=yes
416                 AC_DEFINE(SHAPE, 1, [define if you want support for shaped windows (set by configure)])], 
417                 shape=no, $XLFLAGS $XLIBS)
420 dnl XRandR support
421 dnl ==============
422 xrandr=no
423 AC_ARG_ENABLE(xrandr, AS_HELP_STRING([--enable-xrandr], [enable XRandR window extension support]),
424                 xrandr=$enableval, xrandr=no)
425 added_xext=no
427 if test "$xrandr" = yes; then
428         AC_CHECK_LIB(Xrandr, XRRQueryExtension, [XLIBS="-lXrandr $XLIBS"
429                 added_xext=yes
430                 AC_DEFINE(HAVE_XRANDR, 1, [define if you want support for XRandR (set by configure)])],
431                 xrandr=no, $XLFLAGS $XLIBS)
435 dnl libWINGS uses math functions, check whether usage requires linking
436 dnl against libm
438 AC_CHECK_FUNC(atan,[mathneedslibm=no;LIBM=],[mathneedslibm=dunno])
439 if test "x$mathneedslibm" = "xdunno" ; then
440         AC_CHECK_LIB(m, atan, [LIBM=-lm])
442 AC_SUBST(LIBM)
446 dnl libWINGS uses FcPatternDel from libfontconfig
448 AC_MSG_CHECKING([for fontconfig library])
449 FCLIBS=`$PKGCONFIG fontconfig --libs`
450 if test "x$FCLIBS" = "x" ; then
451         AC_MSG_RESULT([not found])
452 else
453         AC_MSG_RESULT([found])
455 AC_SUBST(FCLIBS)
458 dnl Xft2 antialiased font support
459 dnl =============================
461 xft=yes
462 XFTLIBS=""
464 if test "x$PKGCONFIG" != x -a "`$PKGCONFIG xft; echo $?`" = 0; then
465         XFTCONFIG="$PKGCONFIG xft"
466         pkgconfig_xft=yes
467 else
468         AC_CHECK_PROG(XFTCONFIG, xft-config, xft-config)
471 AC_MSG_CHECKING([for the Xft2 library])
473 if test "x$XFTCONFIG" != x; then
474         XFTLIBS=`$XFTCONFIG --libs`
475         XFTFLAGS=`$XFTCONFIG --cflags`
476         AC_MSG_RESULT([found])
477 else
478         AC_MSG_RESULT([not found])
479         echo
480         echo "ERROR!!! libXft2 is not installed or could not be found."
481         echo "         Xft2 is a requirement for building Window Maker."
482         echo "         Please install it (along with fontconfig) before continuing."
483         echo
484         exit 1
487 minXFT="2.1.0"
488 goodxft="no"
491 dnl The macro below will use $XFTFLAGS (defined above) to find Xft.h
493 WM_CHECK_XFT_VERSION($minXFT, goodxft=yes, goodxft=no)
495 if test "$goodxft" = no; then
496         echo
497         echo "ERROR!!! libXft on this system is an old version."
498         echo "         Please consider upgrading to at least version ${minXFT}."
499         echo
500         exit 1
503 AC_SUBST(XFTFLAGS)
504 AC_SUBST(XFTLIBS)
507 dnl XINERAMA support
508 dnl ================
509 xinerama=no
510 AC_ARG_ENABLE(xinerama, AS_HELP_STRING([--enable-xinerama], [enable Xinerama extension support]),
511                 xinerama=$enableval, xinerama=no)
513 if test "$xinerama" = yes; then
514         AC_CHECK_LIB(Xinerama, XineramaQueryScreens, 
515                 [XLIBS="-lXinerama $XLIBS"
516                 xfxine=yes],
517                 xfxine=no, $XLFLAGS $XLIBS)
519         AC_CHECK_LIB(Xext, XineramaGetInfo,
520                 [sunxine=yes
521                 ], sunxine=no, $XLFLAGS $XLIBS)
523         if test "$xfxine" = yes; then
524                 xine=1
525         fi
527         if test "$sunxine" = yes; then
528             xine=1
529             AC_DEFINE(SOLARIS_XINERAMA, 1, 
530                 [define if you want support for the XINERAMA extension and are in Solaris (set by configure)])
531         fi
533         if test "$xine" = 1; then
534             AC_DEFINE(XINERAMA, 1, 
535                 [define if you want support for the XINERAMA extension (set by configure)])
536         fi
541 dnl MIT-SHM support
542 dnl ===============
543 shm=yes
544 AC_ARG_ENABLE(shm, AS_HELP_STRING([--disable-shm], [disable usage of MIT-SHM extension]),
545                 shm=$enableval, shm=yes)
547 if test "$shm" = yes; then
548         AC_CHECK_LIB(Xext, XShmAttach, ok=yes, ok=no, $XLFLAGS $XLIBS)
550         if test "$ok" = yes; then
551         AC_CHECK_FUNC(shmget, ok=yes, ok=no)
552         fi
554         if test "$ok" = yes; then
555                 if test "$added_xext" = no; then
556                         XLIBS="-lXext $XLIBS"
557                 fi
558                 AC_DEFINE(XSHM, 1, [define if X's shared memory extension is available (set by configure)])
559         fi
563 dnl R6 Style Session Management Support
564 dnl ===================================
568 #AC_DEFINE(R6SM)
569 #AC_SUBST(XSMPLIBS)
573 dnl ==============================================
574 dnl         Graphic Format Libraries
575 dnl ==============================================
577 dnl XPM Support
578 dnl ===========
579 xpm=yes
580 AC_ARG_ENABLE(xpm, AS_HELP_STRING([--disable-xpm], [disable use of XPM pixmaps through libXpm]),
581         xpm=$enableval, xpm=yes)
583 if test "$xpm" = yes; then
584     WM_CHECK_LIB(Xpm, XpmCreatePixmapFromData, [$XLFLAGS $XLIBS])
586     if test "x$ac_cv_lib_Xpm_XpmCreatePixmapFromData" = xyes; then
587         WM_CHECK_HEADER(X11/xpm.h)
588         if test "x$ac_cv_header_X11_xpm_h" = xyes; then
589                 GFXLIBS="$GFXLIBS -lXpm"
590                 supported_gfx="XPM"
591                 AC_DEFINE(USE_XPM, 1, [define if XPM libraries are available (set by configure)])
592         else
593                 supported_gfx="builtin-XPM"
594         fi
595     fi
598 AC_SUBST(XLFLAGS)
599 AC_SUBST(XLIBS)
600 AC_SUBST(X_EXTRA_LIBS)
602 dnl ===============================================
603 dnl             End of stuff that uses X
604 dnl ===============================================
606 dnl PNG Support
607 dnl ===========
608 png=yes
609 AC_ARG_ENABLE(png, AS_HELP_STRING([--disable-png], [disable PNG support through libpng]),
610         png=$enableval, png=yes, png=no)
612 if test "$png" = yes ; then
613     WM_CHECK_LIB(png, png_get_valid, [-lz -lm])
615     if test "x$ac_cv_lib_png_png_get_valid" = xyes; then
616         WM_CHECK_HEADER(png.h)
617         if test "x$ac_cv_header_png_h" = xyes; then
618             GFXLIBS="$GFXLIBS -lpng -lz" 
619             supported_gfx="$supported_gfx PNG"
620             AC_DEFINE(USE_PNG, 1, [define if PNG libraries are available (set by configure)])
621         fi
622     fi
626 dnl JPEG Support
627 dnl ============
628 jpeg=yes
629 ljpeg=""
630 AC_ARG_ENABLE(jpeg, AS_HELP_STRING([--disable-jpeg], [disable JPEG support through libjpeg]),
631         jpeg=$enableval, jpeg=yes, jpeg=no)
633 if test "$jpeg" = yes; then
634     WM_CHECK_LIB(jpeg, jpeg_destroy_compress)
636     if test "x$ac_cv_lib_jpeg_jpeg_destroy_compress" = xyes; then
638         ljpeg="-ljpeg"
640         WM_CHECK_HEADER(jpeglib.h)
641         if test "x$ac_cv_header_jpeglib_h" = xyes; then
642             GFXLIBS="$GFXLIBS -ljpeg"
643             supported_gfx="$supported_gfx JPEG"
644             AC_DEFINE(USE_JPEG, 1, [define if JPEG libraries are available (set by configure)])
645         fi
646     fi
650 dnl GIF Support
651 dnl ============
652 gif=yes
653 AC_ARG_ENABLE(gif, AS_HELP_STRING([--disable-gif], [disable GIF support through libgif or libungif]),
654         gif=$enableval, gif=yes, gif=no)
656 if test "$gif" = yes; then
657     my_libname=""
658     WM_CHECK_LIB(ungif, DGifOpenFileName, [$XLFLAGS $XLIBS])
659     if test "x$ac_cv_lib_ungif_DGifOpenFileName" = xyes; then
660         my_libname=-lungif
661     fi
663 dnl libungif is the same thing as libgif for all practical purposes.
665     if test "x$my_libname" = x; then
666         WM_CHECK_LIB(gif, DGifOpenFileName, [$XLFLAGS $XLIBS])
667         if test "x$ac_cv_lib_gif_DGifOpenFileName" = xyes; then
668             my_libname=-lgif
669         fi
670     fi
672     if test "$my_libname" != x; then
673         WM_CHECK_HEADER(gif_lib.h)
674         if test "x$ac_cv_header_gif_lib_h" = xyes; then
675             GFXLIBS="$GFXLIBS $my_libname"
676             supported_gfx="$supported_gfx GIF"
677             AC_DEFINE(USE_GIF, 1, [define if GIF libraries are available (set by configure)])
678         fi
679     fi
684 dnl TIFF Support
685 dnl ============
686 AC_ARG_ENABLE(tiff, 
687 AS_HELP_STRING([--disable-tiff], [disable use of TIFF images through libtiff]),
688         tif=$enableval, tif=yes, tif=no)
691 # TIFF can optionally have JPEG and/or zlib support. Must find out
692 # when they are supported so that correct library flags are passed during
693 # detection and linkage
696 # By default use xpm icons if tiff is not found.
697 ICONEXT="xpm"
700 if test "$tif" = yes; then
701     my_libname=""
702     WM_CHECK_LIB(tiff, TIFFGetVersion, [-lm])
703     if test "x$ac_cv_lib_tiff_TIFFGetVersion" = xyes; then
704         my_libname="-ltiff"
705     fi
707 dnl Retry with zlib
709     unset ac_cv_lib_tiff_TIFFGetVersion
710     if test "x$my_libname" = x; then
711         WM_CHECK_LIB(tiff, TIFFGetVersion, [$ljpeg -lz -lm])
712         if test "x$ac_cv_lib_tiff_TIFFGetVersion" = xyes; then
713             my_libname="-ltiff -lz"
714         fi
715     fi
717     if test "x$my_libname" = x; then
718         WM_CHECK_LIB(tiff34, TIFFGetVersion, [$ljpeg -lm])
719         if test "x$ac_cv_lib_tiff34_TIFFGetVersion" = xyes; then
720             my_libname="-ltiff34"
721         fi
722     fi
725     if test "x$my_libname" != x; then
726         WM_CHECK_HEADER(tiffio.h)
727         if test "x$ac_cv_header_tiffio_h" = xyes; then
728             GFXLIBS="$my_libname $GFXLIBS"
729             ICONEXT="tiff"
730             supported_gfx="$supported_gfx TIFF"
731             AC_DEFINE(USE_TIFF, 1, [define if TIFF libraries are available (set by configure)])     
732         fi
733     fi
736 LIBRARY_SEARCH_PATH="$lib_search_path"
737 HEADER_SEARCH_PATH="$inc_search_path"
739 AC_SUBST(LIBRARY_SEARCH_PATH)
740 AC_SUBST(HEADER_SEARCH_PATH)
743 AC_SUBST(GFXLIBS)
744 AC_SUBST(ICONEXT)
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=`eval echo ${datadir}/pixmaps`
768 AC_DEFINE_UNQUOTED(PIXMAPDIR, "$pixmapdir", [define an extra path for pixmaps (set by configure)])
770 pkgdatadir=`eval echo $datadir`
771 AC_DEFINE_UNQUOTED(PKGDATADIR, "$pkgdatadir/WindowMaker", [where shared data is stored (defined by configure)])
773 _sysconfdir=`eval echo $sysconfdir`
774 AC_DEFINE_UNQUOTED(SYSCONFDIR, "$_sysconfdir", [where the configuration is stored (defined by configure)])
777 dnl Support for GNUSTEP_LOCAL_ROOT, for WPrefs.app
778 dnl ==============================================
780 AC_ARG_WITH(gnustepdir, AS_HELP_STRING([--with-gnustepdir=PATH], [specify the directory for GNUstep applications]))
782 if test "x`echo $with_gnustepdir | grep ^/`" != "x"; then
783     appspath=$with_gnustepdir
786 if test "x$appspath$GNUSTEP_LOCAL_ROOT" = "x"; then
787     wprefs_base_dir=${prefix}
788     wprefs_datadir="${datadir}/WPrefs"
789     wprefs_bindir="${bindir}"
790 else
791     gnustepdir=$appspath
793     if test "x$GNUSTEP_LOCAL_ROOT" != "x" ; then
794         gnustepdir=`echo "$GNUSTEP_LOCAL_ROOT" | sed -e "s|^${prefix}|prefix|"`
795         gnustepdir=`echo $gnustepdir | sed -e 's|^prefix|${prefix}|'`
796     fi
798     wprefs_base_dir=$gnustepdir/Applications
799     wprefs_datadir=$wprefs_base_dir/WPrefs.app
800     wprefs_bindir=$wprefs_base_dir/WPrefs.app
803 AC_SUBST(wprefs_datadir)
804 AC_SUBST(wprefs_bindir)
807 dnl Enable User Defined Menu thing
808 dnl ==============================
809 AC_ARG_ENABLE(usermenu, AS_HELP_STRING([--enable-usermenu], [user defined menus for applications]),
810 if test "$enableval" = yes; then
811         AC_DEFINE(USER_MENU, 1, [define if you want user defined menus for applications])
815 gl_LD_VERSION_SCRIPT
817 AC_OUTPUT(Makefile po/Makefile util/Makefile util/po/Makefile \
818         WINGs/Makefile WINGs/WINGs/Makefile WINGs/Documentation/Makefile \
819         WINGs/Examples/Makefile WINGs/Resources/Makefile WINGs/Tests/Makefile \
820         WINGs/Extras/Makefile WINGs/po/Makefile \
821         wrlib/Makefile wrlib/tests/Makefile \
822         src/Makefile src/wconfig.h \
823         doc/Makefile doc/sk/Makefile doc/cs/Makefile \
824         doc/ru/Makefile \
825         WindowMaker/Makefile WindowMaker/Backgrounds/Makefile \
826         WindowMaker/Defaults/Makefile WindowMaker/IconSets/Makefile \
827         WindowMaker/Icons/Makefile WindowMaker/Pixmaps/Makefile \
828         WindowMaker/Styles/Makefile WindowMaker/Themes/Makefile \
829         WPrefs.app/Makefile WPrefs.app/tiff/Makefile WPrefs.app/xpm/Makefile \
830         WPrefs.app/po/Makefile )
833 dnl Output some helpful data for compiling wraster and WINGs/WUtil apps
834 dnl ===================================================================
836 dnl echo "WFLAGS=\"$LIBPL_INC_PATH -I$prefix/include\"" > WINGs-flags
837 dnl echo "WLIBS=\"-L$exec_prefix/lib -lWINGs -lwraster $LIBPL_LIBS $GFXLIBS -lm\""\
838 dnl     | sed -e 's|\$(prefix)|'"$prefix|" >> WINGs-flags
840 dnl The #lp# and #rp# stuff below is a hack because [ and ] get lost when
841 dnl parsed by m4
843 cat <<EOF >get-wraster-flags
844 #!/bin/sh
846 WCFLAGS="$inc_search_path"
847 WLFLAGS="$lib_search_path"
848 WLIBS="-lwraster $GFXLIBS $XLIBS -lm"
850 usage="Usage: get-wraster-flags #lp#--cflags#rp# #lp#--ldflags#rp# #lp#--libs#rp#"
852 if test \$# -eq 0; then
853       echo "\${usage}" 1>&2
854       exit 1
857 while test \$# -gt 0; do
858   case \$1 in
859     --cflags)
860         echo \$WCFLAGS
861         ;;
862     --ldflags|--lflags)
863         echo \$WLFLAGS
864         ;;
865     --libs)
866         echo \$WLIBS
867         ;;
868     *)
869         echo "\${usage}" 1>&2
870         exit 1
871         ;;
872   esac
873   shift
874 done
879 cat <<EOF > wrlib/wrlib.pc
880 Name: wrlib
881 Description: Image manipulation and conversion library
882 Version: $VERSION
883 Libs: $lib_search_path -lwraster $GFXLIBS $XLIBS -lm
884 Cflags: $inc_search_path
887 cat <<EOF >get-wings-flags
888 #!/bin/sh
890 WCFLAGS="$inc_search_path"
891 WLFLAGS="$lib_search_path"
892 WLIBS="-lWINGs -lWUtil -lwraster $GFXLIBS $XFTLIBS $XLIBS -lm $INTLIBS"
894 usage="Usage: get-wings-flags #lp#--cflags#rp# #lp#--ldflags#rp# #lp#--libs#rp#"
896 if test \$# -eq 0; then
897       echo "\${usage}" 1>&2
898       exit 1
901 while test \$# -gt 0; do
902   case \$1 in
903     --cflags)
904         echo \$WCFLAGS
905         ;;
906     --ldflags|--lflags)
907         echo \$WLFLAGS
908         ;;
909     --libs)
910         echo \$WLIBS
911         ;;
912     *)
913         echo "\${usage}" 1>&2
914         exit 1
915         ;;
916   esac
917   shift
918 done
923 cat <<EOF > WINGs/WINGs.pc
924 Name: WINGs
925 Description: Small widget set with the NeXTStep(TM) look and feel
926 Version: $VERSION
927 Requires: wrlib
928 Libs: $lib_search_path -lWINGs $XFTLIBS $XLIBS -lm $INTLIBS
929 Cflags: $inc_search_path
932 cat <<EOF >get-wutil-flags
933 #!/bin/sh
935 WCFLAGS="-I`eval echo ${includedir}`"
936 WLFLAGS="-L${_libdir}"
937 WLIBS="-lWUtil $INTLIBS"
939 usage="Usage: get-wutil-flags #lp#--cflags#rp# #lp#--ldflags#rp# #lp#--libs#rp#"
941 if test \$# -eq 0; then
942       echo "\${usage}" 1>&2
943       exit 1
946 while test \$# -gt 0; do
947   case \$1 in
948     --cflags)
949         echo \$WCFLAGS
950         ;;
951     --ldflags|--lflags)
952         echo \$WLFLAGS
953         ;;
954     --libs)
955         echo \$WLIBS
956         ;;
957     *)
958         echo "\${usage}" 1>&2
959         exit 1
960         ;;
961   esac
962   shift
963 done
968 sed 's/#lp#/[/g' get-wraster-flags | sed 's/#rp#/]/g' > wrlib/get-wraster-flags
969 sed 's/#lp#/[/g' get-wings-flags | sed 's/#rp#/]/g' > WINGs/get-wings-flags
970 sed 's/#lp#/[/g' get-wutil-flags | sed 's/#rp#/]/g' > WINGs/get-wutil-flags
972 chmod 755 wrlib/get-wraster-flags WINGs/get-wings-flags WINGs/get-wutil-flags
974 rm -f get-wraster-flags get-wings-flags get-wutil-flags
978 dnl Spit out the configuration
979 dnl ==========================
981 supported_gfx="$supported_gfx builtin-PPM"
983 if test "x$MOFILES" = "x"; then
984         mof=None
985 else
986         mof=`echo $MOFILES`
989 if test "x$MOFILES" = "x"; then
990         languages=None
991 else
992         languages=`echo $MOFILES | sed 's/.mo//g'`
995 echo
996 echo "Window Maker was configured as follows:"
997 echo
998 echo "Installation path prefix            : $prefix"
999 echo "Installation path for binaries      : $_bindir"
1000 echo "Installation path for WPrefs.app    : $wprefs_base_dir" | sed -e 's|\${prefix}|'"$prefix|"
1001 echo "Supported graphic format libraries  : $supported_gfx"
1002 echo "Antialiased text support in WINGs   : $xft"
1003 echo "Xinerama extension support          : $xinerama"
1004 echo "XRandR extension support            : $xrandr"
1005 echo "Translated message files to install : $mof"
1006 dnl echo "Supported languages beside English  : $languages"
1007 if test "x$MOFILES" != "x"; then
1008         echo "Installation path for translations  : $NLSDIR" | sed -e 's|\$(prefix)|'"$prefix|"
1010 echo
1012 dnl WM_PRINT_REDCRAP_BUG_STATUS
1014 if test "x$ac_cv_header_jpeglib_h" != xyes; then
1015 echo "WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING"
1016 echo
1017 echo "JPEG support will not be included because the JPEG library is"
1018 echo "not installed correctly or was not found. Background images"
1019 echo "from themes will not display as they usually are JPEG files."
1020 echo
1021 echo "To fix, download and install the jpeg library and/or make sure you"
1022 echo "installed all jpeg related packages, SPECIALLY the development packages"
1023 echo "like jpeg-devel (if you use some prepackaged version of libjpeg)."
1024 echo
1025 echo "WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING"
1029 dnl This is for Emacs.  I'm lazy, I know... (nicolai)
1030 dnl ================================================
1031 dnl Local Variables:
1032 dnl compile-command: "autoconf"
1033 dnl End: