- Check whether libXft is at least version 2.1.2 else refuse to compile.
[wmaker-crm.git] / configure.ac
blobadfbd7390c8d552f86f6c24159a313ccbd4d4fbb
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.85.0)
20 AC_PROG_LIBTOOL
22 # by Marcelo Magallon <mmagallo@efis.ucr.ac.cr>
23 # Turn around -rpath problem with libtool 1.0c
24 # This define should be improbable enough to not conflict with anything
25 case ${host} in
26   *-pc-linux-gnu)
27     AC_MSG_RESULT([Fixing libtool for -rpath problems.])
28     sed < libtool > libtool-2 \
29     's/^hardcode_libdir_flag_spec.*$/hardcode_libdir_flag_spec=" -D__LIBTOOL_IS_A_FOOL__ "/'
30     mv libtool-2 libtool
31     chmod 755 libtool
32   ;;
33 esac
36 AM_CONFIG_HEADER(src/config.h)
39 dnl Checks for host/os name
40 dnl =======================
41 dnl AC_CANONICAL_HOST -- already done by AC_PROG_LIBTOOL
44 dnl Checks for programs.
45 dnl ===================
46 AC_ISC_POSIX
47 AC_PROG_CC
48 dnl AC_PROG_MAKE_SET -- already done by AM_INIT_AUTOMAKE
49 #AC_PROG_RANLIB
50 dnl AC_PROG_INSTALL -- already done by AM_INIT_AUTOMAKE
51 AC_PROG_LN_S
52 AC_PROG_GCC_TRADITIONAL
55 dnl the prefix
56 dnl ==========
57 dnl
58 dnl move this earlier in the script... anyone know why this is handled
59 dnl in such a bizarre way?
61 test "x$prefix" = xNONE && prefix=$ac_default_prefix
62 dnl Let make expand exec_prefix.
63 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
66 _bindir=`eval echo $bindir`
67 _bindir=`eval echo $_bindir`
69 _libdir=`eval echo $libdir`
70 _libdir=`eval echo $_libdir`
71 lib_search_path="-L$_libdir"
73 inc_search_path=`eval echo $includedir`
74 inc_search_path="-I`eval echo $inc_search_path`"
77 dnl
78 dnl Check for RedHat bugs
79 dnl =====================
81 dnl WM_CHECK_REDCRAP_BUGS($prefix,$_bindir,$_libdir)
84 dnl
85 dnl Specify paths to look for libraries and headers
86 dnl ===============================================
87 AC_ARG_WITH(libs-from,
88 [  --with-libs-from        pass compiler flags to look for libraries],
89         [lib_search_path="$withval $lib_search_path"])
91 AC_ARG_WITH(incs-from,
92 [  --with-incs-from        pass compiler flags to look for header files],
93         [inc_search_path="$withval $inc_search_path"])
97 dnl Checks for library functions.
98 dnl ============================
99 dnl not used anywhere
100 dnl AC_FUNC_MEMCMP  
101 AC_FUNC_VPRINTF
102 AC_FUNC_ALLOCA
103 AC_CHECK_FUNCS(gethostname select poll strerror strcasecmp strncasecmp \
104                setsid atexit mallinfo mkstemp snprintf vsnprintf asprintf \
105                vasprintf mbsnrtowcs mbsrtowcs mbrtowc mbrlen wcsnrtombs \
106                wcsrtombs wcstombs)
108 dnl ripped from samba
109 dnl 
110 AC_CACHE_CHECK([for C99 vsnprintf],_cv_HAVE_C99_VSNPRINTF,[
111 AC_TRY_RUN([
112 #include <sys/types.h>
113 #include <stdarg.h>
114 void foo(const char *format, ...) { 
115        va_list ap;
116        int len;
117        char buf[5];
119        va_start(ap, format);
120        len = vsnprintf(0, 0, format, ap);
121        va_end(ap);
122        if (len != 5) exit(1);
124        if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
126        exit(0);
128 main() { foo("hello"); }
130 _cv_HAVE_C99_VSNPRINTF=yes,_cv_HAVE_C99_VSNPRINTF=no,_cv_HAVE_C99_VSNPRINTF=cross)])
131 if test x"$_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
132     AC_DEFINE(HAVE_C99_VSNPRINTF, 1, [define if you have vsnprintf with C99 semantics (set by configure)])
135 dnl Loading of dynamic libraries at runtime
136 dnl =======================================
137 DLLIBS=""
139 AC_CHECK_FUNC(dlopen, [HAVEDL="yes"], 
140         AC_CHECK_LIB(dl, dlopen, [DLLIBS="-ldl" HAVEDL="yes"],
141                          DLLIBS="" ))
143 if test "x$HAVEDL" = xyes; then
144     AC_CHECK_HEADERS(dlfcn.h)
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 wchar.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
208 if test "$ac_cv_prog_gcc" = yes; then
209     x86=0
210     changequote(,)dnl
211     case "$host_cpu" in
212        i[3456]86) x86=1
213        ;;
214     esac
215     changequote([,])dnl
217     if test "$host_os" != "linux" -a "$host_os" != "linux-gnu" ; then
218        x86=0
219     fi
221     if test $x86 = 1; then
222        AC_DEFINE(ASM_X86, 1, [define if processor is x86 (normally detected by configure)])
223        asm_support=yes
225        AC_CACHE_CHECK(whether gcc supports MMX(tm) inline asm,
226                       ac_cv_c_inline_mmx,
227                       [AC_TRY_LINK(,[__asm__ ("movq %mm0, %mm1");],
228                       ac_cv_c_inline_mmx=yes,
229                       ac_cv_c_inline_mmx=no)])
231        if test "x$ac_cv_c_inline_mmx" = xyes; then
232           AC_DEFINE(ASM_X86_MMX, 1, [define if processor is x86 with MMX(tm) support (normally autodetected by configure)])
233           mmx_support=yes
234        fi
235     fi
239 dnl pkg-config
240 dnl ----------
241 dnl AC_ARG_VAR(PKGCONFIG, [pkg-config command])
242 AC_CHECK_PROG(PKGCONFIG, pkg-config, pkg-config) 
245 dnl gettext
246 dnl -------
249 dnl AM_GNU_GETTEXT
253 INTLIBS=""
255 AC_CHECK_FUNC(gettext, [HAVEGETTEXT="yes"], 
256         AC_CHECK_LIB(intl, gettext, [INTLIBS="-lintl" HAVEGETTEXT="yes"],
257                          INTLIBS="" ))
259 AC_CHECK_PROG(XGETTEXT, xgettext, xgettext)
261 if test "$XGETTEXT" != ""; then 
262     if $XGETTEXT --help 2>&1 | grep illegal >/dev/null ; then
263         echo "xgettext isn't GNU version"
264         XGETTEXT=""
265     fi
268 if test "$LINGUAS" != ""; then
269     if test "$XGETTEXT" != "" -a "$HAVEGETTEXT" != ""; then
270         AC_DEFINE(I18N, 1, [Internationalization (I18N) support (set by configure)])
271         PO=""
272 #       if test "$LINGUAS" = ""; then
273 #           ling=` (cd src/po; /bin/ls *.po) `
274 #           for l in $ling; do
275 #               lcode=`basename $l .po`
276 #               LINGUAS="$LINGUAS $lcode"
277 #           done
278 #       fi
279         echo "xgettext and gettext() exist; will build i18n support for $LINGUAS"
280     else
281         LINGUAS=""
282         PO=""
283         echo "xgettext and libintl.a don't both exist; will not build i18n support"
284     fi
285 else
286         INTLIBS=""
287         MOFILES=""
288         WPMOFILES=""
289         PO=""
293 dnl The Tower of Babel
294 dnl ==================
296 dnl List of supported locales
297 dnl -------------------------
298 supported_locales="be bg bs ca cs da de el es et fi fr gl hr hu it ja ko ms nl no pl pt ro ru sk sv tr zh_CN zh_TW.Big5"
299 supported_wprefs_locales="bg ca cs de es et fi fr hr hu it ja ko pt ru sk zh_CN zh_TW.Big5"
300 supported_wings_locales="bg ca cs de fr sk"
302 for lang in $LINGUAS; do
303         ok=0
304         for l in $supported_locales; do
305                 if test "$l" = "$lang"; then
306                         ok=1
307                         break
308                 fi
309         done
310         if test "$ok" = 1; then
311                 MOFILES="$MOFILES $lang.mo"
312         else
313                 echo "Locale $lang is not supported."
314         fi
315         ok=0
316         for l in $supported_wprefs_locales; do
317                 if test "$l" = "$lang"; then
318                         ok=1
319                         break
320                 fi
321         done
322         if test "$ok" = 1; then
323                 WPMOFILES="$WPMOFILES $lang.mo"
324         fi
325         ok=0
326         for l in $supported_wings_locales; do
327                 if test "$l" = "$lang"; then
328                         ok=1
329                         break
330                 fi
331         done
332         if test "$ok" = 1; then
333                 WINGSMOFILES="$WINGSMOFILES $lang.mo"
334         fi
335 done
338 dnl Kanji Characters support
339 dnl ========================
341 case $host_os in
342         freebsd*)
343                 AC_CHECK_LIB(xpg4, setlocale, [LIBS="$LIBS -lxpg4"]);;
344         *)
345         ;;
346 esac
350 dnl Added by Oliver - Support for NLSDIR option,   Hi Oliver!
351 dnl ===========================================
352 AC_ARG_WITH(nlsdir, 
353         [  --with-nlsdir=PATH      specify where the locale stuff should go ])
356 if test "x$NLSDIR" = "x"; then
357         if test "x$with_nlsdir" != "x"; then
358                 NLSDIR=$with_nlsdir
359         else
360                 NLSDIR='$(prefix)/lib/locale'
361         fi
366 AC_SUBST(DLLIBS)
367 AC_SUBST(INTLIBS)
368 AC_SUBST(NLSDIR)
369 AC_SUBST(MOFILES)
370 AC_SUBST(WPMOFILES)
371 AC_SUBST(WINGSMOFILES)
372 AC_SUBST(supported_locales)
376 dnl Support for various hint things
377 dnl ===============================
379 gnome_on="no"
380 kde_on="no"
381 openlook_on="no"
382 netwm_on="no"
383 vdesktop_on="no"
386 AC_ARG_ENABLE(gnome,
387   [  --enable-gnome          enable stuff needed for GNOME ],
388   [if test x$enableval = xyes; then
389     AC_DEFINE(GNOME_STUFF, 1, [define if you want GNOME stuff support])
390     gnome_on=yes
391   fi])
394 AC_ARG_ENABLE(kde,
395   [  --enable-kde            enable support for KDE window manager (kwm) hints ],
396   [if test x$enableval = xyes; then
397     AC_DEFINE(KWM_HINTS, 1, [define if you want KDE hint support])
398     kde_on=yes
399   fi])
402 AC_ARG_ENABLE(openlook,
403   [  --enable-openlook       enable support for OPEN LOOK(tm) (olwm) hints ],
404   [if test x$enableval = xyes; then
405     AC_DEFINE(OLWM_HINTS, 1, [define if you want OPEN LOOK(tm) hint support])
406     openlook_on=yes
407   fi])
410 AC_ARG_ENABLE(netwm,
411   [  --enable-netwm          enable support for FreeDesktop hints ],
412   [if test x$enableval = xyes; then
413     AC_DEFINE(NETWM_HINTS, 1, [define if you want NETWM hints support])
414     netwm_on=yes
415   fi])
418 AC_ARG_ENABLE(vdesktop,
419   [  --enable-vdesktop       enable virtual desktop],
420   [if test x$enableval = xyes; then
421     AC_DEFINE(VIRTUAL_DESKTOP, 1, [define if you want virtual desktop support])
422     vdesktop_on=yes
423   fi])
427 dnl Disable some stuff that are duplicated in kde
428 dnl ---------------------------------------------
429 AC_ARG_ENABLE(lite,
430   [  --enable-lite           disable some stuff (dont use it) ],
431   [if test x$enableval = xyes; then
432         LITE=yes
433         AC_DEFINE(LITE, 1, [define if you want the 'lite' version])
434         AC_SUBST(LITE)
435   fi])
440 dnl Networking stuff
443 NETLIBS=""
445 AC_CHECK_FUNC(connect,,
446         AC_CHECK_LIB(socket, connect, NETLIBS="$NETLIBS -lsocket"))
448 AC_CHECK_FUNC(gethostbyname,,
449         AC_CHECK_LIB(nsl, gethostbyname, NETLIBS="$NETLIBS -lnsl"))
451 AC_CHECK_FUNC(inet_aton, AC_DEFINE(HAVE_INET_ATON, 1, [define if you have then inet_aton function (set by configure)]),
452      for lib in resolv socket inet bsd; do
453         AC_CHECK_LIB($lib, inet_aton, [AC_DEFINE(HAVE_INET_ATON)
454                      NETLIBS="$NETLIBS -l$lib"; break],, $NETLIBS)
455      done)
457 AC_SUBST(NETLIBS)
460 dnl ===========================================
461 dnl             Stuff that uses X
462 dnl ===========================================
464 AC_PATH_XTRA
466 if test $no_x; then
467     AC_MSG_ERROR([The path for the X11 files not found!
468 Make sure you have X and it's headers and libraries (the -devel packages
469 in Linux) installed.])
472 X_LIBRARY_PATH=$x_libraries
474 XCFLAGS="$X_CFLAGS"
476 XLFLAGS="$X_LIBS"
478 XLIBS="-lX11 $X_EXTRA_LIBS"
481 lib_search_path="$lib_search_path $XLFLAGS"
482 inc_search_path="$inc_search_path $XCFLAGS"
485 AC_SUBST(X_LIBRARY_PATH)
489 dnl Decide which locale function to use, setlocale() or _Xsetlocale()
490 dnl by MANOME Tomonori 
491 dnl ===========================================
492 use_locale=yes
493 AC_ARG_ENABLE(locale, 
494 [  --disable-locale        disable use of X locale support],
495                 use_locale=no)
497 if test "$use_locale" = yes; then
498         AC_CHECK_LIB(X11, _Xsetlocale,
499                 AC_DEFINE(X_LOCALE, 1, [define if you want support for X window's X_LOCALE (set by configure)]),,
500                 $XLFLAGS $XLIBS)
504 dnl Check whether XInternAtoms() exist
505 dnl ==================================
506 AC_CHECK_LIB(X11, XInternAtoms, 
507              AC_DEFINE(HAVE_XINTERNATOMS, 1, [define if your X server has XInternAtoms() (set by configure)]),,
508              $XLFLAGS $XLIBS)
510 dnl Check whether XConvertCase() exist
511 dnl ==================================
512 AC_CHECK_LIB(X11, XConvertCase, 
513              AC_DEFINE(HAVE_XCONVERTCASE, 1, [define if your X server has XConvertCase() (set by configure)]),,
514              $XLFLAGS $XLIBS)
517 dnl XKB keyboard language status
518 dnl ============================
519 AC_ARG_ENABLE(modelock,
520 [  --enable-modelock       XKB keyboard language status support],
521                 AC_DEFINE(XKB_MODELOCK, 1, [whether XKB language MODELOCK should be enabled]))
525 dnl Shape support
526 dnl =============
527 shape=yes
528 AC_ARG_ENABLE(shape, 
529 [  --disable-shape         disable shaped window extension support],
530                 shape=$enableval, shape=yes)
532 added_xext=no
534 if test "$shape" = yes; then
535         AC_CHECK_LIB(Xext, XShapeSelectInput, [XLIBS="-lXext $XLIBS"
536                 added_xext=yes
537                 AC_DEFINE(SHAPE, 1, [define if you want support for shaped windows (set by configure)])], 
538                 shape=no, $XLFLAGS $XLIBS)
542 dnl Xft antialiased font support
543 dnl ============================
545 xft=yes
546 XFTLIBS=""
548 if test "x$PKGCONFIG" != x -a "`$PKGCONFIG xft; echo $?`" = 0; then
549         XFTCONFIG="$PKGCONFIG xft"
550         pkgconfig_xft=yes
551 else
552         AC_CHECK_PROG(XFTCONFIG, xft-config, xft-config)
555 AC_MSG_CHECKING([for the Xft2 library])
557 if test "x$XFTCONFIG" != x; then
558         XFTLIBS=`$XFTCONFIG --libs`
559         XFTFLAGS=`$XFTCONFIG --cflags`
560         AC_MSG_RESULT([found])
561 else
562         AC_MSG_RESULT([not found])
563         echo
564         echo "ERROR!!! libXft2 is not installed or could not be found."
565         echo "         Xft2 is a requirement for building Window Maker."
566         echo "         Please install it (along with fontconfig) before continuing."
567         echo
568         exit 1
571 minXFT="2.1.2"
572 goodxft="no"
575 dnl The macro below will use $XFTFLAGS (defined above) to find Xft.h
577 WM_CHECK_XFT_VERSION($minXFT, goodxft=yes, goodxft=no)
579 if test "$goodxft" = no; then
580         echo
581         echo "ERROR!!! libXft on this system is an old version."
582         echo "         Please consider upgrading to at least version ${minXFT}."
583         echo
584         exit 1
587 AC_SUBST(XFTFLAGS)
588 AC_SUBST(XFTLIBS)
589 AC_DEFINE(XFT, 1, [define if you want support for antialiased fonts (set by configure)])
592 dnl XINERAMA support
593 dnl ================
594 xinerama=no
595 AC_ARG_ENABLE(xinerama,
596 [  --enable-xinerama       enable Xinerama extension support],
597                 xinerama=$enableval, xinerama=no)
599 if test "$xinerama" = yes; then
600         AC_CHECK_LIB(Xinerama, XineramaQueryScreens, 
601                 [XLIBS="-lXinerama $XLIBS"
602                 xfxine=yes],
603                 xfxine=no, $XLFLAGS $XLIBS)
605         AC_CHECK_LIB(Xext, XineramaGetInfo,
606                 [sunxine=yes
607                 ], sunxine=no, $XLFLAGS $XLIBS)
609         if test "$xfxine" = yes; then
610                 xine=1
611         fi
613         if test "$sunxine" = yes; then
614             xine=1
615             AC_DEFINE(SOLARIS_XINERAMA, 1, 
616                 [define if you want support for the XINERAMA extension and are in Solaris (set by configure)])
617         fi
619         if test "$xine" = 1; then
620             AC_DEFINE(XINERAMA, 1, 
621                 [define if you want support for the XINERAMA extension (set by configure)])
622         fi
627 dnl MIT-SHM support
628 dnl ===============
629 shm=yes
630 AC_ARG_ENABLE(shm,
631 [  --disable-shm           disable usage of MIT-SHM extension],
632                 shm=$enableval, shm=yes)
634 if test "$shm" = yes; then
635         AC_CHECK_LIB(Xext, XShmAttach, ok=yes, ok=no, $XLFLAGS $XLIBS)
637         if test "$ok" = yes; then
638         AC_CHECK_FUNC(shmget, ok=yes, ok=no)
639         fi
641         if test "$ok" = yes; then
642                 if test "$added_xext" = no; then
643                         XLIBS="-lXext $XLIBS"
644                 fi
645                 AC_DEFINE(XSHM, 1, [define if X's shared memory extension is available (set by configure)])
646         fi
650 dnl R6 Style Session Management Support
651 dnl ===================================
655 #AC_DEFINE(R6SM)
656 #AC_SUBST(XSMPLIBS)
660 dnl ==============================================
661 dnl         Graphic Format Libraries
662 dnl ==============================================
668 dnl XPM Support
669 dnl ===========
670 xpm=yes
671 AC_ARG_ENABLE(xpm, 
672 [  --disable-xpm           disable use of XPM pixmaps through libXpm],
673         xpm=$enableval, xpm=yes)
675 if test "$xpm" = yes; then
676     WM_CHECK_LIB(Xpm, XpmCreatePixmapFromData, [$XLFLAGS $XLIBS])
678     if test "x$ac_cv_lib_Xpm_XpmCreatePixmapFromData" = xyes; then
679         WM_CHECK_HEADER(X11/xpm.h)
680         if test "x$ac_cv_header_X11_xpm_h" = xyes; then
681                 GFXLIBS="$GFXLIBS -lXpm"
682                 supported_gfx="XPM"
683                 AC_DEFINE(USE_XPM, 1, [define if XPM libraries are available (set by configure)])
684         else
685                 supported_gfx="builtin-XPM"
686         fi
687     fi
690 # for wmlib
691 AC_SUBST(XCFLAGS)
692 # for test
693 AC_SUBST(XLFLAGS)
694 AC_SUBST(XLIBS)
696 AC_SUBST(X_EXTRA_LIBS)
698 dnl ===============================================
699 dnl             End of stuff that uses X
700 dnl ===============================================
704 dnl PNG Support
705 dnl ===========
706 png=yes
707 AC_ARG_ENABLE(png, 
708 [  --disable-png           disable PNG support through libpng],
709         png=$enableval, png=yes, png=no)
712 if test "$png" = yes ; then
713     WM_CHECK_LIB(png, png_get_valid, [-lz -lm])
715     if test "x$ac_cv_lib_png_png_get_valid" = xyes; then
716         WM_CHECK_HEADER(png.h)
717         if test "x$ac_cv_header_png_h" = xyes; then
718             GFXLIBS="$GFXLIBS -lpng -lz" 
719             supported_gfx="$supported_gfx PNG"
720             AC_DEFINE(USE_PNG, 1, [define if PNG libraries are available (set by configure)])
721         fi
722     fi
726 dnl JPEG Support
727 dnl ============
728 jpeg=yes
729 ljpeg=""
730 AC_ARG_ENABLE(jpeg,
731 [  --disable-jpeg          disable JPEG support through libjpeg],
732         jpeg=$enableval, jpeg=yes, jpeg=no)
734 if test "$jpeg" = yes; then
735     WM_CHECK_LIB(jpeg, jpeg_destroy_compress)
737     if test "x$ac_cv_lib_jpeg_jpeg_destroy_compress" = xyes; then
739         ljpeg="-ljpeg"
741         WM_CHECK_HEADER(jpeglib.h)
742         if test "x$ac_cv_header_jpeglib_h" = xyes; then
743             GFXLIBS="$GFXLIBS -ljpeg"
744             supported_gfx="$supported_gfx JPEG"
745             AC_DEFINE(USE_JPEG, 1, [define if JPEG libraries are available (set by configure)])
746         fi
747     fi
751 dnl GIF Support
752 dnl ============
753 gif=yes
754 AC_ARG_ENABLE(gif,
755 [  --disable-gif           disable GIF support through libgif or libungif],
756         gif=$enableval, gif=yes, gif=no)
758 if test "$gif" = yes; then
759     my_libname=""
760     WM_CHECK_LIB(ungif, DGifOpenFileName, [$XLFLAGS $XLIBS])
761     if test "x$ac_cv_lib_ungif_DGifOpenFileName" = xyes; then
762         my_libname=-lungif
763     fi
765 dnl libungif is the same thing as libgif for all practical purposes.
767     if test "x$my_libname" = x; then
768         WM_CHECK_LIB(gif, DGifOpenFileName, [$XLFLAGS $XLIBS])
769         if test "x$ac_cv_lib_gif_DGifOpenFileName" = xyes; then
770             my_libname=-lgif
771         fi
772     fi
774     if test "$my_libname" != x; then
775         WM_CHECK_HEADER(gif_lib.h)
776         if test "x$ac_cv_header_gif_lib_h" = xyes; then
777             GFXLIBS="$GFXLIBS $my_libname"
778             supported_gfx="$supported_gfx GIF"
779             AC_DEFINE(USE_GIF, 1, [define if GIF libraries are available (set by configure)])
780         fi
781     fi
786 dnl TIFF Support
787 dnl ============
788 AC_ARG_ENABLE(tiff, 
789 [  --disable-tiff          disable use of TIFF images through libtiff],
790         tif=$enableval, tif=yes, tif=no)
793 # TIFF can optionally have JPEG and/or zlib support. Must find out
794 # when they are supported so that correct library flags are passed during
795 # detection and linkage
798 # By default use xpm icons if tiff is not found.
799 ICONEXT="xpm"
802 if test "$tif" = yes; then
803     my_libname=""
804     WM_CHECK_LIB(tiff, TIFFGetVersion, [-lm])
805     if test "x$ac_cv_lib_tiff_TIFFGetVersion" = xyes; then
806         my_libname="-ltiff"
807     fi
809 dnl Retry with zlib
811     unset ac_cv_lib_tiff_TIFFGetVersion
812     if test "x$my_libname" = x; then
813         WM_CHECK_LIB(tiff, TIFFGetVersion, [$ljpeg -lz -lm])
814         if test "x$ac_cv_lib_tiff_TIFFGetVersion" = xyes; then
815             my_libname="-ltiff -lz"
816         fi
817     fi
819     if test "x$my_libname" = x; then
820         WM_CHECK_LIB(tiff34, TIFFGetVersion, [$ljpeg -lm])
821         if test "x$ac_cv_lib_tiff34_TIFFGetVersion" = xyes; then
822             my_libname="-ltiff34"
823         fi
824     fi
827     if test "x$my_libname" != x; then
828         WM_CHECK_HEADER(tiffio.h)
829         if test "x$ac_cv_header_tiffio_h" = xyes; then
830             GFXLIBS="$my_libname $GFXLIBS"
831             ICONEXT="tiff"
832             supported_gfx="$supported_gfx TIFF"
833             AC_DEFINE(USE_TIFF, 1, [define if TIFF libraries are available (set by configure)])     
834         fi
835     fi
838 LIBRARY_SEARCH_PATH="$lib_search_path"
839 HEADER_SEARCH_PATH="$inc_search_path"
841 AC_SUBST(LIBRARY_SEARCH_PATH)
842 AC_SUBST(HEADER_SEARCH_PATH)
845 AC_SUBST(GFXLIBS)
846 AC_SUBST(ICONEXT)
849 dnl ==============================================
850 dnl         End of Graphic Format Libraries
851 dnl ==============================================
855 dnl stdlib.h is checked here, because of conflict in jpeglib.h
856 AC_CHECK_HEADERS(stdlib.h)
858 # AC_PREFIX_PROGRAM(wmaker)
860 dnl Support for PIXMAPDIR option
861 dnl ============================
862 AC_ARG_WITH(pixmapdir,
863 [  --with-pixmapdir=PATH   specify where pixmaps are located [DATADIR/pixmaps]])
865 if test "x$with_pixmapdir" != "x"; then
866         pixmapdir=$with_pixmapdir
867 else
868         pixmapdir=`eval echo ${datadir}/pixmaps`
871 AC_DEFINE_UNQUOTED(PIXMAPDIR, "$pixmapdir", [define an extra path for pixmaps (set by configure)])
873 pkgdatadir=`eval echo $datadir`
874 AC_DEFINE_UNQUOTED(PKGDATADIR, "$pkgdatadir/WindowMaker", [where shared data is stored (defined by configure)])
876 _sysconfdir=`eval echo $sysconfdir`
877 AC_DEFINE_UNQUOTED(SYSCONFDIR, "$_sysconfdir", [where the configuration is stored (defined by configure)])
880 dnl Support for GNUSTEP_LOCAL_ROOT, for WPrefs.app
881 dnl ==============================================
883 appspath=""
885 AC_ARG_WITH(appspath,
886 [  --with-appspath=PATH    specify the directory for GNUstep applications], appspath=$withval )
888 if test "x$appspath" = "x"; then
889     gnustepdir='${prefix}/GNUstep'
891     if test "x$GNUSTEP_LOCAL_ROOT" != "x" ; then
892         gnustepdir=`echo "$GNUSTEP_LOCAL_ROOT" | sed -e "s|^${prefix}|prefix|"`
893         gnustepdir=`echo $gnustepdir | sed -e 's|^prefix|${prefix}|'`
894     fi
896     with_appspath=$gnustepdir/Applications
899 wprefsdir=$with_appspath/WPrefs.app
901 AC_SUBST(wprefsdir)
904 dnl Enable User Defined Menu thing
905 dnl ==================================
906 AC_ARG_ENABLE(usermenu,
907 [  --enable-usermenu       user defined menus for applications
909 if test "$enableval" = yes; then
910         AC_DEFINE(USER_MENU, 1, [define if you want user defined menus for applications])
916 dnl Nicolai:  Program tests for Documentation Section
917 dnl =================================================
918 dnl DOCTYPES=""
919 dnl AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, ,$PATH)
920 dnl if test "x$MAKEINFO" != "x" ; then
921 dnl       DOCTYPES="$DOCTYPES info_doc"
922 dnl fi
923 dnl AC_CHECK_PROG(TEX, tex, tex, ,$PATH)
924 dnl if test "x$TEX" != "x" ; then
925 dnl       DOCTYPES="$DOCTYPES dvi_doc"
926 dnl fi
927 dnl AC_CHECK_PROG(DVIPS, dvips, dvips, ,$PATH)
928 dnl if test "x$DVIPS" != "x" ; then
929 dnl       DOCTYPES="$DOCTYPES ps_doc"
930 dnl fi
931 dnl AC_CHECK_PROG(PERL, perl, perl, ,$PATH)
932 dnl if test "x$PERL" != "x" ; then
933 dnl       DOCTYPES="$DOCTYPES html_doc"
934 dnl fi
935 dnl AC_PATH_PROG(PERL_PATH, perl, perl, ,$PATH)
936 dnl AC_CHECK_PROG(TEXI2HTML, texi2html, texi2html, ,$PATH)
937   
938 dnl AC_SUBST(DOCTYPES)
940 AC_OUTPUT(Makefile po/Makefile util/Makefile test/Makefile \
941         WINGs/Makefile WINGs/WINGs/Makefile WINGs/Documentation/Makefile \
942         WINGs/Examples/Makefile WINGs/Resources/Makefile WINGs/Tests/Makefile \
943         WINGs/Extras/Makefile WINGs/po/Makefile \
944         wmlib/Makefile wrlib/Makefile src/Makefile src/wconfig.h \
945         doc/Makefile doc/sk/Makefile \
946         WindowMaker/Makefile WindowMaker/Backgrounds/Makefile \
947         WindowMaker/Defaults/Makefile WindowMaker/IconSets/Makefile \
948         WindowMaker/Icons/Makefile WindowMaker/Pixmaps/Makefile \
949         WindowMaker/Styles/Makefile WindowMaker/Themes/Makefile \
950         WPrefs.app/Makefile WPrefs.app/tiff/Makefile WPrefs.app/xpm/Makefile \
951         WPrefs.app/po/Makefile \
952         contrib/Makefile contrib/WindowMaker.spec )
953 #       plugins/Makefile plugins/libwmfun/Makefile)
958 dnl Output some helpful data for compiling wraster and WINGs/WUtil apps
959 dnl ===================================================================
962 dnl echo "WFLAGS=\"$LIBPL_INC_PATH -I$prefix/include\"" > WINGs-flags
963 dnl echo "WLIBS=\"-L$exec_prefix/lib -lWINGs -lwraster $LIBPL_LIBS $GFXLIBS -lm\""\
964 dnl     | sed -e 's|\$(prefix)|'"$prefix|" >> WINGs-flags
966 dnl The #lp# and #rp# stuff below is a hack because [ and ] get lost when
967 dnl parsed by m4
969 cat <<EOF >get-wraster-flags
970 #!/bin/sh
972 WCFLAGS="$inc_search_path"
973 WLFLAGS="$lib_search_path"
974 WLIBS="-lwraster $GFXLIBS $XLIBS -lm"
976 usage="Usage: get-wraster-flags #lp#--cflags#rp# #lp#--ldflags#rp# #lp#--libs#rp#"
978 if test \$# -eq 0; then
979       echo "\${usage}" 1>&2
980       exit 1
983 while test \$# -gt 0; do
984   case \$1 in
985     --cflags)
986         echo \$WCFLAGS
987         ;;
988     --ldflags|--lflags)
989         echo \$WLFLAGS
990         ;;
991     --libs)
992         echo \$WLIBS
993         ;;
994     *)
995         echo "\${usage}" 1>&2
996         exit 1
997         ;;
998   esac
999   shift
1000 done
1005 cat <<EOF > wrlib/wrlib.pc
1006 Name: wrlib
1007 Description: Image manipulation and conversion library
1008 Version: $VERSION
1009 Libs: $lib_search_path -lwraster $GFXLIBS $XLIBS -lm
1010 Cflags: $inc_search_path
1013 cat <<EOF >get-wings-flags
1014 #!/bin/sh
1016 WCFLAGS="$inc_search_path"
1017 WLFLAGS="$lib_search_path"
1018 WLIBS="-lWINGs -lwraster $GFXLIBS $XFTLIBS $XLIBS -lm $NETLIBS $INTLIBS"
1020 usage="Usage: get-wings-flags #lp#--cflags#rp# #lp#--ldflags#rp# #lp#--libs#rp#"
1022 if test \$# -eq 0; then
1023       echo "\${usage}" 1>&2
1024       exit 1
1027 while test \$# -gt 0; do
1028   case \$1 in
1029     --cflags)
1030         echo \$WCFLAGS
1031         ;;
1032     --ldflags|--lflags)
1033         echo \$WLFLAGS
1034         ;;
1035     --libs)
1036         echo \$WLIBS
1037         ;;
1038     *)
1039         echo "\${usage}" 1>&2
1040         exit 1
1041         ;;
1042   esac
1043   shift
1044 done
1049 cat <<EOF > WINGs/WINGs.pc
1050 Name: WINGs
1051 Description: Small widget set with the NeXTStep(TM) look and feel
1052 Version: $VERSION
1053 Requires: wrlib
1054 Libs: $lib_search_path -lWINGs $XFTLIBS $XLIBS -lm $NETLIBS $INTLIBS
1055 Cflags: $inc_search_path
1058 cat <<EOF >get-wutil-flags
1059 #!/bin/sh
1061 WCFLAGS="-I`eval echo ${includedir}`"
1062 WLFLAGS="-L${_libdir}"
1063 WLIBS="-lWUtil $NETLIBS $INTLIBS"
1065 usage="Usage: get-wutil-flags #lp#--cflags#rp# #lp#--ldflags#rp# #lp#--libs#rp#"
1067 if test \$# -eq 0; then
1068       echo "\${usage}" 1>&2
1069       exit 1
1072 while test \$# -gt 0; do
1073   case \$1 in
1074     --cflags)
1075         echo \$WCFLAGS
1076         ;;
1077     --ldflags|--lflags)
1078         echo \$WLFLAGS
1079         ;;
1080     --libs)
1081         echo \$WLIBS
1082         ;;
1083     *)
1084         echo "\${usage}" 1>&2
1085         exit 1
1086         ;;
1087   esac
1088   shift
1089 done
1094 cat <<EOF > wmlib/wmlib.pc
1095 Name: wmlib
1096 Description: FIXME: What do I write here?
1097 Version: $VERSION
1098 Requires: wrlib
1099 Libs: $lib_search_path -lWUtil $NETLIBS $INTLIBS
1100 Cflags: $inc_search_path
1103 sed 's/#lp#/[/g' get-wraster-flags | sed 's/#rp#/]/g' > wrlib/get-wraster-flags
1104 sed 's/#lp#/[/g' get-wings-flags | sed 's/#rp#/]/g' > WINGs/get-wings-flags
1105 sed 's/#lp#/[/g' get-wutil-flags | sed 's/#rp#/]/g' > WINGs/get-wutil-flags
1107 chmod 755 wrlib/get-wraster-flags WINGs/get-wings-flags WINGs/get-wutil-flags
1109 rm -f get-wraster-flags get-wings-flags get-wutil-flags
1113 dnl Spit out the configuration
1114 dnl ==========================
1116 supported_gfx="$supported_gfx builtin-PPM"
1118 if test "x$MOFILES" = "x"; then
1119         mof=None
1120 else
1121         mof=`echo $MOFILES`
1124 if test "x$MOFILES" = "x"; then
1125         languages=None
1126 else
1127         languages=`echo $MOFILES | sed 's/.mo//g'`
1130 extrasupport=''
1131 if test "$openlook_on" = "yes"; then
1132   extrasupport="OpenLook $extrasupport"
1134 if test "$gnome_on" = "yes"; then
1135   extrasupport="Gnome $extrasupport"
1137 if test "$kde_on" = "yes"; then
1138   extrasupport="KDE $extrasupport"
1140 if test "$netwm_on" = "yes"; then
1141   extrasupport="NetWM $extrasupport"
1144 if test "x$extrasupport" = "x"; then
1145   extrasupport="None"
1148 echo
1149 echo "Window Maker was configured as follows:"
1150 echo
1151 echo "Installation path prefix            : $prefix"
1152 echo "Installation path for binaries      : $_bindir"
1153 echo "Installation path for WPrefs.app    : $with_appspath" | sed -e 's|\${prefix}|'"$prefix|"
1154 echo "Supported graphic format libraries  : $supported_gfx"
1155 echo "Use assembly routines for wrlib     : $asm_support"
1156 echo "Use inline MMX(tm) x86 assembly     : $mmx_support"
1157 echo "Antialiased text support in WINGs   : $xft"
1158 echo "Xinerama extension support          : $xinerama"
1159 echo "Virtual desktop support             : $vdesktop_on"
1160 echo "Additionally supported environments : $extrasupport"
1161 echo "Translated message files to install : $mof"
1162 dnl echo "Supported languages beside English  : $languages"
1163 if test "x$MOFILES" != "x"; then
1164         echo "Installation path for translations  : $NLSDIR" | sed -e 's|\$(prefix)|'"$prefix|"
1166 echo
1168 dnl WM_PRINT_REDCRAP_BUG_STATUS
1170 if test "x$ac_cv_header_jpeglib_h" != xyes; then
1171 echo "WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING"
1172 echo
1173 echo "JPEG support will not be included because the JPEG library is"
1174 echo "not installed correctly or was not found. Background images"
1175 echo "from themes will not display as they usually are JPEG files."
1176 echo
1177 echo "To fix, download and install the jpeg library and/or make sure you"
1178 echo "installed all jpeg related packages, SPECIALLY the development packages"
1179 echo "like jpeg-devel (if you use some prepackaged version of libjpeg)."
1180 echo
1181 echo "WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING"
1185 dnl This is for Emacs.  I'm lazy, I know... (nicolai)
1186 dnl ================================================
1187 dnl Local Variables:
1188 dnl compile-command: "autoconf"
1189 dnl End: