configure: Use AS_HELP_STRING macro to print messages
[wmaker-crm.git] / configure.ac
blob2088fc8f9607383eb5de86bb0ed8708ba4ef1605
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(src/WindowMaker.h)
16 AC_CONFIG_MACRO_DIR([m4])
17 AM_INIT_AUTOMAKE(WindowMaker, 0.94.0-crm)
18 AM_CONFIG_HEADER(src/config.h)
20 dnl Checks for host/os name
21 dnl =======================
22 dnl AC_CANONICAL_HOST -- already done by AC_PROG_LIBTOOL
24 dnl Checks for programs.
25 dnl ===================
26 AC_ISC_POSIX
27 AC_PROG_CC
28 AC_PROG_LN_S
29 AC_PROG_GCC_TRADITIONAL
30 AC_PROG_LIBTOOL
32 AX_CFLAGS_GCC_OPTION(-Wall)
33 AX_CFLAGS_GCC_OPTION(-Wextra)
35 dnl Platform-specific Makefile setup
36 dnl ================================
38 case "${host}" in
39         *-*-linux*|*-*-cygwin*)
40                 WM_OSDEP="linux"
41         ;;
42         *-*-freebsd*)
43                 WM_OSDEP="bsd"
44                 CFLAGS="$CFLAGS -DFREEBSD"
45         ;;
46         *-*-netbsd*)
47                 WM_OSDEP="bsd"
48                 CFLAGS="$CFLAGS -DNETBSD"
49         ;;
50         *-*-openbsd*)
51                 WM_OSDEP="bsd"
52         CFLAGS="$CFLAGS -DOPENBSD"
53         ;;
54         *-*-dragonfly*)
55                 WM_OSDEP="bsd"
56                 CFLAGS="$CFLAGS -DDRAGONFLYBSD"
57         ;;
58         *-apple-darwin*)
59                 WM_OSDEP="darwin"
60         ;;
61         *-*-solaris*)
62                 WM_OSDEP="stub"         # solaris.c when done
63         ;;
64         *)
65                 WM_OSDEP="stub"
66                 CFLAGS="-DSTUB_HINT=\\\"${host}\\\""
67         ;;
68 esac
69 AC_SUBST(WM_OSDEP)
72 dnl the prefix
73 dnl ==========
74 dnl
75 dnl move this earlier in the script... anyone know why this is handled
76 dnl in such a bizarre way?
78 test "x$prefix" = xNONE && prefix=$ac_default_prefix
79 dnl Let make expand exec_prefix.
80 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
83 _bindir=`eval echo $bindir`
84 _bindir=`eval echo $_bindir`
86 _libdir=`eval echo $libdir`
87 _libdir=`eval echo $_libdir`
88 lib_search_path="-L$_libdir"
90 inc_search_path=`eval echo $includedir`
91 inc_search_path="-I`eval echo $inc_search_path`"
93 dnl ===============================================
94 dnl Specify paths to look for libraries and headers
95 dnl ===============================================
96 AC_ARG_WITH(libs-from, AS_HELP_STRING([--with-libs-from], [pass compiler flags to look for libraries]),
97         [lib_search_path="$withval $lib_search_path"])
99 AC_ARG_WITH(incs-from, AS_HELP_STRING([--with-incs-from], [pass compiler flags to look for header files]),
100         [inc_search_path="$withval $inc_search_path"])
102 dnl ============================
103 dnl Checks for library functions
104 dnl ============================
105 dnl not used anywhere
106 dnl AC_FUNC_MEMCMP  
107 AC_FUNC_VPRINTF
108 AC_CHECK_FUNCS(gethostname select poll strerror strcasecmp strncasecmp \
109                setsid atexit mallinfo mkstemp snprintf vsnprintf asprintf \
110                vasprintf)
112 dnl ripped from samba
113 dnl 
114 AC_CACHE_CHECK([for C99 vsnprintf],_cv_HAVE_C99_VSNPRINTF,[
115 AC_TRY_RUN([
116 #include <sys/types.h>
117 #include <stdarg.h>
118 void foo(const char *format, ...) { 
119        va_list ap;
120        int len;
121        char buf[5];
123        va_start(ap, format);
124        len = vsnprintf(0, 0, format, ap);
125        va_end(ap);
126        if (len != 5) exit(1);
128        if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
130        exit(0);
132 main() { foo("hello"); }
134 _cv_HAVE_C99_VSNPRINTF=yes,_cv_HAVE_C99_VSNPRINTF=no,_cv_HAVE_C99_VSNPRINTF=cross)])
135 if test x"$_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
136     AC_DEFINE(HAVE_C99_VSNPRINTF, 1, [define if you have vsnprintf with C99 semantics (set by configure)])
139 dnl Check for inotify
140 dnl =================
141 AC_CHECK_HEADERS(sys/inotify.h, AC_DEFINE(HAVE_INOTIFY, 1, Check for inotify))
143 dnl Check CPP
144 dnl =========
145 if test "x$CPP_PATH" = x; then
146     AC_PATH_PROG(CPP_PATH, cpp, notfound, 
147                 $PATH:/lib:/usr/bin:/bin:/usr/lib:/usr/ccs/lib)
151 dnl Tell stupid Solaris cpp that the files it will process have C++ like syntax
152 dnl RedHat 5.x is broken too, so it won't make a symlink from cpp to the
153 dnl standard locations
155 if test "$CPP_PATH" = "/usr/ccs/lib/cpp" -o "$CPP_PATH" = "notfound" ; then
156     if test "$GCC" = "yes"; then
157         CPP_PATH="gcc -E -x c"
158     else 
159         if test "$CPP_PATH" = "/usr/ccs/lib/cpp"; then
160             CPP_PATH="$CPP_PATH -B"
161         else
162             echo "cpp, the C preprocessor was not found in your system."
163             echo "Create a symbolic link from it to /lib/cpp and rerun configure"
164             exit
165         fi
166     fi
168 AC_DEFINE_UNQUOTED(CPP_PATH, "$CPP_PATH", [define to the path to cpp])
172 dnl Checks for header files.
173 dnl =======================
174 AC_HEADER_SYS_WAIT
175 AC_HEADER_TIME
176 AC_CHECK_HEADERS(fcntl.h limits.h sys/ioctl.h sys/time.h sys/types.h \
177                  libintl.h sys/select.h poll.h malloc.h ctype.h string.h \
178                  strings.h)
182 dnl Checks for typedefs, structures, and compiler characteristics.
183 dnl ==============================================================
184 AC_DECL_SYS_SIGLIST
185 AC_C_CONST
186 #AC_TYPE_SIZE_T
187 #AC_TYPE_PID_T
188 AC_TYPE_SIGNAL
192 dnl Compiler/architecture specific optimizations
193 dnl ============================================
196 dnl GCC/as with MMX support
197 dnl -----------------------
199 # until we fix it, leave it disabled
200 asm_support=no
201 mmx_support=no
203 check_for_mmx_support=yes
204 AC_ARG_ENABLE(mmx, AS_HELP_STRING([--disable-mmx], [disable compilation of MMX inline assembly]),
205    [if test x$enableval != xyes; then
206     check_for_mmx_support=no
207     fi])
209 if test "$ac_cv_prog_gcc" = yes -a "$check_for_mmx_support" = yes; then
210 case $host_cpu in
211 *i?86*)
213     # gcc-3.3 or newer complains about some of our stuff without this
214     NOSTRICTALIASING="-fno-strict-aliasing"
216     AC_CACHE_CHECK(whether gcc supports x86 inline asm,
217                    ac_cv_c_inline_asm,
218                    [AC_TRY_LINK(,[{int x; asm volatile("movl %%eax, %%ebx\n\t pushal\n\t popal"::
219                           "m" (x),"m" (x),"m" (x),"m" (x),"m" (x),"m" (x),
220                           "m" (x),"m" (x),"m" (x),"m" (x),"m" (x),"m" (x));}],
221                    ac_cv_c_inline_asm=yes,
222                    ac_cv_c_inline_asm=no)])
224     if test "x$ac_cv_c_inline_asm" = xyes; then
225        AC_DEFINE(ASM_X86, 1, [define if processor is x86 (normally detected by configure)])
226        asm_support=yes
228        AC_CACHE_CHECK(whether gcc supports MMX(tm) inline asm,
229                       ac_cv_c_inline_mmx,
230                       [AC_TRY_LINK(,[asm ("movq %mm0, %mm1");],
231                       ac_cv_c_inline_mmx=yes,
232                       ac_cv_c_inline_mmx=no)])
234        if test "x$ac_cv_c_inline_mmx" = xyes; then
235           AC_DEFINE(ASM_X86_MMX, 1, [define if processor is x86 with MMX(tm) support (normally autodetected by configure)])
236           mmx_support=yes
237        fi
238     fi
239     ;;
240 esac
242 AC_SUBST(NOSTRICTALIASING)
245 dnl pkg-config
246 dnl ==========
247 dnl AC_ARG_VAR(PKGCONFIG, [pkg-config command])
248 AC_CHECK_PROG(PKGCONFIG, pkg-config, pkg-config) 
250 dnl gettext
251 dnl =======
253 dnl AM_GNU_GETTEXT
255 INTLIBS=""
257 AC_CHECK_FUNC(gettext, [HAVEGETTEXT="yes"], 
258         AC_CHECK_LIB(intl, gettext, [INTLIBS="-lintl" HAVEGETTEXT="yes"],
259                          INTLIBS="" ))
261 AC_CHECK_PROG(XGETTEXT, xgettext, xgettext)
263 if test "$XGETTEXT" != ""; then 
264     if $XGETTEXT --help 2>&1 | grep illegal >/dev/null ; then
265         echo "xgettext isn't GNU version"
266         XGETTEXT=""
267     fi
270 if test "$LINGUAS" != ""; then
271     if test "$XGETTEXT" != "" -a "$HAVEGETTEXT" != ""; then
272         AC_DEFINE(I18N, 1, [Internationalization (I18N) support (set by configure)])
273         PO=""
274         echo "xgettext and gettext() exist; will build i18n support for $LINGUAS"
275     else
276         LINGUAS=""
277         PO=""
278         echo "xgettext and libintl.a don't both exist; will not build i18n support"
279     fi
280 else
281         INTLIBS=""
282         MOFILES=""
283         WPMOFILES=""
284         UTILMOFILES=""
285         PO=""
289 dnl The Tower of Babel
290 dnl ==================
292 dnl List of supported locales
293 dnl =========================
294 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"
295 supported_wprefs_locales="bg ca cs de es et fi fr hr hu it ja ko pt ru sk zh_CN zh_TW"
296 supported_wings_locales="bg ca cs de fr sk"
297 supported_util_locales="de"
299 for lang in $LINGUAS; do
300         ok=0
301         for l in $supported_locales; do
302                 if test "$l" = "$lang"; then
303                         ok=1
304                         break
305                 fi
306         done
307         if test "$ok" = 1; then
308                 MOFILES="$MOFILES $lang.mo"
309         else
310                 echo "Locale $lang is not supported."
311         fi
312         ok=0
313         for l in $supported_wprefs_locales; do
314                 if test "$l" = "$lang"; then
315                         ok=1
316                         break
317                 fi
318         done
319         if test "$ok" = 1; then
320                 WPMOFILES="$WPMOFILES $lang.mo"
321         fi
322         ok=0
323         for l in $supported_util_locales; do
324                 if test "$l" = "$lang"; then
325                         ok=1
326                         break
327                 fi
328         done
329         if test "$ok" = 1; then
330                 UTILMOFILES="$UTILMOFILES $lang.mo"
331         fi
332         ok=0
333         for l in $supported_wings_locales; do
334                 if test "$l" = "$lang"; then
335                         ok=1
336                         break
337                 fi
338         done
339         if test "$ok" = 1; then
340                 WINGSMOFILES="$WINGSMOFILES $lang.mo"
341         fi
342 done
345 dnl Added by Oliver - Support for NLSDIR option
346 dnl ===========================================
347 AC_ARG_WITH(nlsdir, AS_HELP_STRING([--with-nlsdir=PATH], [specify where the locale stuff should go]))
349 if test "x$NLSDIR" = "x"; then
350         if test "x$with_nlsdir" != "x"; then
351                 NLSDIR=$with_nlsdir
352         else
353                 NLSDIR='$(prefix)/lib/locale'
354         fi
357 AC_SUBST(INTLIBS)
358 AC_SUBST(NLSDIR)
359 AC_SUBST(MOFILES)
360 AC_SUBST(WPMOFILES)
361 AC_SUBST(UTILMOFILES)
362 AC_SUBST(WINGSMOFILES)
363 AC_SUBST(supported_locales)
365 dnl Support for various hint things
366 dnl ===============================
368 dnl Beautify compilation messages
369 dnl =============================
370 AC_ARG_ENABLE(verbose-compile, AS_HELP_STRING([--disable-verbose-compile],
371                                [Streamline compilation messages]),
372   [
373         QUIET='@echo "     CC" $@;'
374         QUIET_AR='@echo "     AR" $@;'
375         LIBTOOL_ARG="--silent"
376         MAKEFLAGS="-s"
377         AC_SUBST(QUIET)
378         AC_SUBST(QUIET_AR)
379         AC_SUBST(LIBTOOL_ARG)
380         AC_SUBST(MAKEFLAGS)
384 dnl ===========================================
385 dnl             Stuff that uses X
386 dnl ===========================================
388 AC_PATH_XTRA
390 if test $no_x; then
391     AC_MSG_ERROR([The path for the X11 files not found!
392 Make sure you have X and it's headers and libraries (the -devel packages
393 in Linux) installed.])
396 X_LIBRARY_PATH=$x_libraries
397 XCFLAGS="$X_CFLAGS"
398 XLFLAGS="$X_LIBS"
399 XLIBS="-lX11 -lXmu $X_EXTRA_LIBS"
401 lib_search_path="$lib_search_path $XLFLAGS"
402 inc_search_path="$inc_search_path $XCFLAGS"
404 AC_SUBST(X_LIBRARY_PATH)
406 dnl Decide which locale function to use, setlocale() or _Xsetlocale()
407 dnl by MANOME Tomonori 
408 dnl ===========================================
409 use_locale=yes
410 AC_ARG_ENABLE(locale, AS_HELP_STRING([--disable-locale], [disable use of X locale support]),
411               use_locale=no)
413 if test "$use_locale" = yes; then
414         AC_CHECK_LIB(X11, _Xsetlocale,
415                 AC_DEFINE(X_LOCALE, 1, [define if you want support for X window's X_LOCALE (set by configure)]),,
416                 $XLFLAGS $XLIBS)
419 dnl Check whether XInternAtoms() exist
420 dnl ==================================
421 AC_CHECK_LIB(X11, XInternAtoms, 
422              AC_DEFINE(HAVE_XINTERNATOMS, 1, [define if your X server has XInternAtoms() (set by configure)]),,
423              $XLFLAGS $XLIBS)
425 dnl Check whether XConvertCase() exist
426 dnl ==================================
427 AC_CHECK_LIB(X11, XConvertCase, 
428              AC_DEFINE(HAVE_XCONVERTCASE, 1, [define if your X server has XConvertCase() (set by configure)]),,
429              $XLFLAGS $XLIBS)
431 dnl XKB keyboard language status
432 dnl ============================
433 AC_ARG_ENABLE(modelock, AS_HELP_STRING([--enable-modelock], [XKB keyboard language status support]),
434                 AC_DEFINE(XKB_MODELOCK, 1, [whether XKB language MODELOCK should be enabled]))
436 dnl Shape support
437 dnl =============
438 shape=yes
439 AC_ARG_ENABLE(shape, AS_HELP_STRING([--disable-shape], [disable shaped window extension support]),
440                 shape=$enableval, shape=yes)
441 added_xext=no
443 if test "$shape" = yes; then
444         AC_CHECK_LIB(Xext, XShapeSelectInput, [XLIBS="-lXext $XLIBS"
445                 added_xext=yes
446                 AC_DEFINE(SHAPE, 1, [define if you want support for shaped windows (set by configure)])], 
447                 shape=no, $XLFLAGS $XLIBS)
450 dnl XRandR support
451 dnl =============
452 xrandr=yes
453 AC_ARG_ENABLE(XRandR, AS_HELP_STRING([--disable-xrandr], [disable XRandR window extension support]),
454                 xrandr=$enableval, xrandr=yes)
455 added_xext=no
457 if test "$xrandr" = yes; then
458         AC_CHECK_LIB(Xrandr, XRRQueryExtension, [XLIBS="-lXrandr $XLIBS"
459                 added_xext=yes
460                 AC_DEFINE(HAVE_XRANDR, 1, [define if you want support for XRandR (set by configure)])],
461                 xrandr=no, $XLFLAGS $XLIBS)
465 dnl libWINGS uses math functions, check whether usage requires linking
466 dnl against libm
468 AC_CHECK_FUNC(atan,[mathneedslibm=no;LIBM=],[mathneedslibm=dunno])
469 if test "x$mathneedslibm" = "xdunno" ; then
470         AC_CHECK_LIB(m, atan, [LIBM=-lm])
472 AC_SUBST(LIBM)
476 dnl libWINGS uses FcPatternDel from libfontconfig
478 AC_MSG_CHECKING([for fontconfig library])
479 FCLIBS=`$PKGCONFIG fontconfig --libs`
480 if test "x$FCLIBS" = "x" ; then
481         AC_MSG_RESULT([not found])
482 else
483         AC_MSG_RESULT([found])
485 AC_SUBST(FCLIBS)
488 dnl Xft2 antialiased font support
489 dnl =============================
491 xft=yes
492 XFTLIBS=""
494 if test "x$PKGCONFIG" != x -a "`$PKGCONFIG xft; echo $?`" = 0; then
495         XFTCONFIG="$PKGCONFIG xft"
496         pkgconfig_xft=yes
497 else
498         AC_CHECK_PROG(XFTCONFIG, xft-config, xft-config)
501 AC_MSG_CHECKING([for the Xft2 library])
503 if test "x$XFTCONFIG" != x; then
504         XFTLIBS=`$XFTCONFIG --libs`
505         XFTFLAGS=`$XFTCONFIG --cflags`
506         AC_MSG_RESULT([found])
507 else
508         AC_MSG_RESULT([not found])
509         echo
510         echo "ERROR!!! libXft2 is not installed or could not be found."
511         echo "         Xft2 is a requirement for building Window Maker."
512         echo "         Please install it (along with fontconfig) before continuing."
513         echo
514         exit 1
517 minXFT="2.1.0"
518 goodxft="no"
521 dnl The macro below will use $XFTFLAGS (defined above) to find Xft.h
523 WM_CHECK_XFT_VERSION($minXFT, goodxft=yes, goodxft=no)
525 if test "$goodxft" = no; then
526         echo
527         echo "ERROR!!! libXft on this system is an old version."
528         echo "         Please consider upgrading to at least version ${minXFT}."
529         echo
530         exit 1
533 AC_SUBST(XFTFLAGS)
534 AC_SUBST(XFTLIBS)
537 dnl XINERAMA support
538 dnl ================
539 xinerama=no
540 AC_ARG_ENABLE(xinerama, AS_HELP_STRING([--enable-xinerama], [enable Xinerama extension support]),
541                 xinerama=$enableval, xinerama=no)
543 if test "$xinerama" = yes; then
544         AC_CHECK_LIB(Xinerama, XineramaQueryScreens, 
545                 [XLIBS="-lXinerama $XLIBS"
546                 xfxine=yes],
547                 xfxine=no, $XLFLAGS $XLIBS)
549         AC_CHECK_LIB(Xext, XineramaGetInfo,
550                 [sunxine=yes
551                 ], sunxine=no, $XLFLAGS $XLIBS)
553         if test "$xfxine" = yes; then
554                 xine=1
555         fi
557         if test "$sunxine" = yes; then
558             xine=1
559             AC_DEFINE(SOLARIS_XINERAMA, 1, 
560                 [define if you want support for the XINERAMA extension and are in Solaris (set by configure)])
561         fi
563         if test "$xine" = 1; then
564             AC_DEFINE(XINERAMA, 1, 
565                 [define if you want support for the XINERAMA extension (set by configure)])
566         fi
571 dnl MIT-SHM support
572 dnl ===============
573 shm=yes
574 AC_ARG_ENABLE(shm, AS_HELP_STRING([--disable-shm], [disable usage of MIT-SHM extension]),
575                 shm=$enableval, shm=yes)
577 if test "$shm" = yes; then
578         AC_CHECK_LIB(Xext, XShmAttach, ok=yes, ok=no, $XLFLAGS $XLIBS)
580         if test "$ok" = yes; then
581         AC_CHECK_FUNC(shmget, ok=yes, ok=no)
582         fi
584         if test "$ok" = yes; then
585                 if test "$added_xext" = no; then
586                         XLIBS="-lXext $XLIBS"
587                 fi
588                 AC_DEFINE(XSHM, 1, [define if X's shared memory extension is available (set by configure)])
589         fi
593 dnl R6 Style Session Management Support
594 dnl ===================================
598 #AC_DEFINE(R6SM)
599 #AC_SUBST(XSMPLIBS)
603 dnl ==============================================
604 dnl         Graphic Format Libraries
605 dnl ==============================================
607 dnl XPM Support
608 dnl ===========
609 xpm=yes
610 AC_ARG_ENABLE(xpm, AS_HELP_STRING([--disable-xpm], [disable use of XPM pixmaps through libXpm]),
611         xpm=$enableval, xpm=yes)
613 if test "$xpm" = yes; then
614     WM_CHECK_LIB(Xpm, XpmCreatePixmapFromData, [$XLFLAGS $XLIBS])
616     if test "x$ac_cv_lib_Xpm_XpmCreatePixmapFromData" = xyes; then
617         WM_CHECK_HEADER(X11/xpm.h)
618         if test "x$ac_cv_header_X11_xpm_h" = xyes; then
619                 GFXLIBS="$GFXLIBS -lXpm"
620                 supported_gfx="XPM"
621                 AC_DEFINE(USE_XPM, 1, [define if XPM libraries are available (set by configure)])
622         else
623                 supported_gfx="builtin-XPM"
624         fi
625     fi
628 AC_SUBST(XLFLAGS)
629 AC_SUBST(XLIBS)
630 AC_SUBST(X_EXTRA_LIBS)
632 dnl ===============================================
633 dnl             End of stuff that uses X
634 dnl ===============================================
636 dnl PNG Support
637 dnl ===========
638 png=yes
639 AC_ARG_ENABLE(png, AS_HELP_STRING([--disable-png], [disable PNG support through libpng]),
640         png=$enableval, png=yes, png=no)
642 if test "$png" = yes ; then
643     WM_CHECK_LIB(png, png_get_valid, [-lz -lm])
645     if test "x$ac_cv_lib_png_png_get_valid" = xyes; then
646         WM_CHECK_HEADER(png.h)
647         if test "x$ac_cv_header_png_h" = xyes; then
648             GFXLIBS="$GFXLIBS -lpng -lz" 
649             supported_gfx="$supported_gfx PNG"
650             AC_DEFINE(USE_PNG, 1, [define if PNG libraries are available (set by configure)])
651         fi
652     fi
656 dnl JPEG Support
657 dnl ============
658 jpeg=yes
659 ljpeg=""
660 AC_ARG_ENABLE(jpeg, AS_HELP_STRING([--disable-jpeg], [disable JPEG support through libjpeg]),
661         jpeg=$enableval, jpeg=yes, jpeg=no)
663 if test "$jpeg" = yes; then
664     WM_CHECK_LIB(jpeg, jpeg_destroy_compress)
666     if test "x$ac_cv_lib_jpeg_jpeg_destroy_compress" = xyes; then
668         ljpeg="-ljpeg"
670         WM_CHECK_HEADER(jpeglib.h)
671         if test "x$ac_cv_header_jpeglib_h" = xyes; then
672             GFXLIBS="$GFXLIBS -ljpeg"
673             supported_gfx="$supported_gfx JPEG"
674             AC_DEFINE(USE_JPEG, 1, [define if JPEG libraries are available (set by configure)])
675         fi
676     fi
680 dnl GIF Support
681 dnl ============
682 gif=yes
683 AC_ARG_ENABLE(gif, AS_HELP_STRING([--disable-gif], [disable GIF support through libgif or libungif]),
684         gif=$enableval, gif=yes, gif=no)
686 if test "$gif" = yes; then
687     my_libname=""
688     WM_CHECK_LIB(ungif, DGifOpenFileName, [$XLFLAGS $XLIBS])
689     if test "x$ac_cv_lib_ungif_DGifOpenFileName" = xyes; then
690         my_libname=-lungif
691     fi
693 dnl libungif is the same thing as libgif for all practical purposes.
695     if test "x$my_libname" = x; then
696         WM_CHECK_LIB(gif, DGifOpenFileName, [$XLFLAGS $XLIBS])
697         if test "x$ac_cv_lib_gif_DGifOpenFileName" = xyes; then
698             my_libname=-lgif
699         fi
700     fi
702     if test "$my_libname" != x; then
703         WM_CHECK_HEADER(gif_lib.h)
704         if test "x$ac_cv_header_gif_lib_h" = xyes; then
705             GFXLIBS="$GFXLIBS $my_libname"
706             supported_gfx="$supported_gfx GIF"
707             AC_DEFINE(USE_GIF, 1, [define if GIF libraries are available (set by configure)])
708         fi
709     fi
714 dnl TIFF Support
715 dnl ============
716 AC_ARG_ENABLE(tiff, 
717 AS_HELP_STRING([--disable-tiff], [disable use of TIFF images through libtiff]),
718         tif=$enableval, tif=yes, tif=no)
721 # TIFF can optionally have JPEG and/or zlib support. Must find out
722 # when they are supported so that correct library flags are passed during
723 # detection and linkage
726 # By default use xpm icons if tiff is not found.
727 ICONEXT="xpm"
730 if test "$tif" = yes; then
731     my_libname=""
732     WM_CHECK_LIB(tiff, TIFFGetVersion, [-lm])
733     if test "x$ac_cv_lib_tiff_TIFFGetVersion" = xyes; then
734         my_libname="-ltiff"
735     fi
737 dnl Retry with zlib
739     unset ac_cv_lib_tiff_TIFFGetVersion
740     if test "x$my_libname" = x; then
741         WM_CHECK_LIB(tiff, TIFFGetVersion, [$ljpeg -lz -lm])
742         if test "x$ac_cv_lib_tiff_TIFFGetVersion" = xyes; then
743             my_libname="-ltiff -lz"
744         fi
745     fi
747     if test "x$my_libname" = x; then
748         WM_CHECK_LIB(tiff34, TIFFGetVersion, [$ljpeg -lm])
749         if test "x$ac_cv_lib_tiff34_TIFFGetVersion" = xyes; then
750             my_libname="-ltiff34"
751         fi
752     fi
755     if test "x$my_libname" != x; then
756         WM_CHECK_HEADER(tiffio.h)
757         if test "x$ac_cv_header_tiffio_h" = xyes; then
758             GFXLIBS="$my_libname $GFXLIBS"
759             ICONEXT="tiff"
760             supported_gfx="$supported_gfx TIFF"
761             AC_DEFINE(USE_TIFF, 1, [define if TIFF libraries are available (set by configure)])     
762         fi
763     fi
766 LIBRARY_SEARCH_PATH="$lib_search_path"
767 HEADER_SEARCH_PATH="$inc_search_path"
769 AC_SUBST(LIBRARY_SEARCH_PATH)
770 AC_SUBST(HEADER_SEARCH_PATH)
773 AC_SUBST(GFXLIBS)
774 AC_SUBST(ICONEXT)
777 dnl ==============================================
778 dnl         End of Graphic Format Libraries
779 dnl ==============================================
783 dnl stdlib.h is checked here, because of conflict in jpeglib.h
784 AC_CHECK_HEADERS(stdlib.h)
786 # AC_PREFIX_PROGRAM(wmaker)
788 dnl Support for PIXMAPDIR option
789 dnl ============================
790 AC_ARG_WITH(pixmapdir, AS_HELP_STRING([--with-pixmapdir=PATH], [specify where pixmaps are located [DATADIR/pixmaps]]))
792 if test "x$with_pixmapdir" != "x"; then
793         pixmapdir=$with_pixmapdir
794 else
795         pixmapdir=`eval echo ${datadir}/pixmaps`
798 AC_DEFINE_UNQUOTED(PIXMAPDIR, "$pixmapdir", [define an extra path for pixmaps (set by configure)])
800 pkgdatadir=`eval echo $datadir`
801 AC_DEFINE_UNQUOTED(PKGDATADIR, "$pkgdatadir/WindowMaker", [where shared data is stored (defined by configure)])
803 _sysconfdir=`eval echo $sysconfdir`
804 AC_DEFINE_UNQUOTED(SYSCONFDIR, "$_sysconfdir", [where the configuration is stored (defined by configure)])
807 dnl Support for GNUSTEP_LOCAL_ROOT, for WPrefs.app
808 dnl ==============================================
810 AC_ARG_WITH(appspath, AS_HELP_STRING([--with-gnustepdir=PATH], [specify the directory for GNUstep applications]))
812 if test "x`echo $with_gnustepdir | grep ^/`" != "x"; then
813     appspath=$with_gnustepdir
816 if test "x$appspath$GNUSTEP_LOCAL_ROOT" = "x"; then
817     wprefs_base_dir=${prefix}
818     wprefs_datadir="${datadir}/WPrefs"
819     wprefs_bindir="${bindir}"
820 else
821     gnustepdir=$appspath
823     if test "x$GNUSTEP_LOCAL_ROOT" != "x" ; then
824         gnustepdir=`echo "$GNUSTEP_LOCAL_ROOT" | sed -e "s|^${prefix}|prefix|"`
825         gnustepdir=`echo $gnustepdir | sed -e 's|^prefix|${prefix}|'`
826     fi
828     wprefs_base_dir=$gnustepdir/Applications
829     wprefs_datadir=$wprefs_base_dir/WPrefs.app
830     wprefs_bindir=$wprefs_base_dir/WPrefs.app
833 AC_SUBST(wprefs_datadir)
834 AC_SUBST(wprefs_bindir)
837 dnl Enable User Defined Menu thing
838 dnl ==================================
839 AC_ARG_ENABLE(usermenu, AS_HELP_STRING([--enable-usermenu], [user defined menus for applications]),
840 if test "$enableval" = yes; then
841         AC_DEFINE(USER_MENU, 1, [define if you want user defined menus for applications])
845 AC_OUTPUT(Makefile po/Makefile util/Makefile util/po/Makefile \
846         WINGs/Makefile WINGs/WINGs/Makefile WINGs/Documentation/Makefile \
847         WINGs/Examples/Makefile WINGs/Resources/Makefile WINGs/Tests/Makefile \
848         WINGs/Extras/Makefile WINGs/po/Makefile \
849         wrlib/Makefile wrlib/tests/Makefile \
850         src/Makefile src/wconfig.h \
851         doc/Makefile doc/sk/Makefile doc/cs/Makefile \
852         doc/ru/Makefile \
853         WindowMaker/Makefile WindowMaker/Backgrounds/Makefile \
854         WindowMaker/Defaults/Makefile WindowMaker/IconSets/Makefile \
855         WindowMaker/Icons/Makefile WindowMaker/Pixmaps/Makefile \
856         WindowMaker/Styles/Makefile WindowMaker/Themes/Makefile \
857         WPrefs.app/Makefile WPrefs.app/tiff/Makefile WPrefs.app/xpm/Makefile \
858         WPrefs.app/po/Makefile )
861 dnl Output some helpful data for compiling wraster and WINGs/WUtil apps
862 dnl ===================================================================
864 dnl echo "WFLAGS=\"$LIBPL_INC_PATH -I$prefix/include\"" > WINGs-flags
865 dnl echo "WLIBS=\"-L$exec_prefix/lib -lWINGs -lwraster $LIBPL_LIBS $GFXLIBS -lm\""\
866 dnl     | sed -e 's|\$(prefix)|'"$prefix|" >> WINGs-flags
868 dnl The #lp# and #rp# stuff below is a hack because [ and ] get lost when
869 dnl parsed by m4
871 cat <<EOF >get-wraster-flags
872 #!/bin/sh
874 WCFLAGS="$inc_search_path"
875 WLFLAGS="$lib_search_path"
876 WLIBS="-lwraster $GFXLIBS $XLIBS -lm"
878 usage="Usage: get-wraster-flags #lp#--cflags#rp# #lp#--ldflags#rp# #lp#--libs#rp#"
880 if test \$# -eq 0; then
881       echo "\${usage}" 1>&2
882       exit 1
885 while test \$# -gt 0; do
886   case \$1 in
887     --cflags)
888         echo \$WCFLAGS
889         ;;
890     --ldflags|--lflags)
891         echo \$WLFLAGS
892         ;;
893     --libs)
894         echo \$WLIBS
895         ;;
896     *)
897         echo "\${usage}" 1>&2
898         exit 1
899         ;;
900   esac
901   shift
902 done
907 cat <<EOF > wrlib/wrlib.pc
908 Name: wrlib
909 Description: Image manipulation and conversion library
910 Version: $VERSION
911 Libs: $lib_search_path -lwraster $GFXLIBS $XLIBS -lm
912 Cflags: $inc_search_path
915 cat <<EOF >get-wings-flags
916 #!/bin/sh
918 WCFLAGS="$inc_search_path"
919 WLFLAGS="$lib_search_path"
920 WLIBS="-lWINGs -lWUtil -lwraster $GFXLIBS $XFTLIBS $XLIBS -lm $INTLIBS"
922 usage="Usage: get-wings-flags #lp#--cflags#rp# #lp#--ldflags#rp# #lp#--libs#rp#"
924 if test \$# -eq 0; then
925       echo "\${usage}" 1>&2
926       exit 1
929 while test \$# -gt 0; do
930   case \$1 in
931     --cflags)
932         echo \$WCFLAGS
933         ;;
934     --ldflags|--lflags)
935         echo \$WLFLAGS
936         ;;
937     --libs)
938         echo \$WLIBS
939         ;;
940     *)
941         echo "\${usage}" 1>&2
942         exit 1
943         ;;
944   esac
945   shift
946 done
951 cat <<EOF > WINGs/WINGs.pc
952 Name: WINGs
953 Description: Small widget set with the NeXTStep(TM) look and feel
954 Version: $VERSION
955 Requires: wrlib
956 Libs: $lib_search_path -lWINGs $XFTLIBS $XLIBS -lm $INTLIBS
957 Cflags: $inc_search_path
960 cat <<EOF >get-wutil-flags
961 #!/bin/sh
963 WCFLAGS="-I`eval echo ${includedir}`"
964 WLFLAGS="-L${_libdir}"
965 WLIBS="-lWUtil $INTLIBS"
967 usage="Usage: get-wutil-flags #lp#--cflags#rp# #lp#--ldflags#rp# #lp#--libs#rp#"
969 if test \$# -eq 0; then
970       echo "\${usage}" 1>&2
971       exit 1
974 while test \$# -gt 0; do
975   case \$1 in
976     --cflags)
977         echo \$WCFLAGS
978         ;;
979     --ldflags|--lflags)
980         echo \$WLFLAGS
981         ;;
982     --libs)
983         echo \$WLIBS
984         ;;
985     *)
986         echo "\${usage}" 1>&2
987         exit 1
988         ;;
989   esac
990   shift
991 done
996 sed 's/#lp#/[/g' get-wraster-flags | sed 's/#rp#/]/g' > wrlib/get-wraster-flags
997 sed 's/#lp#/[/g' get-wings-flags | sed 's/#rp#/]/g' > WINGs/get-wings-flags
998 sed 's/#lp#/[/g' get-wutil-flags | sed 's/#rp#/]/g' > WINGs/get-wutil-flags
1000 chmod 755 wrlib/get-wraster-flags WINGs/get-wings-flags WINGs/get-wutil-flags
1002 rm -f get-wraster-flags get-wings-flags get-wutil-flags
1006 dnl Spit out the configuration
1007 dnl ==========================
1009 supported_gfx="$supported_gfx builtin-PPM"
1011 if test "x$MOFILES" = "x"; then
1012         mof=None
1013 else
1014         mof=`echo $MOFILES`
1017 if test "x$MOFILES" = "x"; then
1018         languages=None
1019 else
1020         languages=`echo $MOFILES | sed 's/.mo//g'`
1023 echo
1024 echo "Window Maker was configured as follows:"
1025 echo
1026 echo "Installation path prefix            : $prefix"
1027 echo "Installation path for binaries      : $_bindir"
1028 echo "Installation path for WPrefs.app    : $wprefs_base_dir" | sed -e 's|\${prefix}|'"$prefix|"
1029 echo "Supported graphic format libraries  : $supported_gfx"
1030 echo "Use assembly routines for wrlib     : $asm_support"
1031 echo "Use inline MMX(tm) x86 assembly     : $mmx_support"
1032 echo "Antialiased text support in WINGs   : $xft"
1033 echo "Xinerama extension support          : $xinerama"
1034 echo "XRandR extension support            : $xrandr"
1035 echo "Translated message files to install : $mof"
1036 dnl echo "Supported languages beside English  : $languages"
1037 if test "x$MOFILES" != "x"; then
1038         echo "Installation path for translations  : $NLSDIR" | sed -e 's|\$(prefix)|'"$prefix|"
1040 echo
1042 dnl WM_PRINT_REDCRAP_BUG_STATUS
1044 if test "x$ac_cv_header_jpeglib_h" != xyes; then
1045 echo "WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING"
1046 echo
1047 echo "JPEG support will not be included because the JPEG library is"
1048 echo "not installed correctly or was not found. Background images"
1049 echo "from themes will not display as they usually are JPEG files."
1050 echo
1051 echo "To fix, download and install the jpeg library and/or make sure you"
1052 echo "installed all jpeg related packages, SPECIALLY the development packages"
1053 echo "like jpeg-devel (if you use some prepackaged version of libjpeg)."
1054 echo
1055 echo "WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING"
1059 dnl This is for Emacs.  I'm lazy, I know... (nicolai)
1060 dnl ================================================
1061 dnl Local Variables:
1062 dnl compile-command: "autoconf"
1063 dnl End: