Mac OS X-style window cycling.
[wmaker-crm.git] / configure.ac
blob27245de4ddc5fcebe8026ffef932ea7e43dceb92
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)
18 AM_INIT_AUTOMAKE(WindowMaker, 0.93.0-pre)
20 AC_PROG_LIBTOOL
22 AM_CONFIG_HEADER(src/config.h)
25 dnl Checks for host/os name
26 dnl =======================
27 dnl AC_CANONICAL_HOST -- already done by AC_PROG_LIBTOOL
30 dnl Checks for programs.
31 dnl ===================
32 AC_ISC_POSIX
33 AC_PROG_CC
34 dnl AC_PROG_MAKE_SET -- already done by AM_INIT_AUTOMAKE
35 #AC_PROG_RANLIB
36 dnl AC_PROG_INSTALL -- already done by AM_INIT_AUTOMAKE
37 AC_PROG_LN_S
38 AC_PROG_GCC_TRADITIONAL
41 dnl the prefix
42 dnl ==========
43 dnl
44 dnl move this earlier in the script... anyone know why this is handled
45 dnl in such a bizarre way?
47 test "x$prefix" = xNONE && prefix=$ac_default_prefix
48 dnl Let make expand exec_prefix.
49 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
52 _bindir=`eval echo $bindir`
53 _bindir=`eval echo $_bindir`
55 _libdir=`eval echo $libdir`
56 _libdir=`eval echo $_libdir`
57 lib_search_path="-L$_libdir"
59 inc_search_path=`eval echo $includedir`
60 inc_search_path="-I`eval echo $inc_search_path`"
63 dnl
64 dnl Check for RedHat bugs
65 dnl =====================
67 dnl WM_CHECK_REDCRAP_BUGS($prefix,$_bindir,$_libdir)
70 dnl
71 dnl Specify paths to look for libraries and headers
72 dnl ===============================================
73 AC_ARG_WITH(libs-from,
74 [  --with-libs-from        pass compiler flags to look for libraries],
75         [lib_search_path="$withval $lib_search_path"])
77 AC_ARG_WITH(incs-from,
78 [  --with-incs-from        pass compiler flags to look for header files],
79         [inc_search_path="$withval $inc_search_path"])
83 dnl Checks for library functions.
84 dnl ============================
85 dnl not used anywhere
86 dnl AC_FUNC_MEMCMP  
87 AC_FUNC_VPRINTF
88 AC_CHECK_FUNCS(gethostname select poll strerror strcasecmp strncasecmp \
89                setsid atexit mallinfo mkstemp snprintf vsnprintf asprintf \
90                vasprintf)
92 dnl ripped from samba
93 dnl 
94 AC_CACHE_CHECK([for C99 vsnprintf],_cv_HAVE_C99_VSNPRINTF,[
95 AC_TRY_RUN([
96 #include <sys/types.h>
97 #include <stdarg.h>
98 void foo(const char *format, ...) { 
99        va_list ap;
100        int len;
101        char buf[5];
103        va_start(ap, format);
104        len = vsnprintf(0, 0, format, ap);
105        va_end(ap);
106        if (len != 5) exit(1);
108        if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
110        exit(0);
112 main() { foo("hello"); }
114 _cv_HAVE_C99_VSNPRINTF=yes,_cv_HAVE_C99_VSNPRINTF=no,_cv_HAVE_C99_VSNPRINTF=cross)])
115 if test x"$_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
116     AC_DEFINE(HAVE_C99_VSNPRINTF, 1, [define if you have vsnprintf with C99 semantics (set by configure)])
119 dnl Loading of dynamic libraries at runtime
120 dnl =======================================
121 DLLIBS=""
123 AC_CHECK_FUNC(dlopen, [HAVEDL="yes"], 
124         AC_CHECK_LIB(dl, dlopen, [DLLIBS="-ldl" HAVEDL="yes"],
125                          DLLIBS="" ))
127 if test "x$HAVEDL" = xyes; then
128     AC_CHECK_HEADERS(dlfcn.h)
133 dnl Check CPP
134 dnl =========
135 if test "x$CPP_PATH" = x; then
136     AC_PATH_PROG(CPP_PATH, cpp, notfound, 
137                 $PATH:/lib:/usr/bin:/bin:/usr/lib:/usr/ccs/lib)
141 dnl Tell stupid Solaris cpp that the files it will process have C++ like syntax
142 dnl RedHat 5.x is broken too, so it won't make a symlink from cpp to the
143 dnl standard locations
145 if test "$CPP_PATH" = "/usr/ccs/lib/cpp" -o "$CPP_PATH" = "notfound" ; then
146     if test "$GCC" = "yes"; then
147         CPP_PATH="gcc -E -x c"
148     else 
149         if test "$CPP_PATH" = "/usr/ccs/lib/cpp"; then
150             CPP_PATH="$CPP_PATH -B"
151         else
152             echo "cpp, the C preprocessor was not found in your system."
153             echo "Create a symbolic link from it to /lib/cpp and rerun configure"
154             exit
155         fi
156     fi
158 AC_DEFINE_UNQUOTED(CPP_PATH, "$CPP_PATH", [define to the path to cpp])
162 dnl Checks for header files.
163 dnl =======================
164 AC_HEADER_SYS_WAIT
165 AC_HEADER_TIME
166 AC_CHECK_HEADERS(fcntl.h limits.h sys/ioctl.h sys/time.h sys/types.h \
167                  libintl.h sys/select.h poll.h malloc.h ctype.h string.h \
168                  strings.h)
172 dnl Checks for typedefs, structures, and compiler characteristics.
173 dnl ==============================================================
174 AC_DECL_SYS_SIGLIST
175 AC_C_CONST
176 #AC_TYPE_SIZE_T
177 #AC_TYPE_PID_T
178 AC_TYPE_SIGNAL
182 dnl Compiler/architecture specific optimizations
183 dnl ============================================
186 dnl GCC/as with MMX support
187 dnl -----------------------
189 # until we fix it, leave it disabled
190 asm_support=no
191 mmx_support=no
193 check_for_mmx_support=yes
194 AC_ARG_ENABLE(mmx,
195    [  --disable-mmx          disable compilation of MMX inline assembly ],
196    [if test x$enableval != xyes; then
197     check_for_mmx_support=no
198     fi])
200 if test "$ac_cv_prog_gcc" = yes -a "$check_for_mmx_support" = yes; then
201 case $host_cpu in
202 *i?86*)
204     # gcc-3.3 or newer complains about some of our stuff without this
205     NOSTRICTALIASING="-fno-strict-aliasing"
207     AC_CACHE_CHECK(whether gcc supports x86 inline asm,
208                    ac_cv_c_inline_asm,
209                    [AC_TRY_LINK(,[{int x; asm volatile("movl %%eax, %%ebx\n\t pushal\n\t popal"::
210                           "m" (x),"m" (x),"m" (x),"m" (x),"m" (x),"m" (x),
211                           "m" (x),"m" (x),"m" (x),"m" (x),"m" (x),"m" (x));}],
212                    ac_cv_c_inline_asm=yes,
213                    ac_cv_c_inline_asm=no)])
215     if test "x$ac_cv_c_inline_asm" = xyes; then
216        AC_DEFINE(ASM_X86, 1, [define if processor is x86 (normally detected by configure)])
217        asm_support=yes
219        AC_CACHE_CHECK(whether gcc supports MMX(tm) inline asm,
220                       ac_cv_c_inline_mmx,
221                       [AC_TRY_LINK(,[asm ("movq %mm0, %mm1");],
222                       ac_cv_c_inline_mmx=yes,
223                       ac_cv_c_inline_mmx=no)])
225        if test "x$ac_cv_c_inline_mmx" = xyes; then
226           AC_DEFINE(ASM_X86_MMX, 1, [define if processor is x86 with MMX(tm) support (normally autodetected by configure)])
227           mmx_support=yes
228        fi
229     fi
230     ;;
231 esac
233 AC_SUBST(NOSTRICTALIASING)
236 dnl pkg-config
237 dnl ----------
238 dnl AC_ARG_VAR(PKGCONFIG, [pkg-config command])
239 AC_CHECK_PROG(PKGCONFIG, pkg-config, pkg-config) 
242 dnl gettext
243 dnl -------
246 dnl AM_GNU_GETTEXT
250 INTLIBS=""
252 AC_CHECK_FUNC(gettext, [HAVEGETTEXT="yes"], 
253         AC_CHECK_LIB(intl, gettext, [INTLIBS="-lintl" HAVEGETTEXT="yes"],
254                          INTLIBS="" ))
256 AC_CHECK_PROG(XGETTEXT, xgettext, xgettext)
258 if test "$XGETTEXT" != ""; then 
259     if $XGETTEXT --help 2>&1 | grep illegal >/dev/null ; then
260         echo "xgettext isn't GNU version"
261         XGETTEXT=""
262     fi
265 if test "$LINGUAS" != ""; then
266     if test "$XGETTEXT" != "" -a "$HAVEGETTEXT" != ""; then
267         AC_DEFINE(I18N, 1, [Internationalization (I18N) support (set by configure)])
268         PO=""
269 #       if test "$LINGUAS" = ""; then
270 #           ling=` (cd src/po; /bin/ls *.po) `
271 #           for l in $ling; do
272 #               lcode=`basename $l .po`
273 #               LINGUAS="$LINGUAS $lcode"
274 #           done
275 #       fi
276         echo "xgettext and gettext() exist; will build i18n support for $LINGUAS"
277     else
278         LINGUAS=""
279         PO=""
280         echo "xgettext and libintl.a don't both exist; will not build i18n support"
281     fi
282 else
283         INTLIBS=""
284         MOFILES=""
285         WPMOFILES=""
286         PO=""
290 dnl The Tower of Babel
291 dnl ==================
293 dnl List of supported locales
294 dnl -------------------------
295 supported_locales="be bg bs ca cs da de el es et fi fr gl hr hu it ja ko ms nl no pl pt ro ru sk sv tr zh_CN zh_TW"
296 supported_wprefs_locales="bg ca cs de es et fi fr hr hu it ja ko pt ru sk zh_CN zh_TW"
297 supported_wings_locales="bg ca cs de fr sk"
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_wings_locales; do
324                 if test "$l" = "$lang"; then
325                         ok=1
326                         break
327                 fi
328         done
329         if test "$ok" = 1; then
330                 WINGSMOFILES="$WINGSMOFILES $lang.mo"
331         fi
332 done
335 dnl Kanji Characters support
336 dnl ========================
338 case $host_os in
339         freebsd*)
340                 AC_CHECK_LIB(xpg4, setlocale, [LIBS="$LIBS -lxpg4"]);;
341         *)
342         ;;
343 esac
347 dnl Added by Oliver - Support for NLSDIR option,   Hi Oliver!
348 dnl ===========================================
349 AC_ARG_WITH(nlsdir, 
350         [  --with-nlsdir=PATH      specify where the locale stuff should go ])
353 if test "x$NLSDIR" = "x"; then
354         if test "x$with_nlsdir" != "x"; then
355                 NLSDIR=$with_nlsdir
356         else
357                 NLSDIR='$(prefix)/lib/locale'
358         fi
363 AC_SUBST(DLLIBS)
364 AC_SUBST(INTLIBS)
365 AC_SUBST(NLSDIR)
366 AC_SUBST(MOFILES)
367 AC_SUBST(WPMOFILES)
368 AC_SUBST(WINGSMOFILES)
369 AC_SUBST(supported_locales)
373 dnl Support for various hint things
374 dnl ===============================
376 dnl vdesktop_on="no"
378 dnl AC_ARG_ENABLE(vdesktop,
379 dnl  [  --enable-vdesktop       enable virtual desktop],
380 dnl  [if test x$enableval = xyes; then
381 dnl    AC_DEFINE(VIRTUAL_DESKTOP, 1, [define if you want virtual desktop support])
382 dnl    vdesktop_on=yes
383 dnl  fi])
387 dnl Beautify compilation messages
388 dnl ---------------------------------------------
389 AC_ARG_ENABLE(verbose-compile, AS_HELP_STRING([--disable-verbose-compile],
390                                [Streamline compilation messages (default off)]),
391   [
392         QUIET='@echo "     CC" $@;'
393         QUIET_AR='@echo "     AR" $@;'
394         LIBTOOL_ARG="--silent"
395         MAKEFLAGS="-s"
396         AC_SUBST(QUIET)
397         AC_SUBST(QUIET_AR)
398         AC_SUBST(LIBTOOL_ARG)
399         AC_SUBST(MAKEFLAGS)
405 dnl Networking stuff
408 NETLIBS=""
410 AC_CHECK_FUNC(connect,,
411         AC_CHECK_LIB(socket, connect, NETLIBS="$NETLIBS -lsocket"))
413 AC_CHECK_FUNC(gethostbyname,,
414         AC_CHECK_LIB(nsl, gethostbyname, NETLIBS="$NETLIBS -lnsl"))
416 AC_CHECK_FUNC(inet_aton, AC_DEFINE(HAVE_INET_ATON, 1, [define if you have then inet_aton function (set by configure)]),
417      for lib in resolv socket inet bsd; do
418         AC_CHECK_LIB($lib, inet_aton, [AC_DEFINE(HAVE_INET_ATON)
419                      NETLIBS="$NETLIBS -l$lib"; break],, $NETLIBS)
420      done)
422 AC_SUBST(NETLIBS)
425 dnl ===========================================
426 dnl             Stuff that uses X
427 dnl ===========================================
429 AC_PATH_XTRA
431 if test $no_x; then
432     AC_MSG_ERROR([The path for the X11 files not found!
433 Make sure you have X and it's headers and libraries (the -devel packages
434 in Linux) installed.])
437 X_LIBRARY_PATH=$x_libraries
439 XCFLAGS="$X_CFLAGS"
441 XLFLAGS="$X_LIBS"
443 XLIBS="-lX11 -lXmu $X_EXTRA_LIBS"
446 lib_search_path="$lib_search_path $XLFLAGS"
447 inc_search_path="$inc_search_path $XCFLAGS"
450 AC_SUBST(X_LIBRARY_PATH)
454 dnl Decide which locale function to use, setlocale() or _Xsetlocale()
455 dnl by MANOME Tomonori 
456 dnl ===========================================
457 use_locale=yes
458 AC_ARG_ENABLE(locale, 
459 [  --disable-locale        disable use of X locale support],
460                 use_locale=no)
462 if test "$use_locale" = yes; then
463         AC_CHECK_LIB(X11, _Xsetlocale,
464                 AC_DEFINE(X_LOCALE, 1, [define if you want support for X window's X_LOCALE (set by configure)]),,
465                 $XLFLAGS $XLIBS)
469 dnl Check whether XInternAtoms() exist
470 dnl ==================================
471 AC_CHECK_LIB(X11, XInternAtoms, 
472              AC_DEFINE(HAVE_XINTERNATOMS, 1, [define if your X server has XInternAtoms() (set by configure)]),,
473              $XLFLAGS $XLIBS)
475 dnl Check whether XConvertCase() exist
476 dnl ==================================
477 AC_CHECK_LIB(X11, XConvertCase, 
478              AC_DEFINE(HAVE_XCONVERTCASE, 1, [define if your X server has XConvertCase() (set by configure)]),,
479              $XLFLAGS $XLIBS)
482 dnl XKB keyboard language status
483 dnl ============================
484 AC_ARG_ENABLE(modelock,
485 [  --enable-modelock       XKB keyboard language status support],
486                 AC_DEFINE(XKB_MODELOCK, 1, [whether XKB language MODELOCK should be enabled]))
490 dnl Shape support
491 dnl =============
492 shape=yes
493 AC_ARG_ENABLE(shape, 
494 [  --disable-shape         disable shaped window extension support],
495                 shape=$enableval, shape=yes)
497 added_xext=no
499 if test "$shape" = yes; then
500         AC_CHECK_LIB(Xext, XShapeSelectInput, [XLIBS="-lXext $XLIBS"
501                 added_xext=yes
502                 AC_DEFINE(SHAPE, 1, [define if you want support for shaped windows (set by configure)])], 
503                 shape=no, $XLFLAGS $XLIBS)
507 dnl Xft2 antialiased font support
508 dnl =============================
510 xft=yes
511 XFTLIBS=""
513 if test "x$PKGCONFIG" != x -a "`$PKGCONFIG xft; echo $?`" = 0; then
514         XFTCONFIG="$PKGCONFIG xft"
515         pkgconfig_xft=yes
516 else
517         AC_CHECK_PROG(XFTCONFIG, xft-config, xft-config)
520 AC_MSG_CHECKING([for the Xft2 library])
522 if test "x$XFTCONFIG" != x; then
523         XFTLIBS=`$XFTCONFIG --libs`
524         XFTFLAGS=`$XFTCONFIG --cflags`
525         AC_MSG_RESULT([found])
526 else
527         AC_MSG_RESULT([not found])
528         echo
529         echo "ERROR!!! libXft2 is not installed or could not be found."
530         echo "         Xft2 is a requirement for building Window Maker."
531         echo "         Please install it (along with fontconfig) before continuing."
532         echo
533         exit 1
536 minXFT="2.1.0"
537 goodxft="no"
540 dnl The macro below will use $XFTFLAGS (defined above) to find Xft.h
542 WM_CHECK_XFT_VERSION($minXFT, goodxft=yes, goodxft=no)
544 if test "$goodxft" = no; then
545         echo
546         echo "ERROR!!! libXft on this system is an old version."
547         echo "         Please consider upgrading to at least version ${minXFT}."
548         echo
549         exit 1
552 AC_SUBST(XFTFLAGS)
553 AC_SUBST(XFTLIBS)
556 dnl XINERAMA support
557 dnl ================
558 xinerama=no
559 AC_ARG_ENABLE(xinerama,
560 [  --enable-xinerama       enable Xinerama extension support],
561                 xinerama=$enableval, xinerama=no)
563 if test "$xinerama" = yes; then
564         AC_CHECK_LIB(Xinerama, XineramaQueryScreens, 
565                 [XLIBS="-lXinerama $XLIBS"
566                 xfxine=yes],
567                 xfxine=no, $XLFLAGS $XLIBS)
569         AC_CHECK_LIB(Xext, XineramaGetInfo,
570                 [sunxine=yes
571                 ], sunxine=no, $XLFLAGS $XLIBS)
573         if test "$xfxine" = yes; then
574                 xine=1
575         fi
577         if test "$sunxine" = yes; then
578             xine=1
579             AC_DEFINE(SOLARIS_XINERAMA, 1, 
580                 [define if you want support for the XINERAMA extension and are in Solaris (set by configure)])
581         fi
583         if test "$xine" = 1; then
584             AC_DEFINE(XINERAMA, 1, 
585                 [define if you want support for the XINERAMA extension (set by configure)])
586         fi
591 dnl MIT-SHM support
592 dnl ===============
593 shm=yes
594 AC_ARG_ENABLE(shm,
595 [  --disable-shm           disable usage of MIT-SHM extension],
596                 shm=$enableval, shm=yes)
598 if test "$shm" = yes; then
599         AC_CHECK_LIB(Xext, XShmAttach, ok=yes, ok=no, $XLFLAGS $XLIBS)
601         if test "$ok" = yes; then
602         AC_CHECK_FUNC(shmget, ok=yes, ok=no)
603         fi
605         if test "$ok" = yes; then
606                 if test "$added_xext" = no; then
607                         XLIBS="-lXext $XLIBS"
608                 fi
609                 AC_DEFINE(XSHM, 1, [define if X's shared memory extension is available (set by configure)])
610         fi
614 dnl R6 Style Session Management Support
615 dnl ===================================
619 #AC_DEFINE(R6SM)
620 #AC_SUBST(XSMPLIBS)
624 dnl ==============================================
625 dnl         Graphic Format Libraries
626 dnl ==============================================
632 dnl XPM Support
633 dnl ===========
634 xpm=yes
635 AC_ARG_ENABLE(xpm, 
636 [  --disable-xpm           disable use of XPM pixmaps through libXpm],
637         xpm=$enableval, xpm=yes)
639 if test "$xpm" = yes; then
640     WM_CHECK_LIB(Xpm, XpmCreatePixmapFromData, [$XLFLAGS $XLIBS])
642     if test "x$ac_cv_lib_Xpm_XpmCreatePixmapFromData" = xyes; then
643         WM_CHECK_HEADER(X11/xpm.h)
644         if test "x$ac_cv_header_X11_xpm_h" = xyes; then
645                 GFXLIBS="$GFXLIBS -lXpm"
646                 supported_gfx="XPM"
647                 AC_DEFINE(USE_XPM, 1, [define if XPM libraries are available (set by configure)])
648         else
649                 supported_gfx="builtin-XPM"
650         fi
651     fi
654 # for wmlib
655 AC_SUBST(XCFLAGS)
656 # for test
657 AC_SUBST(XLFLAGS)
658 AC_SUBST(XLIBS)
660 AC_SUBST(X_EXTRA_LIBS)
662 dnl ===============================================
663 dnl             End of stuff that uses X
664 dnl ===============================================
668 dnl PNG Support
669 dnl ===========
670 png=yes
671 AC_ARG_ENABLE(png, 
672 [  --disable-png           disable PNG support through libpng],
673         png=$enableval, png=yes, png=no)
676 if test "$png" = yes ; then
677     WM_CHECK_LIB(png, png_get_valid, [-lz -lm])
679     if test "x$ac_cv_lib_png_png_get_valid" = xyes; then
680         WM_CHECK_HEADER(png.h)
681         if test "x$ac_cv_header_png_h" = xyes; then
682             GFXLIBS="$GFXLIBS -lpng -lz" 
683             supported_gfx="$supported_gfx PNG"
684             AC_DEFINE(USE_PNG, 1, [define if PNG libraries are available (set by configure)])
685         fi
686     fi
690 dnl JPEG Support
691 dnl ============
692 jpeg=yes
693 ljpeg=""
694 AC_ARG_ENABLE(jpeg,
695 [  --disable-jpeg          disable JPEG support through libjpeg],
696         jpeg=$enableval, jpeg=yes, jpeg=no)
698 if test "$jpeg" = yes; then
699     WM_CHECK_LIB(jpeg, jpeg_destroy_compress)
701     if test "x$ac_cv_lib_jpeg_jpeg_destroy_compress" = xyes; then
703         ljpeg="-ljpeg"
705         WM_CHECK_HEADER(jpeglib.h)
706         if test "x$ac_cv_header_jpeglib_h" = xyes; then
707             GFXLIBS="$GFXLIBS -ljpeg"
708             supported_gfx="$supported_gfx JPEG"
709             AC_DEFINE(USE_JPEG, 1, [define if JPEG libraries are available (set by configure)])
710         fi
711     fi
715 dnl GIF Support
716 dnl ============
717 gif=yes
718 AC_ARG_ENABLE(gif,
719 [  --disable-gif           disable GIF support through libgif or libungif],
720         gif=$enableval, gif=yes, gif=no)
722 if test "$gif" = yes; then
723     my_libname=""
724     WM_CHECK_LIB(ungif, DGifOpenFileName, [$XLFLAGS $XLIBS])
725     if test "x$ac_cv_lib_ungif_DGifOpenFileName" = xyes; then
726         my_libname=-lungif
727     fi
729 dnl libungif is the same thing as libgif for all practical purposes.
731     if test "x$my_libname" = x; then
732         WM_CHECK_LIB(gif, DGifOpenFileName, [$XLFLAGS $XLIBS])
733         if test "x$ac_cv_lib_gif_DGifOpenFileName" = xyes; then
734             my_libname=-lgif
735         fi
736     fi
738     if test "$my_libname" != x; then
739         WM_CHECK_HEADER(gif_lib.h)
740         if test "x$ac_cv_header_gif_lib_h" = xyes; then
741             GFXLIBS="$GFXLIBS $my_libname"
742             supported_gfx="$supported_gfx GIF"
743             AC_DEFINE(USE_GIF, 1, [define if GIF libraries are available (set by configure)])
744         fi
745     fi
750 dnl TIFF Support
751 dnl ============
752 AC_ARG_ENABLE(tiff, 
753 [  --disable-tiff          disable use of TIFF images through libtiff],
754         tif=$enableval, tif=yes, tif=no)
757 # TIFF can optionally have JPEG and/or zlib support. Must find out
758 # when they are supported so that correct library flags are passed during
759 # detection and linkage
762 # By default use xpm icons if tiff is not found.
763 ICONEXT="xpm"
766 if test "$tif" = yes; then
767     my_libname=""
768     WM_CHECK_LIB(tiff, TIFFGetVersion, [-lm])
769     if test "x$ac_cv_lib_tiff_TIFFGetVersion" = xyes; then
770         my_libname="-ltiff"
771     fi
773 dnl Retry with zlib
775     unset ac_cv_lib_tiff_TIFFGetVersion
776     if test "x$my_libname" = x; then
777         WM_CHECK_LIB(tiff, TIFFGetVersion, [$ljpeg -lz -lm])
778         if test "x$ac_cv_lib_tiff_TIFFGetVersion" = xyes; then
779             my_libname="-ltiff -lz"
780         fi
781     fi
783     if test "x$my_libname" = x; then
784         WM_CHECK_LIB(tiff34, TIFFGetVersion, [$ljpeg -lm])
785         if test "x$ac_cv_lib_tiff34_TIFFGetVersion" = xyes; then
786             my_libname="-ltiff34"
787         fi
788     fi
791     if test "x$my_libname" != x; then
792         WM_CHECK_HEADER(tiffio.h)
793         if test "x$ac_cv_header_tiffio_h" = xyes; then
794             GFXLIBS="$my_libname $GFXLIBS"
795             ICONEXT="tiff"
796             supported_gfx="$supported_gfx TIFF"
797             AC_DEFINE(USE_TIFF, 1, [define if TIFF libraries are available (set by configure)])     
798         fi
799     fi
802 LIBRARY_SEARCH_PATH="$lib_search_path"
803 HEADER_SEARCH_PATH="$inc_search_path"
805 AC_SUBST(LIBRARY_SEARCH_PATH)
806 AC_SUBST(HEADER_SEARCH_PATH)
809 AC_SUBST(GFXLIBS)
810 AC_SUBST(ICONEXT)
813 dnl ==============================================
814 dnl         End of Graphic Format Libraries
815 dnl ==============================================
819 dnl stdlib.h is checked here, because of conflict in jpeglib.h
820 AC_CHECK_HEADERS(stdlib.h)
822 # AC_PREFIX_PROGRAM(wmaker)
824 dnl Support for PIXMAPDIR option
825 dnl ============================
826 AC_ARG_WITH(pixmapdir,
827 [  --with-pixmapdir=PATH   specify where pixmaps are located [DATADIR/pixmaps]])
829 if test "x$with_pixmapdir" != "x"; then
830         pixmapdir=$with_pixmapdir
831 else
832         pixmapdir=`eval echo ${datadir}/pixmaps`
835 AC_DEFINE_UNQUOTED(PIXMAPDIR, "$pixmapdir", [define an extra path for pixmaps (set by configure)])
837 pkgdatadir=`eval echo $datadir`
838 AC_DEFINE_UNQUOTED(PKGDATADIR, "$pkgdatadir/WindowMaker", [where shared data is stored (defined by configure)])
840 _sysconfdir=`eval echo $sysconfdir`
841 AC_DEFINE_UNQUOTED(SYSCONFDIR, "$_sysconfdir", [where the configuration is stored (defined by configure)])
844 dnl Support for GNUSTEP_LOCAL_ROOT, for WPrefs.app
845 dnl ==============================================
847 AC_ARG_WITH(appspath,
848 [  --with-gnustepdir=PATH  specify the directory for GNUstep applications])
850 if test "x`echo $with_gnustepdir | grep ^/`" != "x"; then
851     appspath=$with_gnustepdir
854 if test "x$appspath$GNUSTEP_LOCAL_ROOT" = "x"; then
855     wprefs_base_dir=${prefix}
856     wprefs_datadir="${datadir}/WPrefs"
857     wprefs_bindir="${bindir}"
858 else
859     gnustepdir=$appspath
861     if test "x$GNUSTEP_LOCAL_ROOT" != "x" ; then
862         gnustepdir=`echo "$GNUSTEP_LOCAL_ROOT" | sed -e "s|^${prefix}|prefix|"`
863         gnustepdir=`echo $gnustepdir | sed -e 's|^prefix|${prefix}|'`
864     fi
866     wprefs_base_dir=$gnustepdir/Applications
867     wprefs_datadir=$wprefs_base_dir/WPrefs.app
868     wprefs_bindir=$wprefs_base_dir/WPrefs.app
871 AC_SUBST(wprefs_datadir)
872 AC_SUBST(wprefs_bindir)
875 dnl Enable User Defined Menu thing
876 dnl ==================================
877 AC_ARG_ENABLE(usermenu,
878 [  --enable-usermenu       user defined menus for applications
880 if test "$enableval" = yes; then
881         AC_DEFINE(USER_MENU, 1, [define if you want user defined menus for applications])
887 dnl Nicolai:  Program tests for Documentation Section
888 dnl =================================================
889 dnl DOCTYPES=""
890 dnl AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, ,$PATH)
891 dnl if test "x$MAKEINFO" != "x" ; then
892 dnl       DOCTYPES="$DOCTYPES info_doc"
893 dnl fi
894 dnl AC_CHECK_PROG(TEX, tex, tex, ,$PATH)
895 dnl if test "x$TEX" != "x" ; then
896 dnl       DOCTYPES="$DOCTYPES dvi_doc"
897 dnl fi
898 dnl AC_CHECK_PROG(DVIPS, dvips, dvips, ,$PATH)
899 dnl if test "x$DVIPS" != "x" ; then
900 dnl       DOCTYPES="$DOCTYPES ps_doc"
901 dnl fi
902 dnl AC_CHECK_PROG(PERL, perl, perl, ,$PATH)
903 dnl if test "x$PERL" != "x" ; then
904 dnl       DOCTYPES="$DOCTYPES html_doc"
905 dnl fi
906 dnl AC_PATH_PROG(PERL_PATH, perl, perl, ,$PATH)
907 dnl AC_CHECK_PROG(TEXI2HTML, texi2html, texi2html, ,$PATH)
908   
909 dnl AC_SUBST(DOCTYPES)
911 AC_OUTPUT(Makefile po/Makefile util/Makefile test/Makefile \
912         WINGs/Makefile WINGs/WINGs/Makefile WINGs/Documentation/Makefile \
913         WINGs/Examples/Makefile WINGs/Resources/Makefile WINGs/Tests/Makefile \
914         WINGs/Extras/Makefile WINGs/po/Makefile \
915         wmlib/Makefile wrlib/Makefile wrlib/tests/Makefile \
916         src/Makefile src/wconfig.h \
917         doc/Makefile doc/sk/Makefile \
918         WindowMaker/Makefile WindowMaker/Backgrounds/Makefile \
919         WindowMaker/Defaults/Makefile WindowMaker/IconSets/Makefile \
920         WindowMaker/Icons/Makefile WindowMaker/Pixmaps/Makefile \
921         WindowMaker/Styles/Makefile WindowMaker/Themes/Makefile \
922         WPrefs.app/Makefile WPrefs.app/tiff/Makefile WPrefs.app/xpm/Makefile \
923         WPrefs.app/po/Makefile \
924         contrib/Makefile contrib/WindowMaker.spec )
925 #       plugins/Makefile plugins/libwmfun/Makefile)
930 dnl Output some helpful data for compiling wraster and WINGs/WUtil apps
931 dnl ===================================================================
934 dnl echo "WFLAGS=\"$LIBPL_INC_PATH -I$prefix/include\"" > WINGs-flags
935 dnl echo "WLIBS=\"-L$exec_prefix/lib -lWINGs -lwraster $LIBPL_LIBS $GFXLIBS -lm\""\
936 dnl     | sed -e 's|\$(prefix)|'"$prefix|" >> WINGs-flags
938 dnl The #lp# and #rp# stuff below is a hack because [ and ] get lost when
939 dnl parsed by m4
941 cat <<EOF >get-wraster-flags
942 #!/bin/sh
944 WCFLAGS="$inc_search_path"
945 WLFLAGS="$lib_search_path"
946 WLIBS="-lwraster $GFXLIBS $XLIBS -lm"
948 usage="Usage: get-wraster-flags #lp#--cflags#rp# #lp#--ldflags#rp# #lp#--libs#rp#"
950 if test \$# -eq 0; then
951       echo "\${usage}" 1>&2
952       exit 1
955 while test \$# -gt 0; do
956   case \$1 in
957     --cflags)
958         echo \$WCFLAGS
959         ;;
960     --ldflags|--lflags)
961         echo \$WLFLAGS
962         ;;
963     --libs)
964         echo \$WLIBS
965         ;;
966     *)
967         echo "\${usage}" 1>&2
968         exit 1
969         ;;
970   esac
971   shift
972 done
977 cat <<EOF > wrlib/wrlib.pc
978 Name: wrlib
979 Description: Image manipulation and conversion library
980 Version: $VERSION
981 Libs: $lib_search_path -lwraster $GFXLIBS $XLIBS -lm
982 Cflags: $inc_search_path
985 cat <<EOF >get-wings-flags
986 #!/bin/sh
988 WCFLAGS="$inc_search_path"
989 WLFLAGS="$lib_search_path"
990 WLIBS="-lWINGs -lwraster $GFXLIBS $XFTLIBS $XLIBS -lm $NETLIBS $INTLIBS"
992 usage="Usage: get-wings-flags #lp#--cflags#rp# #lp#--ldflags#rp# #lp#--libs#rp#"
994 if test \$# -eq 0; then
995       echo "\${usage}" 1>&2
996       exit 1
999 while test \$# -gt 0; do
1000   case \$1 in
1001     --cflags)
1002         echo \$WCFLAGS
1003         ;;
1004     --ldflags|--lflags)
1005         echo \$WLFLAGS
1006         ;;
1007     --libs)
1008         echo \$WLIBS
1009         ;;
1010     *)
1011         echo "\${usage}" 1>&2
1012         exit 1
1013         ;;
1014   esac
1015   shift
1016 done
1021 cat <<EOF > WINGs/WINGs.pc
1022 Name: WINGs
1023 Description: Small widget set with the NeXTStep(TM) look and feel
1024 Version: $VERSION
1025 Requires: wrlib
1026 Libs: $lib_search_path -lWINGs $XFTLIBS $XLIBS -lm $NETLIBS $INTLIBS
1027 Cflags: $inc_search_path
1030 cat <<EOF >get-wutil-flags
1031 #!/bin/sh
1033 WCFLAGS="-I`eval echo ${includedir}`"
1034 WLFLAGS="-L${_libdir}"
1035 WLIBS="-lWUtil $NETLIBS $INTLIBS"
1037 usage="Usage: get-wutil-flags #lp#--cflags#rp# #lp#--ldflags#rp# #lp#--libs#rp#"
1039 if test \$# -eq 0; then
1040       echo "\${usage}" 1>&2
1041       exit 1
1044 while test \$# -gt 0; do
1045   case \$1 in
1046     --cflags)
1047         echo \$WCFLAGS
1048         ;;
1049     --ldflags|--lflags)
1050         echo \$WLFLAGS
1051         ;;
1052     --libs)
1053         echo \$WLIBS
1054         ;;
1055     *)
1056         echo "\${usage}" 1>&2
1057         exit 1
1058         ;;
1059   esac
1060   shift
1061 done
1066 cat <<EOF > wmlib/wmlib.pc
1067 Name: wmlib
1068 Description: FIXME: What do I write here?
1069 Version: $VERSION
1070 Requires: wrlib
1071 Libs: $lib_search_path -lWUtil $NETLIBS $INTLIBS
1072 Cflags: $inc_search_path
1075 sed 's/#lp#/[/g' get-wraster-flags | sed 's/#rp#/]/g' > wrlib/get-wraster-flags
1076 sed 's/#lp#/[/g' get-wings-flags | sed 's/#rp#/]/g' > WINGs/get-wings-flags
1077 sed 's/#lp#/[/g' get-wutil-flags | sed 's/#rp#/]/g' > WINGs/get-wutil-flags
1079 chmod 755 wrlib/get-wraster-flags WINGs/get-wings-flags WINGs/get-wutil-flags
1081 rm -f get-wraster-flags get-wings-flags get-wutil-flags
1085 dnl Spit out the configuration
1086 dnl ==========================
1088 supported_gfx="$supported_gfx builtin-PPM"
1090 if test "x$MOFILES" = "x"; then
1091         mof=None
1092 else
1093         mof=`echo $MOFILES`
1096 if test "x$MOFILES" = "x"; then
1097         languages=None
1098 else
1099         languages=`echo $MOFILES | sed 's/.mo//g'`
1102 echo
1103 echo "Window Maker was configured as follows:"
1104 echo
1105 echo "Installation path prefix            : $prefix"
1106 echo "Installation path for binaries      : $_bindir"
1107 echo "Installation path for WPrefs.app    : $wprefs_base_dir" | sed -e 's|\${prefix}|'"$prefix|"
1108 echo "Supported graphic format libraries  : $supported_gfx"
1109 echo "Use assembly routines for wrlib     : $asm_support"
1110 echo "Use inline MMX(tm) x86 assembly     : $mmx_support"
1111 echo "Antialiased text support in WINGs   : $xft"
1112 echo "Xinerama extension support          : $xinerama"
1113 dnl echo "Virtual desktop support             : $vdesktop_on"
1114 echo "Translated message files to install : $mof"
1115 dnl echo "Supported languages beside English  : $languages"
1116 if test "x$MOFILES" != "x"; then
1117         echo "Installation path for translations  : $NLSDIR" | sed -e 's|\$(prefix)|'"$prefix|"
1119 echo
1121 dnl WM_PRINT_REDCRAP_BUG_STATUS
1123 if test "x$ac_cv_header_jpeglib_h" != xyes; then
1124 echo "WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING"
1125 echo
1126 echo "JPEG support will not be included because the JPEG library is"
1127 echo "not installed correctly or was not found. Background images"
1128 echo "from themes will not display as they usually are JPEG files."
1129 echo
1130 echo "To fix, download and install the jpeg library and/or make sure you"
1131 echo "installed all jpeg related packages, SPECIALLY the development packages"
1132 echo "like jpeg-devel (if you use some prepackaged version of libjpeg)."
1133 echo
1134 echo "WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING"
1138 dnl This is for Emacs.  I'm lazy, I know... (nicolai)
1139 dnl ================================================
1140 dnl Local Variables:
1141 dnl compile-command: "autoconf"
1142 dnl End: