Make wmaker XRandR aware
[wmaker-crm.git] / configure.ac
blobba268b7044dd6a549201983923326fa4fdd076ea
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)
17 AC_CONFIG_MACRO_DIR([m4])
18 AM_INIT_AUTOMAKE(WindowMaker, 0.94.0-crm)
19 AM_CONFIG_HEADER(src/config.h)
22 dnl Checks for host/os name
23 dnl =======================
24 dnl AC_CANONICAL_HOST -- already done by AC_PROG_LIBTOOL
27 dnl Checks for programs.
28 dnl ===================
29 AC_ISC_POSIX
30 AC_PROG_CC
31 AC_PROG_LN_S
32 AC_PROG_GCC_TRADITIONAL
33 AC_PROG_LIBTOOL
35 AX_CFLAGS_GCC_OPTION(-Wall)
36 AX_CFLAGS_GCC_OPTION(-Wextra)
38 dnl Platform-specific Makefile setup
39 dnl ================================
41 case "${host}" in
42         *-*-linux*|*-*-cygwin*)
43                 WM_OSDEP="linux"
44         ;;
45         *-*-freebsd*)
46                 WM_OSDEP="bsd"
47                 CFLAGS="$CFLAGS -DFREEBSD"
48         ;;
49         *-*-netbsd*)
50                 WM_OSDEP="bsd"
51                 CFLAGS="$CFLAGS -DNETBSD"
52         ;;
53         *-*-openbsd*)
54                 WM_OSDEP="bsd"
55         CFLAGS="$CFLAGS -DOPENBSD"
56         ;;
57         *-*-dragonfly*)
58                 WM_OSDEP="bsd"
59                 CFLAGS="$CFLAGS -DDRAGONFLYBSD"
60         ;;
61         *-apple-darwin*)
62                 WM_OSDEP="darwin"
63         ;;
64         *-*-solaris*)
65                 WM_OSDEP="stub"         # solaris.c when done
66         ;;
67         *)
68                 WM_OSDEP="stub"
69                 CFLAGS="-DSTUB_HINT=\\\"${host}\\\""
70         ;;
71 esac
72 AC_SUBST(WM_OSDEP)
75 dnl the prefix
76 dnl ==========
77 dnl
78 dnl move this earlier in the script... anyone know why this is handled
79 dnl in such a bizarre way?
81 test "x$prefix" = xNONE && prefix=$ac_default_prefix
82 dnl Let make expand exec_prefix.
83 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
86 _bindir=`eval echo $bindir`
87 _bindir=`eval echo $_bindir`
89 _libdir=`eval echo $libdir`
90 _libdir=`eval echo $_libdir`
91 lib_search_path="-L$_libdir"
93 inc_search_path=`eval echo $includedir`
94 inc_search_path="-I`eval echo $inc_search_path`"
96 dnl
97 dnl Specify paths to look for libraries and headers
98 dnl ===============================================
99 AC_ARG_WITH(libs-from,
100 [  --with-libs-from        pass compiler flags to look for libraries],
101         [lib_search_path="$withval $lib_search_path"])
103 AC_ARG_WITH(incs-from,
104 [  --with-incs-from        pass compiler flags to look for header files],
105         [inc_search_path="$withval $inc_search_path"])
109 dnl Checks for library functions.
110 dnl ============================
111 dnl not used anywhere
112 dnl AC_FUNC_MEMCMP  
113 AC_FUNC_VPRINTF
114 AC_CHECK_FUNCS(gethostname select poll strerror strcasecmp strncasecmp \
115                setsid atexit mallinfo mkstemp snprintf vsnprintf asprintf \
116                vasprintf)
118 dnl ripped from samba
119 dnl 
120 AC_CACHE_CHECK([for C99 vsnprintf],_cv_HAVE_C99_VSNPRINTF,[
121 AC_TRY_RUN([
122 #include <sys/types.h>
123 #include <stdarg.h>
124 void foo(const char *format, ...) { 
125        va_list ap;
126        int len;
127        char buf[5];
129        va_start(ap, format);
130        len = vsnprintf(0, 0, format, ap);
131        va_end(ap);
132        if (len != 5) exit(1);
134        if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
136        exit(0);
138 main() { foo("hello"); }
140 _cv_HAVE_C99_VSNPRINTF=yes,_cv_HAVE_C99_VSNPRINTF=no,_cv_HAVE_C99_VSNPRINTF=cross)])
141 if test x"$_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
142     AC_DEFINE(HAVE_C99_VSNPRINTF, 1, [define if you have vsnprintf with C99 semantics (set by configure)])
145 dnl Check for inotify
146 dnl =================
147 AC_CHECK_HEADERS(sys/inotify.h, AC_DEFINE(HAVE_INOTIFY, 1, Check for inotify))
149 dnl Check CPP
150 dnl =========
151 if test "x$CPP_PATH" = x; then
152     AC_PATH_PROG(CPP_PATH, cpp, notfound, 
153                 $PATH:/lib:/usr/bin:/bin:/usr/lib:/usr/ccs/lib)
157 dnl Tell stupid Solaris cpp that the files it will process have C++ like syntax
158 dnl RedHat 5.x is broken too, so it won't make a symlink from cpp to the
159 dnl standard locations
161 if test "$CPP_PATH" = "/usr/ccs/lib/cpp" -o "$CPP_PATH" = "notfound" ; then
162     if test "$GCC" = "yes"; then
163         CPP_PATH="gcc -E -x c"
164     else 
165         if test "$CPP_PATH" = "/usr/ccs/lib/cpp"; then
166             CPP_PATH="$CPP_PATH -B"
167         else
168             echo "cpp, the C preprocessor was not found in your system."
169             echo "Create a symbolic link from it to /lib/cpp and rerun configure"
170             exit
171         fi
172     fi
174 AC_DEFINE_UNQUOTED(CPP_PATH, "$CPP_PATH", [define to the path to cpp])
178 dnl Checks for header files.
179 dnl =======================
180 AC_HEADER_SYS_WAIT
181 AC_HEADER_TIME
182 AC_CHECK_HEADERS(fcntl.h limits.h sys/ioctl.h sys/time.h sys/types.h \
183                  libintl.h sys/select.h poll.h malloc.h ctype.h string.h \
184                  strings.h)
188 dnl Checks for typedefs, structures, and compiler characteristics.
189 dnl ==============================================================
190 AC_DECL_SYS_SIGLIST
191 AC_C_CONST
192 #AC_TYPE_SIZE_T
193 #AC_TYPE_PID_T
194 AC_TYPE_SIGNAL
198 dnl Compiler/architecture specific optimizations
199 dnl ============================================
202 dnl GCC/as with MMX support
203 dnl -----------------------
205 # until we fix it, leave it disabled
206 asm_support=no
207 mmx_support=no
209 check_for_mmx_support=yes
210 AC_ARG_ENABLE(mmx,
211    [  --disable-mmx          disable compilation of MMX inline assembly ],
212    [if test x$enableval != xyes; then
213     check_for_mmx_support=no
214     fi])
216 if test "$ac_cv_prog_gcc" = yes -a "$check_for_mmx_support" = yes; then
217 case $host_cpu in
218 *i?86*)
220     # gcc-3.3 or newer complains about some of our stuff without this
221     NOSTRICTALIASING="-fno-strict-aliasing"
223     AC_CACHE_CHECK(whether gcc supports x86 inline asm,
224                    ac_cv_c_inline_asm,
225                    [AC_TRY_LINK(,[{int x; asm volatile("movl %%eax, %%ebx\n\t pushal\n\t popal"::
226                           "m" (x),"m" (x),"m" (x),"m" (x),"m" (x),"m" (x),
227                           "m" (x),"m" (x),"m" (x),"m" (x),"m" (x),"m" (x));}],
228                    ac_cv_c_inline_asm=yes,
229                    ac_cv_c_inline_asm=no)])
231     if test "x$ac_cv_c_inline_asm" = xyes; then
232        AC_DEFINE(ASM_X86, 1, [define if processor is x86 (normally detected by configure)])
233        asm_support=yes
235        AC_CACHE_CHECK(whether gcc supports MMX(tm) inline asm,
236                       ac_cv_c_inline_mmx,
237                       [AC_TRY_LINK(,[asm ("movq %mm0, %mm1");],
238                       ac_cv_c_inline_mmx=yes,
239                       ac_cv_c_inline_mmx=no)])
241        if test "x$ac_cv_c_inline_mmx" = xyes; then
242           AC_DEFINE(ASM_X86_MMX, 1, [define if processor is x86 with MMX(tm) support (normally autodetected by configure)])
243           mmx_support=yes
244        fi
245     fi
246     ;;
247 esac
249 AC_SUBST(NOSTRICTALIASING)
252 dnl pkg-config
253 dnl ----------
254 dnl AC_ARG_VAR(PKGCONFIG, [pkg-config command])
255 AC_CHECK_PROG(PKGCONFIG, pkg-config, pkg-config) 
258 dnl gettext
259 dnl -------
262 dnl AM_GNU_GETTEXT
266 INTLIBS=""
268 AC_CHECK_FUNC(gettext, [HAVEGETTEXT="yes"], 
269         AC_CHECK_LIB(intl, gettext, [INTLIBS="-lintl" HAVEGETTEXT="yes"],
270                          INTLIBS="" ))
272 AC_CHECK_PROG(XGETTEXT, xgettext, xgettext)
274 if test "$XGETTEXT" != ""; then 
275     if $XGETTEXT --help 2>&1 | grep illegal >/dev/null ; then
276         echo "xgettext isn't GNU version"
277         XGETTEXT=""
278     fi
281 if test "$LINGUAS" != ""; then
282     if test "$XGETTEXT" != "" -a "$HAVEGETTEXT" != ""; then
283         AC_DEFINE(I18N, 1, [Internationalization (I18N) support (set by configure)])
284         PO=""
285         echo "xgettext and gettext() exist; will build i18n support for $LINGUAS"
286     else
287         LINGUAS=""
288         PO=""
289         echo "xgettext and libintl.a don't both exist; will not build i18n support"
290     fi
291 else
292         INTLIBS=""
293         MOFILES=""
294         WPMOFILES=""
295         UTILMOFILES=""
296         PO=""
300 dnl The Tower of Babel
301 dnl ==================
303 dnl List of supported locales
304 dnl -------------------------
305 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"
306 supported_wprefs_locales="bg ca cs de es et fi fr hr hu it ja ko pt ru sk zh_CN zh_TW"
307 supported_wings_locales="bg ca cs de fr sk"
308 supported_util_locales="de"
310 for lang in $LINGUAS; do
311         ok=0
312         for l in $supported_locales; do
313                 if test "$l" = "$lang"; then
314                         ok=1
315                         break
316                 fi
317         done
318         if test "$ok" = 1; then
319                 MOFILES="$MOFILES $lang.mo"
320         else
321                 echo "Locale $lang is not supported."
322         fi
323         ok=0
324         for l in $supported_wprefs_locales; do
325                 if test "$l" = "$lang"; then
326                         ok=1
327                         break
328                 fi
329         done
330         if test "$ok" = 1; then
331                 WPMOFILES="$WPMOFILES $lang.mo"
332         fi
333         ok=0
334         for l in $supported_util_locales; do
335                 if test "$l" = "$lang"; then
336                         ok=1
337                         break
338                 fi
339         done
340         if test "$ok" = 1; then
341                 UTILMOFILES="$UTILMOFILES $lang.mo"
342         fi
343         ok=0
344         for l in $supported_wings_locales; do
345                 if test "$l" = "$lang"; then
346                         ok=1
347                         break
348                 fi
349         done
350         if test "$ok" = 1; then
351                 WINGSMOFILES="$WINGSMOFILES $lang.mo"
352         fi
353 done
356 dnl Added by Oliver - Support for NLSDIR option,   Hi Oliver!
357 dnl ===========================================
358 AC_ARG_WITH(nlsdir, 
359         [  --with-nlsdir=PATH      specify where the locale stuff should go ])
362 if test "x$NLSDIR" = "x"; then
363         if test "x$with_nlsdir" != "x"; then
364                 NLSDIR=$with_nlsdir
365         else
366                 NLSDIR='$(prefix)/lib/locale'
367         fi
372 AC_SUBST(INTLIBS)
373 AC_SUBST(NLSDIR)
374 AC_SUBST(MOFILES)
375 AC_SUBST(WPMOFILES)
376 AC_SUBST(UTILMOFILES)
377 AC_SUBST(WINGSMOFILES)
378 AC_SUBST(supported_locales)
382 dnl Support for various hint things
383 dnl ===============================
386 dnl Beautify compilation messages
387 dnl ---------------------------------------------
388 AC_ARG_ENABLE(verbose-compile, AS_HELP_STRING([--disable-verbose-compile],
389                                [Streamline compilation messages (default off)]),
390   [
391         QUIET='@echo "     CC" $@;'
392         QUIET_AR='@echo "     AR" $@;'
393         LIBTOOL_ARG="--silent"
394         MAKEFLAGS="-s"
395         AC_SUBST(QUIET)
396         AC_SUBST(QUIET_AR)
397         AC_SUBST(LIBTOOL_ARG)
398         AC_SUBST(MAKEFLAGS)
402 dnl ===========================================
403 dnl             Stuff that uses X
404 dnl ===========================================
406 AC_PATH_XTRA
408 if test $no_x; then
409     AC_MSG_ERROR([The path for the X11 files not found!
410 Make sure you have X and it's headers and libraries (the -devel packages
411 in Linux) installed.])
414 X_LIBRARY_PATH=$x_libraries
416 XCFLAGS="$X_CFLAGS"
418 XLFLAGS="$X_LIBS"
420 XLIBS="-lX11 -lXmu $X_EXTRA_LIBS"
423 lib_search_path="$lib_search_path $XLFLAGS"
424 inc_search_path="$inc_search_path $XCFLAGS"
427 AC_SUBST(X_LIBRARY_PATH)
431 dnl Decide which locale function to use, setlocale() or _Xsetlocale()
432 dnl by MANOME Tomonori 
433 dnl ===========================================
434 use_locale=yes
435 AC_ARG_ENABLE(locale, 
436 [  --disable-locale        disable use of X locale support],
437                 use_locale=no)
439 if test "$use_locale" = yes; then
440         AC_CHECK_LIB(X11, _Xsetlocale,
441                 AC_DEFINE(X_LOCALE, 1, [define if you want support for X window's X_LOCALE (set by configure)]),,
442                 $XLFLAGS $XLIBS)
446 dnl Check whether XInternAtoms() exist
447 dnl ==================================
448 AC_CHECK_LIB(X11, XInternAtoms, 
449              AC_DEFINE(HAVE_XINTERNATOMS, 1, [define if your X server has XInternAtoms() (set by configure)]),,
450              $XLFLAGS $XLIBS)
452 dnl Check whether XConvertCase() exist
453 dnl ==================================
454 AC_CHECK_LIB(X11, XConvertCase, 
455              AC_DEFINE(HAVE_XCONVERTCASE, 1, [define if your X server has XConvertCase() (set by configure)]),,
456              $XLFLAGS $XLIBS)
459 dnl XKB keyboard language status
460 dnl ============================
461 AC_ARG_ENABLE(modelock,
462 [  --enable-modelock       XKB keyboard language status support],
463                 AC_DEFINE(XKB_MODELOCK, 1, [whether XKB language MODELOCK should be enabled]))
467 dnl Shape support
468 dnl =============
469 shape=yes
470 AC_ARG_ENABLE(shape, 
471 [  --disable-shape         disable shaped window extension support],
472                 shape=$enableval, shape=yes)
474 added_xext=no
476 if test "$shape" = yes; then
477         AC_CHECK_LIB(Xext, XShapeSelectInput, [XLIBS="-lXext $XLIBS"
478                 added_xext=yes
479                 AC_DEFINE(SHAPE, 1, [define if you want support for shaped windows (set by configure)])], 
480                 shape=no, $XLFLAGS $XLIBS)
483 dnl XRandR support
484 dnl =============
485 xrandr=yes
486 AC_ARG_ENABLE(XRandR,
487 [  --disable-xrandr         disable XRandR window extension support],
488                 xrandr=$enableval, xrandr=yes)
490 added_xext=no
492 if test "$xrandr" = yes; then
493         AC_CHECK_LIB(Xrandr, XRRQueryExtension, [XLIBS="-lXrandr $XLIBS"
494                 added_xext=yes
495                 AC_DEFINE(HAVE_XRANDR, 1, [define if you want support for XRandR (set by configure)])],
496                 xrandr=no, $XLFLAGS $XLIBS)
500 dnl libWINGS uses math functions, check whether usage requires linking
501 dnl against libm
503 AC_CHECK_FUNC(atan,[mathneedslibm=no;LIBM=],[mathneedslibm=dunno])
504 if test "x$mathneedslibm" = "xdunno" ; then
505         AC_CHECK_LIB(m, atan, [LIBM=-lm])
507 AC_SUBST(LIBM)
511 dnl libWINGS uses FcPatternDel from libfontconfig
513 AC_MSG_CHECKING([for fontconfig library])
514 FCLIBS=`$PKGCONFIG fontconfig --libs`
515 if test "x$FCLIBS" = "x" ; then
516         AC_MSG_RESULT([not found])
517 else
518         AC_MSG_RESULT([found])
520 AC_SUBST(FCLIBS)
523 dnl Xft2 antialiased font support
524 dnl =============================
526 xft=yes
527 XFTLIBS=""
529 if test "x$PKGCONFIG" != x -a "`$PKGCONFIG xft; echo $?`" = 0; then
530         XFTCONFIG="$PKGCONFIG xft"
531         pkgconfig_xft=yes
532 else
533         AC_CHECK_PROG(XFTCONFIG, xft-config, xft-config)
536 AC_MSG_CHECKING([for the Xft2 library])
538 if test "x$XFTCONFIG" != x; then
539         XFTLIBS=`$XFTCONFIG --libs`
540         XFTFLAGS=`$XFTCONFIG --cflags`
541         AC_MSG_RESULT([found])
542 else
543         AC_MSG_RESULT([not found])
544         echo
545         echo "ERROR!!! libXft2 is not installed or could not be found."
546         echo "         Xft2 is a requirement for building Window Maker."
547         echo "         Please install it (along with fontconfig) before continuing."
548         echo
549         exit 1
552 minXFT="2.1.0"
553 goodxft="no"
556 dnl The macro below will use $XFTFLAGS (defined above) to find Xft.h
558 WM_CHECK_XFT_VERSION($minXFT, goodxft=yes, goodxft=no)
560 if test "$goodxft" = no; then
561         echo
562         echo "ERROR!!! libXft on this system is an old version."
563         echo "         Please consider upgrading to at least version ${minXFT}."
564         echo
565         exit 1
568 AC_SUBST(XFTFLAGS)
569 AC_SUBST(XFTLIBS)
572 dnl XINERAMA support
573 dnl ================
574 xinerama=no
575 AC_ARG_ENABLE(xinerama,
576 [  --enable-xinerama       enable Xinerama extension support],
577                 xinerama=$enableval, xinerama=no)
579 if test "$xinerama" = yes; then
580         AC_CHECK_LIB(Xinerama, XineramaQueryScreens, 
581                 [XLIBS="-lXinerama $XLIBS"
582                 xfxine=yes],
583                 xfxine=no, $XLFLAGS $XLIBS)
585         AC_CHECK_LIB(Xext, XineramaGetInfo,
586                 [sunxine=yes
587                 ], sunxine=no, $XLFLAGS $XLIBS)
589         if test "$xfxine" = yes; then
590                 xine=1
591         fi
593         if test "$sunxine" = yes; then
594             xine=1
595             AC_DEFINE(SOLARIS_XINERAMA, 1, 
596                 [define if you want support for the XINERAMA extension and are in Solaris (set by configure)])
597         fi
599         if test "$xine" = 1; then
600             AC_DEFINE(XINERAMA, 1, 
601                 [define if you want support for the XINERAMA extension (set by configure)])
602         fi
607 dnl MIT-SHM support
608 dnl ===============
609 shm=yes
610 AC_ARG_ENABLE(shm,
611 [  --disable-shm           disable usage of MIT-SHM extension],
612                 shm=$enableval, shm=yes)
614 if test "$shm" = yes; then
615         AC_CHECK_LIB(Xext, XShmAttach, ok=yes, ok=no, $XLFLAGS $XLIBS)
617         if test "$ok" = yes; then
618         AC_CHECK_FUNC(shmget, ok=yes, ok=no)
619         fi
621         if test "$ok" = yes; then
622                 if test "$added_xext" = no; then
623                         XLIBS="-lXext $XLIBS"
624                 fi
625                 AC_DEFINE(XSHM, 1, [define if X's shared memory extension is available (set by configure)])
626         fi
630 dnl R6 Style Session Management Support
631 dnl ===================================
635 #AC_DEFINE(R6SM)
636 #AC_SUBST(XSMPLIBS)
640 dnl ==============================================
641 dnl         Graphic Format Libraries
642 dnl ==============================================
648 dnl XPM Support
649 dnl ===========
650 xpm=yes
651 AC_ARG_ENABLE(xpm, 
652 [  --disable-xpm           disable use of XPM pixmaps through libXpm],
653         xpm=$enableval, xpm=yes)
655 if test "$xpm" = yes; then
656     WM_CHECK_LIB(Xpm, XpmCreatePixmapFromData, [$XLFLAGS $XLIBS])
658     if test "x$ac_cv_lib_Xpm_XpmCreatePixmapFromData" = xyes; then
659         WM_CHECK_HEADER(X11/xpm.h)
660         if test "x$ac_cv_header_X11_xpm_h" = xyes; then
661                 GFXLIBS="$GFXLIBS -lXpm"
662                 supported_gfx="XPM"
663                 AC_DEFINE(USE_XPM, 1, [define if XPM libraries are available (set by configure)])
664         else
665                 supported_gfx="builtin-XPM"
666         fi
667     fi
670 AC_SUBST(XLFLAGS)
671 AC_SUBST(XLIBS)
672 AC_SUBST(X_EXTRA_LIBS)
674 dnl ===============================================
675 dnl             End of stuff that uses X
676 dnl ===============================================
680 dnl PNG Support
681 dnl ===========
682 png=yes
683 AC_ARG_ENABLE(png, 
684 [  --disable-png           disable PNG support through libpng],
685         png=$enableval, png=yes, png=no)
688 if test "$png" = yes ; then
689     WM_CHECK_LIB(png, png_get_valid, [-lz -lm])
691     if test "x$ac_cv_lib_png_png_get_valid" = xyes; then
692         WM_CHECK_HEADER(png.h)
693         if test "x$ac_cv_header_png_h" = xyes; then
694             GFXLIBS="$GFXLIBS -lpng -lz" 
695             supported_gfx="$supported_gfx PNG"
696             AC_DEFINE(USE_PNG, 1, [define if PNG libraries are available (set by configure)])
697         fi
698     fi
702 dnl JPEG Support
703 dnl ============
704 jpeg=yes
705 ljpeg=""
706 AC_ARG_ENABLE(jpeg,
707 [  --disable-jpeg          disable JPEG support through libjpeg],
708         jpeg=$enableval, jpeg=yes, jpeg=no)
710 if test "$jpeg" = yes; then
711     WM_CHECK_LIB(jpeg, jpeg_destroy_compress)
713     if test "x$ac_cv_lib_jpeg_jpeg_destroy_compress" = xyes; then
715         ljpeg="-ljpeg"
717         WM_CHECK_HEADER(jpeglib.h)
718         if test "x$ac_cv_header_jpeglib_h" = xyes; then
719             GFXLIBS="$GFXLIBS -ljpeg"
720             supported_gfx="$supported_gfx JPEG"
721             AC_DEFINE(USE_JPEG, 1, [define if JPEG libraries are available (set by configure)])
722         fi
723     fi
727 dnl GIF Support
728 dnl ============
729 gif=yes
730 AC_ARG_ENABLE(gif,
731 [  --disable-gif           disable GIF support through libgif or libungif],
732         gif=$enableval, gif=yes, gif=no)
734 if test "$gif" = yes; then
735     my_libname=""
736     WM_CHECK_LIB(ungif, DGifOpenFileName, [$XLFLAGS $XLIBS])
737     if test "x$ac_cv_lib_ungif_DGifOpenFileName" = xyes; then
738         my_libname=-lungif
739     fi
741 dnl libungif is the same thing as libgif for all practical purposes.
743     if test "x$my_libname" = x; then
744         WM_CHECK_LIB(gif, DGifOpenFileName, [$XLFLAGS $XLIBS])
745         if test "x$ac_cv_lib_gif_DGifOpenFileName" = xyes; then
746             my_libname=-lgif
747         fi
748     fi
750     if test "$my_libname" != x; then
751         WM_CHECK_HEADER(gif_lib.h)
752         if test "x$ac_cv_header_gif_lib_h" = xyes; then
753             GFXLIBS="$GFXLIBS $my_libname"
754             supported_gfx="$supported_gfx GIF"
755             AC_DEFINE(USE_GIF, 1, [define if GIF libraries are available (set by configure)])
756         fi
757     fi
762 dnl TIFF Support
763 dnl ============
764 AC_ARG_ENABLE(tiff, 
765 [  --disable-tiff          disable use of TIFF images through libtiff],
766         tif=$enableval, tif=yes, tif=no)
769 # TIFF can optionally have JPEG and/or zlib support. Must find out
770 # when they are supported so that correct library flags are passed during
771 # detection and linkage
774 # By default use xpm icons if tiff is not found.
775 ICONEXT="xpm"
778 if test "$tif" = yes; then
779     my_libname=""
780     WM_CHECK_LIB(tiff, TIFFGetVersion, [-lm])
781     if test "x$ac_cv_lib_tiff_TIFFGetVersion" = xyes; then
782         my_libname="-ltiff"
783     fi
785 dnl Retry with zlib
787     unset ac_cv_lib_tiff_TIFFGetVersion
788     if test "x$my_libname" = x; then
789         WM_CHECK_LIB(tiff, TIFFGetVersion, [$ljpeg -lz -lm])
790         if test "x$ac_cv_lib_tiff_TIFFGetVersion" = xyes; then
791             my_libname="-ltiff -lz"
792         fi
793     fi
795     if test "x$my_libname" = x; then
796         WM_CHECK_LIB(tiff34, TIFFGetVersion, [$ljpeg -lm])
797         if test "x$ac_cv_lib_tiff34_TIFFGetVersion" = xyes; then
798             my_libname="-ltiff34"
799         fi
800     fi
803     if test "x$my_libname" != x; then
804         WM_CHECK_HEADER(tiffio.h)
805         if test "x$ac_cv_header_tiffio_h" = xyes; then
806             GFXLIBS="$my_libname $GFXLIBS"
807             ICONEXT="tiff"
808             supported_gfx="$supported_gfx TIFF"
809             AC_DEFINE(USE_TIFF, 1, [define if TIFF libraries are available (set by configure)])     
810         fi
811     fi
814 LIBRARY_SEARCH_PATH="$lib_search_path"
815 HEADER_SEARCH_PATH="$inc_search_path"
817 AC_SUBST(LIBRARY_SEARCH_PATH)
818 AC_SUBST(HEADER_SEARCH_PATH)
821 AC_SUBST(GFXLIBS)
822 AC_SUBST(ICONEXT)
825 dnl ==============================================
826 dnl         End of Graphic Format Libraries
827 dnl ==============================================
831 dnl stdlib.h is checked here, because of conflict in jpeglib.h
832 AC_CHECK_HEADERS(stdlib.h)
834 # AC_PREFIX_PROGRAM(wmaker)
836 dnl Support for PIXMAPDIR option
837 dnl ============================
838 AC_ARG_WITH(pixmapdir,
839 [  --with-pixmapdir=PATH   specify where pixmaps are located [DATADIR/pixmaps]])
841 if test "x$with_pixmapdir" != "x"; then
842         pixmapdir=$with_pixmapdir
843 else
844         pixmapdir=`eval echo ${datadir}/pixmaps`
847 AC_DEFINE_UNQUOTED(PIXMAPDIR, "$pixmapdir", [define an extra path for pixmaps (set by configure)])
849 pkgdatadir=`eval echo $datadir`
850 AC_DEFINE_UNQUOTED(PKGDATADIR, "$pkgdatadir/WindowMaker", [where shared data is stored (defined by configure)])
852 _sysconfdir=`eval echo $sysconfdir`
853 AC_DEFINE_UNQUOTED(SYSCONFDIR, "$_sysconfdir", [where the configuration is stored (defined by configure)])
856 dnl Support for GNUSTEP_LOCAL_ROOT, for WPrefs.app
857 dnl ==============================================
859 AC_ARG_WITH(appspath,
860 [  --with-gnustepdir=PATH  specify the directory for GNUstep applications])
862 if test "x`echo $with_gnustepdir | grep ^/`" != "x"; then
863     appspath=$with_gnustepdir
866 if test "x$appspath$GNUSTEP_LOCAL_ROOT" = "x"; then
867     wprefs_base_dir=${prefix}
868     wprefs_datadir="${datadir}/WPrefs"
869     wprefs_bindir="${bindir}"
870 else
871     gnustepdir=$appspath
873     if test "x$GNUSTEP_LOCAL_ROOT" != "x" ; then
874         gnustepdir=`echo "$GNUSTEP_LOCAL_ROOT" | sed -e "s|^${prefix}|prefix|"`
875         gnustepdir=`echo $gnustepdir | sed -e 's|^prefix|${prefix}|'`
876     fi
878     wprefs_base_dir=$gnustepdir/Applications
879     wprefs_datadir=$wprefs_base_dir/WPrefs.app
880     wprefs_bindir=$wprefs_base_dir/WPrefs.app
883 AC_SUBST(wprefs_datadir)
884 AC_SUBST(wprefs_bindir)
887 dnl Enable User Defined Menu thing
888 dnl ==================================
889 AC_ARG_ENABLE(usermenu,
890 [  --enable-usermenu       user defined menus for applications
892 if test "$enableval" = yes; then
893         AC_DEFINE(USER_MENU, 1, [define if you want user defined menus for applications])
898 AC_OUTPUT(Makefile po/Makefile util/Makefile util/po/Makefile \
899         WINGs/Makefile WINGs/WINGs/Makefile WINGs/Documentation/Makefile \
900         WINGs/Examples/Makefile WINGs/Resources/Makefile WINGs/Tests/Makefile \
901         WINGs/Extras/Makefile WINGs/po/Makefile \
902         wrlib/Makefile wrlib/tests/Makefile \
903         src/Makefile src/wconfig.h \
904         doc/Makefile doc/sk/Makefile doc/cs/Makefile \
905         doc/ru/Makefile \
906         WindowMaker/Makefile WindowMaker/Backgrounds/Makefile \
907         WindowMaker/Defaults/Makefile WindowMaker/IconSets/Makefile \
908         WindowMaker/Icons/Makefile WindowMaker/Pixmaps/Makefile \
909         WindowMaker/Styles/Makefile WindowMaker/Themes/Makefile \
910         WPrefs.app/Makefile WPrefs.app/tiff/Makefile WPrefs.app/xpm/Makefile \
911         WPrefs.app/po/Makefile )
916 dnl Output some helpful data for compiling wraster and WINGs/WUtil apps
917 dnl ===================================================================
920 dnl echo "WFLAGS=\"$LIBPL_INC_PATH -I$prefix/include\"" > WINGs-flags
921 dnl echo "WLIBS=\"-L$exec_prefix/lib -lWINGs -lwraster $LIBPL_LIBS $GFXLIBS -lm\""\
922 dnl     | sed -e 's|\$(prefix)|'"$prefix|" >> WINGs-flags
924 dnl The #lp# and #rp# stuff below is a hack because [ and ] get lost when
925 dnl parsed by m4
927 cat <<EOF >get-wraster-flags
928 #!/bin/sh
930 WCFLAGS="$inc_search_path"
931 WLFLAGS="$lib_search_path"
932 WLIBS="-lwraster $GFXLIBS $XLIBS -lm"
934 usage="Usage: get-wraster-flags #lp#--cflags#rp# #lp#--ldflags#rp# #lp#--libs#rp#"
936 if test \$# -eq 0; then
937       echo "\${usage}" 1>&2
938       exit 1
941 while test \$# -gt 0; do
942   case \$1 in
943     --cflags)
944         echo \$WCFLAGS
945         ;;
946     --ldflags|--lflags)
947         echo \$WLFLAGS
948         ;;
949     --libs)
950         echo \$WLIBS
951         ;;
952     *)
953         echo "\${usage}" 1>&2
954         exit 1
955         ;;
956   esac
957   shift
958 done
963 cat <<EOF > wrlib/wrlib.pc
964 Name: wrlib
965 Description: Image manipulation and conversion library
966 Version: $VERSION
967 Libs: $lib_search_path -lwraster $GFXLIBS $XLIBS -lm
968 Cflags: $inc_search_path
971 cat <<EOF >get-wings-flags
972 #!/bin/sh
974 WCFLAGS="$inc_search_path"
975 WLFLAGS="$lib_search_path"
976 WLIBS="-lWINGs -lWUtil -lwraster $GFXLIBS $XFTLIBS $XLIBS -lm $INTLIBS"
978 usage="Usage: get-wings-flags #lp#--cflags#rp# #lp#--ldflags#rp# #lp#--libs#rp#"
980 if test \$# -eq 0; then
981       echo "\${usage}" 1>&2
982       exit 1
985 while test \$# -gt 0; do
986   case \$1 in
987     --cflags)
988         echo \$WCFLAGS
989         ;;
990     --ldflags|--lflags)
991         echo \$WLFLAGS
992         ;;
993     --libs)
994         echo \$WLIBS
995         ;;
996     *)
997         echo "\${usage}" 1>&2
998         exit 1
999         ;;
1000   esac
1001   shift
1002 done
1007 cat <<EOF > WINGs/WINGs.pc
1008 Name: WINGs
1009 Description: Small widget set with the NeXTStep(TM) look and feel
1010 Version: $VERSION
1011 Requires: wrlib
1012 Libs: $lib_search_path -lWINGs $XFTLIBS $XLIBS -lm $INTLIBS
1013 Cflags: $inc_search_path
1016 cat <<EOF >get-wutil-flags
1017 #!/bin/sh
1019 WCFLAGS="-I`eval echo ${includedir}`"
1020 WLFLAGS="-L${_libdir}"
1021 WLIBS="-lWUtil $INTLIBS"
1023 usage="Usage: get-wutil-flags #lp#--cflags#rp# #lp#--ldflags#rp# #lp#--libs#rp#"
1025 if test \$# -eq 0; then
1026       echo "\${usage}" 1>&2
1027       exit 1
1030 while test \$# -gt 0; do
1031   case \$1 in
1032     --cflags)
1033         echo \$WCFLAGS
1034         ;;
1035     --ldflags|--lflags)
1036         echo \$WLFLAGS
1037         ;;
1038     --libs)
1039         echo \$WLIBS
1040         ;;
1041     *)
1042         echo "\${usage}" 1>&2
1043         exit 1
1044         ;;
1045   esac
1046   shift
1047 done
1052 sed 's/#lp#/[/g' get-wraster-flags | sed 's/#rp#/]/g' > wrlib/get-wraster-flags
1053 sed 's/#lp#/[/g' get-wings-flags | sed 's/#rp#/]/g' > WINGs/get-wings-flags
1054 sed 's/#lp#/[/g' get-wutil-flags | sed 's/#rp#/]/g' > WINGs/get-wutil-flags
1056 chmod 755 wrlib/get-wraster-flags WINGs/get-wings-flags WINGs/get-wutil-flags
1058 rm -f get-wraster-flags get-wings-flags get-wutil-flags
1062 dnl Spit out the configuration
1063 dnl ==========================
1065 supported_gfx="$supported_gfx builtin-PPM"
1067 if test "x$MOFILES" = "x"; then
1068         mof=None
1069 else
1070         mof=`echo $MOFILES`
1073 if test "x$MOFILES" = "x"; then
1074         languages=None
1075 else
1076         languages=`echo $MOFILES | sed 's/.mo//g'`
1079 echo
1080 echo "Window Maker was configured as follows:"
1081 echo
1082 echo "Installation path prefix            : $prefix"
1083 echo "Installation path for binaries      : $_bindir"
1084 echo "Installation path for WPrefs.app    : $wprefs_base_dir" | sed -e 's|\${prefix}|'"$prefix|"
1085 echo "Supported graphic format libraries  : $supported_gfx"
1086 echo "Use assembly routines for wrlib     : $asm_support"
1087 echo "Use inline MMX(tm) x86 assembly     : $mmx_support"
1088 echo "Antialiased text support in WINGs   : $xft"
1089 echo "Xinerama extension support          : $xinerama"
1090 echo "XRandR extension support            : $xrandr"
1091 echo "Translated message files to install : $mof"
1092 dnl echo "Supported languages beside English  : $languages"
1093 if test "x$MOFILES" != "x"; then
1094         echo "Installation path for translations  : $NLSDIR" | sed -e 's|\$(prefix)|'"$prefix|"
1096 echo
1098 dnl WM_PRINT_REDCRAP_BUG_STATUS
1100 if test "x$ac_cv_header_jpeglib_h" != xyes; then
1101 echo "WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING"
1102 echo
1103 echo "JPEG support will not be included because the JPEG library is"
1104 echo "not installed correctly or was not found. Background images"
1105 echo "from themes will not display as they usually are JPEG files."
1106 echo
1107 echo "To fix, download and install the jpeg library and/or make sure you"
1108 echo "installed all jpeg related packages, SPECIALLY the development packages"
1109 echo "like jpeg-devel (if you use some prepackaged version of libjpeg)."
1110 echo
1111 echo "WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING"
1115 dnl This is for Emacs.  I'm lazy, I know... (nicolai)
1116 dnl ================================================
1117 dnl Local Variables:
1118 dnl compile-command: "autoconf"
1119 dnl End: