Set library version in configure.ac
[wmaker-crm.git] / configure.ac
bloba8535770fc281d83970c958dfb571b94233dea99
1 dnl
2 dnl Window Maker autoconf input.
3 dnl
4 dnl Process with:
5 dnl               aclocal
6 dnl               autoheader
7 dnl               autoconf
8 dnl               libtoolize --force --automake
9 dnl               automake -a --gnu --include-deps
10 dnl
11 dnl
14 AC_INIT(WindowMaker, 0.94.0-crm, , WindowMaker, http://www.windowmaker.info/)
15 AC_CONFIG_SRCDIR(src/WindowMaker.h)
16 AC_CONFIG_MACRO_DIR([m4])
17 AM_CONFIG_HEADER(src/config.h)
18 AM_INIT_AUTOMAKE([1.11 silent-rules])
20 dnl libtool library versioning
21 dnl =======================
22 dnl
23 dnl current
24 dnl revision
25 dnl age
26 dnl
27 dnl 1. Start with version information of ‘0:0:0’ for each libtool library.
28 dnl 2. Update the version information only immediately before a public
29 dnl release of your software. More frequent updates are unnecessary, and
30 dnl only guarantee that the current interface number gets larger faster.
31 dnl 3. If the library source code has changed at all since the last
32 dnl update, then increment revision (‘c:r:a’ becomes ‘c:r+1:a’).
33 dnl 4. If any interfaces have been added, removed, or changed since the
34 dnl last update, increment current, and set revision to 0.
35 dnl 5. If any interfaces have been added since the last public release,
36 dnl then increment age.
37 dnl 6. If any interfaces have been removed or changed since the last
38 dnl public release, then set age to 0.
39 dnl
40 dnl libwraster
41 WRASTER_CURRENT=4
42 WRASTER_REVISION=0
43 WRASTER_AGE=1
44 WRASTER_VERSION=$WRASTER_CURRENT:$WRASTER_REVISION:$WRASTER_AGE
45 AC_SUBST(WRASTER_VERSION)
46 dnl
47 dnl libWINGs
48 WINGS_CURRENT=2
49 WINGS_REVISION=1
50 WINGS_AGE=0
51 WINGS_VERSION=$WINGS_CURRENT:$WINGS_REVISION:$WINGS_AGE
52 AC_SUBST(WINGS_VERSION)
53 dnl
54 dnl libWUtil
55 WUTIL_CURRENT=1
56 WUTIL_REVISION=2
57 WUTIL_AGE=0
58 WUTIL_VERSION=$WUTIL_CURRENT:$WUTIL_REVISION:$WUTIL_AGE
59 AC_SUBST(WUTIL_VERSION)
62 dnl Checks for host/os name
63 dnl =======================
64 dnl AC_CANONICAL_HOST -- already done by AC_PROG_LIBTOOL
66 dnl Checks for programs.
67 dnl ===================
68 AC_ISC_POSIX
69 AC_PROG_CC
70 AC_PROG_LN_S
71 AC_PROG_GCC_TRADITIONAL
72 AC_PROG_LIBTOOL
74 AX_CFLAGS_GCC_OPTION(-Wall)
75 AX_CFLAGS_GCC_OPTION(-Wextra -Wno-sign-compare)
77 dnl Platform-specific Makefile setup
78 dnl ================================
80 case "${host}" in
81         *-*-linux*|*-*-cygwin*)
82                 WM_OSDEP="linux"
83         ;;
84         *-*-freebsd*)
85                 WM_OSDEP="bsd"
86                 CFLAGS="$CFLAGS -DFREEBSD"
87         ;;
88         *-*-netbsd*)
89                 WM_OSDEP="bsd"
90                 CFLAGS="$CFLAGS -DNETBSD"
91         ;;
92         *-*-openbsd*)
93                 WM_OSDEP="bsd"
94         CFLAGS="$CFLAGS -DOPENBSD"
95         ;;
96         *-*-dragonfly*)
97                 WM_OSDEP="bsd"
98                 CFLAGS="$CFLAGS -DDRAGONFLYBSD"
99         ;;
100         *-apple-darwin*)
101                 WM_OSDEP="darwin"
102         ;;
103         *-*-solaris*)
104                 WM_OSDEP="stub"         # solaris.c when done
105         ;;
106         *)
107                 WM_OSDEP="stub"
108                 CFLAGS="-DSTUB_HINT=\\\"${host}\\\""
109         ;;
110 esac
111 AC_SUBST(WM_OSDEP)
114 dnl the prefix
115 dnl ==========
117 dnl move this earlier in the script... anyone know why this is handled
118 dnl in such a bizarre way?
120 test "x$prefix" = xNONE && prefix=$ac_default_prefix
121 dnl Let make expand exec_prefix.
122 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
125 _bindir=`eval echo $bindir`
126 _bindir=`eval echo $_bindir`
128 _libdir=`eval echo $libdir`
129 _libdir=`eval echo $_libdir`
130 lib_search_path="-L$_libdir"
132 inc_search_path=`eval echo $includedir`
133 inc_search_path="-I`eval echo $inc_search_path`"
135 dnl ===============================================
136 dnl Specify paths to look for libraries and headers
137 dnl ===============================================
138 AC_ARG_WITH(libs-from, AS_HELP_STRING([--with-libs-from], [pass compiler flags to look for libraries]),
139         [lib_search_path="$withval $lib_search_path"])
141 AC_ARG_WITH(incs-from, AS_HELP_STRING([--with-incs-from], [pass compiler flags to look for header files]),
142         [inc_search_path="$withval $inc_search_path"])
144 dnl ============================
145 dnl Checks for library functions
146 dnl ============================
147 dnl not used anywhere
148 dnl AC_FUNC_MEMCMP  
149 AC_FUNC_VPRINTF
150 AC_CHECK_FUNCS(gethostname select poll strerror strcasecmp strncasecmp \
151                setsid atexit mallinfo mkstemp)
153 dnl Check for inotify
154 dnl =================
155 AC_CHECK_HEADERS(sys/inotify.h, AC_DEFINE(HAVE_INOTIFY, 1, Check for inotify))
157 dnl Check CPP
158 dnl =========
159 if test "x$CPP_PATH" = x; then
160     AC_PATH_PROG(CPP_PATH, cpp, notfound, 
161                 $PATH:/lib:/usr/bin:/bin:/usr/lib:/usr/ccs/lib)
165 dnl Tell stupid Solaris cpp that the files it will process have C++ like syntax
166 dnl RedHat 5.x is broken too, so it won't make a symlink from cpp to the
167 dnl standard locations
169 if test "$CPP_PATH" = "/usr/ccs/lib/cpp" -o "$CPP_PATH" = "notfound" ; then
170     if test "$GCC" = "yes"; then
171         CPP_PATH="gcc -E -x c"
172     else 
173         if test "$CPP_PATH" = "/usr/ccs/lib/cpp"; then
174             CPP_PATH="$CPP_PATH -B"
175         else
176             echo "cpp, the C preprocessor was not found in your system."
177             echo "Create a symbolic link from it to /lib/cpp and rerun configure"
178             exit
179         fi
180     fi
182 AC_DEFINE_UNQUOTED(CPP_PATH, "$CPP_PATH", [define to the path to cpp])
186 dnl Checks for header files.
187 dnl =======================
188 AC_HEADER_SYS_WAIT
189 AC_HEADER_TIME
190 AC_CHECK_HEADERS(fcntl.h limits.h sys/ioctl.h sys/time.h sys/types.h \
191                  libintl.h sys/select.h poll.h malloc.h ctype.h string.h \
192                  strings.h)
196 dnl Checks for typedefs, structures, and compiler characteristics.
197 dnl ==============================================================
198 AC_DECL_SYS_SIGLIST
199 AC_C_CONST
200 #AC_TYPE_SIZE_T
201 #AC_TYPE_PID_T
202 AC_TYPE_SIGNAL
206 dnl Compiler/architecture specific optimizations
207 dnl ============================================
210 dnl GCC/as with MMX support
211 dnl -----------------------
213 # until we fix it, leave it disabled
214 asm_support=no
215 mmx_support=no
217 check_for_mmx_support=yes
218 AC_ARG_ENABLE(mmx, AS_HELP_STRING([--disable-mmx], [disable compilation of MMX inline assembly]),
219    [if test x$enableval != xyes; then
220     check_for_mmx_support=no
221     fi])
223 if test "$ac_cv_prog_gcc" = yes -a "$check_for_mmx_support" = yes; then
224 case $host_cpu in
225 *i?86*)
227     # gcc-3.3 or newer complains about some of our stuff without this
228     NOSTRICTALIASING="-fno-strict-aliasing"
230     AC_CACHE_CHECK(whether gcc supports x86 inline asm,
231                    ac_cv_c_inline_asm,
232                    [AC_TRY_LINK(,[{int x; asm volatile("movl %%eax, %%ebx\n\t pushal\n\t popal"::
233                           "m" (x),"m" (x),"m" (x),"m" (x),"m" (x),"m" (x),
234                           "m" (x),"m" (x),"m" (x),"m" (x),"m" (x),"m" (x));}],
235                    ac_cv_c_inline_asm=yes,
236                    ac_cv_c_inline_asm=no)])
238     if test "x$ac_cv_c_inline_asm" = xyes; then
239        AC_DEFINE(ASM_X86, 1, [define if processor is x86 (normally detected by configure)])
240        asm_support=yes
242        AC_CACHE_CHECK(whether gcc supports MMX(tm) inline asm,
243                       ac_cv_c_inline_mmx,
244                       [AC_TRY_LINK(,[asm ("movq %mm0, %mm1");],
245                       ac_cv_c_inline_mmx=yes,
246                       ac_cv_c_inline_mmx=no)])
248        if test "x$ac_cv_c_inline_mmx" = xyes; then
249           AC_DEFINE(ASM_X86_MMX, 1, [define if processor is x86 with MMX(tm) support (normally autodetected by configure)])
250           mmx_support=yes
251        fi
252     fi
253     ;;
254 esac
256 AC_SUBST(NOSTRICTALIASING)
259 dnl pkg-config
260 dnl ==========
261 dnl AC_ARG_VAR(PKGCONFIG, [pkg-config command])
262 AC_CHECK_PROG(PKGCONFIG, pkg-config, pkg-config) 
264 dnl gettext
265 dnl =======
267 dnl AM_GNU_GETTEXT
269 INTLIBS=""
271 AC_CHECK_FUNC(gettext, [HAVEGETTEXT="yes"], 
272         AC_CHECK_LIB(intl, gettext, [INTLIBS="-lintl" HAVEGETTEXT="yes"],
273                          INTLIBS="" ))
275 AC_CHECK_PROG(XGETTEXT, xgettext, xgettext)
277 if test "$XGETTEXT" != ""; then 
278     if $XGETTEXT --help 2>&1 | grep illegal >/dev/null ; then
279         echo "xgettext isn't GNU version"
280         XGETTEXT=""
281     fi
284 if test "$LINGUAS" != ""; then
285     if test "$XGETTEXT" != "" -a "$HAVEGETTEXT" != ""; then
286         AC_DEFINE(I18N, 1, [Internationalization (I18N) support (set by configure)])
287         PO=""
288         echo "xgettext and gettext() exist; will build i18n support for $LINGUAS"
289     else
290         LINGUAS=""
291         PO=""
292         echo "xgettext and libintl.a don't both exist; will not build i18n support"
293     fi
294 else
295         INTLIBS=""
296         MOFILES=""
297         WPMOFILES=""
298         UTILMOFILES=""
299         PO=""
303 dnl The Tower of Babel
304 dnl ==================
306 dnl List of supported locales
307 dnl =========================
308 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"
309 supported_wprefs_locales="bg ca cs de es et fi fr hr hu it ja ko pt ru sk zh_CN zh_TW"
310 supported_wings_locales="bg ca cs de fr sk"
311 supported_util_locales="de"
313 for lang in $LINGUAS; do
314         ok=0
315         for l in $supported_locales; do
316                 if test "$l" = "$lang"; then
317                         ok=1
318                         break
319                 fi
320         done
321         if test "$ok" = 1; then
322                 MOFILES="$MOFILES $lang.mo"
323         else
324                 echo "Locale $lang is not supported."
325         fi
326         ok=0
327         for l in $supported_wprefs_locales; do
328                 if test "$l" = "$lang"; then
329                         ok=1
330                         break
331                 fi
332         done
333         if test "$ok" = 1; then
334                 WPMOFILES="$WPMOFILES $lang.mo"
335         fi
336         ok=0
337         for l in $supported_util_locales; do
338                 if test "$l" = "$lang"; then
339                         ok=1
340                         break
341                 fi
342         done
343         if test "$ok" = 1; then
344                 UTILMOFILES="$UTILMOFILES $lang.mo"
345         fi
346         ok=0
347         for l in $supported_wings_locales; do
348                 if test "$l" = "$lang"; then
349                         ok=1
350                         break
351                 fi
352         done
353         if test "$ok" = 1; then
354                 WINGSMOFILES="$WINGSMOFILES $lang.mo"
355         fi
356 done
359 dnl Added by Oliver - Support for NLSDIR option
360 dnl ===========================================
361 AC_ARG_WITH(nlsdir, AS_HELP_STRING([--with-nlsdir=PATH], [specify where the locale stuff should go]))
363 if test "x$NLSDIR" = "x"; then
364         if test "x$with_nlsdir" != "x"; then
365                 NLSDIR=$with_nlsdir
366         else
367                 NLSDIR='$(prefix)/lib/locale'
368         fi
371 AC_SUBST(INTLIBS)
372 AC_SUBST(NLSDIR)
373 AC_SUBST(MOFILES)
374 AC_SUBST(WPMOFILES)
375 AC_SUBST(UTILMOFILES)
376 AC_SUBST(WINGSMOFILES)
377 AC_SUBST(supported_locales)
379 dnl ===========================================
380 dnl             Stuff that uses X
381 dnl ===========================================
383 AC_PATH_XTRA
385 if test $no_x; then
386     AC_MSG_ERROR([The path for the X11 files not found!
387 Make sure you have X and it's headers and libraries (the -devel packages
388 in Linux) installed.])
391 X_LIBRARY_PATH=$x_libraries
392 XCFLAGS="$X_CFLAGS"
393 XLFLAGS="$X_LIBS"
394 XLIBS="-lX11 -lXmu $X_EXTRA_LIBS"
396 lib_search_path="$lib_search_path $XLFLAGS"
397 inc_search_path="$inc_search_path $XCFLAGS"
399 AC_SUBST(X_LIBRARY_PATH)
401 dnl Decide which locale function to use, setlocale() or _Xsetlocale()
402 dnl by MANOME Tomonori 
403 dnl ===========================================
404 use_locale=yes
405 AC_ARG_ENABLE(locale, AS_HELP_STRING([--disable-locale], [disable use of X locale support]),
406               use_locale=no)
408 if test "$use_locale" = yes; then
409         AC_CHECK_LIB(X11, _Xsetlocale,
410                 AC_DEFINE(X_LOCALE, 1, [define if you want support for X window's X_LOCALE (set by configure)]),,
411                 $XLFLAGS $XLIBS)
414 dnl Check whether XInternAtoms() exist
415 dnl ==================================
416 AC_CHECK_LIB(X11, XInternAtoms, 
417              AC_DEFINE(HAVE_XINTERNATOMS, 1, [define if your X server has XInternAtoms() (set by configure)]),,
418              $XLFLAGS $XLIBS)
420 dnl Check whether XConvertCase() exist
421 dnl ==================================
422 AC_CHECK_LIB(X11, XConvertCase, 
423              AC_DEFINE(HAVE_XCONVERTCASE, 1, [define if your X server has XConvertCase() (set by configure)]),,
424              $XLFLAGS $XLIBS)
426 dnl XKB keyboard language status
427 dnl ============================
428 AC_ARG_ENABLE(modelock, AS_HELP_STRING([--enable-modelock], [XKB keyboard language status support]),
429                 AC_DEFINE(XKB_MODELOCK, 1, [whether XKB language MODELOCK should be enabled]))
431 dnl Shape support
432 dnl =============
433 shape=yes
434 AC_ARG_ENABLE(shape, AS_HELP_STRING([--disable-shape], [disable shaped window extension support]),
435                 shape=$enableval, shape=yes)
436 added_xext=no
438 if test "$shape" = yes; then
439         AC_CHECK_LIB(Xext, XShapeSelectInput, [XLIBS="-lXext $XLIBS"
440                 added_xext=yes
441                 AC_DEFINE(SHAPE, 1, [define if you want support for shaped windows (set by configure)])], 
442                 shape=no, $XLFLAGS $XLIBS)
445 dnl XRandR support
446 dnl =============
447 xrandr=yes
448 AC_ARG_ENABLE(XRandR, AS_HELP_STRING([--disable-xrandr], [disable XRandR window extension support]),
449                 xrandr=$enableval, xrandr=yes)
450 added_xext=no
452 if test "$xrandr" = yes; then
453         AC_CHECK_LIB(Xrandr, XRRQueryExtension, [XLIBS="-lXrandr $XLIBS"
454                 added_xext=yes
455                 AC_DEFINE(HAVE_XRANDR, 1, [define if you want support for XRandR (set by configure)])],
456                 xrandr=no, $XLFLAGS $XLIBS)
460 dnl libWINGS uses math functions, check whether usage requires linking
461 dnl against libm
463 AC_CHECK_FUNC(atan,[mathneedslibm=no;LIBM=],[mathneedslibm=dunno])
464 if test "x$mathneedslibm" = "xdunno" ; then
465         AC_CHECK_LIB(m, atan, [LIBM=-lm])
467 AC_SUBST(LIBM)
471 dnl libWINGS uses FcPatternDel from libfontconfig
473 AC_MSG_CHECKING([for fontconfig library])
474 FCLIBS=`$PKGCONFIG fontconfig --libs`
475 if test "x$FCLIBS" = "x" ; then
476         AC_MSG_RESULT([not found])
477 else
478         AC_MSG_RESULT([found])
480 AC_SUBST(FCLIBS)
483 dnl Xft2 antialiased font support
484 dnl =============================
486 xft=yes
487 XFTLIBS=""
489 if test "x$PKGCONFIG" != x -a "`$PKGCONFIG xft; echo $?`" = 0; then
490         XFTCONFIG="$PKGCONFIG xft"
491         pkgconfig_xft=yes
492 else
493         AC_CHECK_PROG(XFTCONFIG, xft-config, xft-config)
496 AC_MSG_CHECKING([for the Xft2 library])
498 if test "x$XFTCONFIG" != x; then
499         XFTLIBS=`$XFTCONFIG --libs`
500         XFTFLAGS=`$XFTCONFIG --cflags`
501         AC_MSG_RESULT([found])
502 else
503         AC_MSG_RESULT([not found])
504         echo
505         echo "ERROR!!! libXft2 is not installed or could not be found."
506         echo "         Xft2 is a requirement for building Window Maker."
507         echo "         Please install it (along with fontconfig) before continuing."
508         echo
509         exit 1
512 minXFT="2.1.0"
513 goodxft="no"
516 dnl The macro below will use $XFTFLAGS (defined above) to find Xft.h
518 WM_CHECK_XFT_VERSION($minXFT, goodxft=yes, goodxft=no)
520 if test "$goodxft" = no; then
521         echo
522         echo "ERROR!!! libXft on this system is an old version."
523         echo "         Please consider upgrading to at least version ${minXFT}."
524         echo
525         exit 1
528 AC_SUBST(XFTFLAGS)
529 AC_SUBST(XFTLIBS)
532 dnl XINERAMA support
533 dnl ================
534 xinerama=no
535 AC_ARG_ENABLE(xinerama, AS_HELP_STRING([--enable-xinerama], [enable Xinerama extension support]),
536                 xinerama=$enableval, xinerama=no)
538 if test "$xinerama" = yes; then
539         AC_CHECK_LIB(Xinerama, XineramaQueryScreens, 
540                 [XLIBS="-lXinerama $XLIBS"
541                 xfxine=yes],
542                 xfxine=no, $XLFLAGS $XLIBS)
544         AC_CHECK_LIB(Xext, XineramaGetInfo,
545                 [sunxine=yes
546                 ], sunxine=no, $XLFLAGS $XLIBS)
548         if test "$xfxine" = yes; then
549                 xine=1
550         fi
552         if test "$sunxine" = yes; then
553             xine=1
554             AC_DEFINE(SOLARIS_XINERAMA, 1, 
555                 [define if you want support for the XINERAMA extension and are in Solaris (set by configure)])
556         fi
558         if test "$xine" = 1; then
559             AC_DEFINE(XINERAMA, 1, 
560                 [define if you want support for the XINERAMA extension (set by configure)])
561         fi
566 dnl MIT-SHM support
567 dnl ===============
568 shm=yes
569 AC_ARG_ENABLE(shm, AS_HELP_STRING([--disable-shm], [disable usage of MIT-SHM extension]),
570                 shm=$enableval, shm=yes)
572 if test "$shm" = yes; then
573         AC_CHECK_LIB(Xext, XShmAttach, ok=yes, ok=no, $XLFLAGS $XLIBS)
575         if test "$ok" = yes; then
576         AC_CHECK_FUNC(shmget, ok=yes, ok=no)
577         fi
579         if test "$ok" = yes; then
580                 if test "$added_xext" = no; then
581                         XLIBS="-lXext $XLIBS"
582                 fi
583                 AC_DEFINE(XSHM, 1, [define if X's shared memory extension is available (set by configure)])
584         fi
588 dnl R6 Style Session Management Support
589 dnl ===================================
593 #AC_DEFINE(R6SM)
594 #AC_SUBST(XSMPLIBS)
598 dnl ==============================================
599 dnl         Graphic Format Libraries
600 dnl ==============================================
602 dnl XPM Support
603 dnl ===========
604 xpm=yes
605 AC_ARG_ENABLE(xpm, AS_HELP_STRING([--disable-xpm], [disable use of XPM pixmaps through libXpm]),
606         xpm=$enableval, xpm=yes)
608 if test "$xpm" = yes; then
609     WM_CHECK_LIB(Xpm, XpmCreatePixmapFromData, [$XLFLAGS $XLIBS])
611     if test "x$ac_cv_lib_Xpm_XpmCreatePixmapFromData" = xyes; then
612         WM_CHECK_HEADER(X11/xpm.h)
613         if test "x$ac_cv_header_X11_xpm_h" = xyes; then
614                 GFXLIBS="$GFXLIBS -lXpm"
615                 supported_gfx="XPM"
616                 AC_DEFINE(USE_XPM, 1, [define if XPM libraries are available (set by configure)])
617         else
618                 supported_gfx="builtin-XPM"
619         fi
620     fi
623 AC_SUBST(XLFLAGS)
624 AC_SUBST(XLIBS)
625 AC_SUBST(X_EXTRA_LIBS)
627 dnl ===============================================
628 dnl             End of stuff that uses X
629 dnl ===============================================
631 dnl PNG Support
632 dnl ===========
633 png=yes
634 AC_ARG_ENABLE(png, AS_HELP_STRING([--disable-png], [disable PNG support through libpng]),
635         png=$enableval, png=yes, png=no)
637 if test "$png" = yes ; then
638     WM_CHECK_LIB(png, png_get_valid, [-lz -lm])
640     if test "x$ac_cv_lib_png_png_get_valid" = xyes; then
641         WM_CHECK_HEADER(png.h)
642         if test "x$ac_cv_header_png_h" = xyes; then
643             GFXLIBS="$GFXLIBS -lpng -lz" 
644             supported_gfx="$supported_gfx PNG"
645             AC_DEFINE(USE_PNG, 1, [define if PNG libraries are available (set by configure)])
646         fi
647     fi
651 dnl JPEG Support
652 dnl ============
653 jpeg=yes
654 ljpeg=""
655 AC_ARG_ENABLE(jpeg, AS_HELP_STRING([--disable-jpeg], [disable JPEG support through libjpeg]),
656         jpeg=$enableval, jpeg=yes, jpeg=no)
658 if test "$jpeg" = yes; then
659     WM_CHECK_LIB(jpeg, jpeg_destroy_compress)
661     if test "x$ac_cv_lib_jpeg_jpeg_destroy_compress" = xyes; then
663         ljpeg="-ljpeg"
665         WM_CHECK_HEADER(jpeglib.h)
666         if test "x$ac_cv_header_jpeglib_h" = xyes; then
667             GFXLIBS="$GFXLIBS -ljpeg"
668             supported_gfx="$supported_gfx JPEG"
669             AC_DEFINE(USE_JPEG, 1, [define if JPEG libraries are available (set by configure)])
670         fi
671     fi
675 dnl GIF Support
676 dnl ============
677 gif=yes
678 AC_ARG_ENABLE(gif, AS_HELP_STRING([--disable-gif], [disable GIF support through libgif or libungif]),
679         gif=$enableval, gif=yes, gif=no)
681 if test "$gif" = yes; then
682     my_libname=""
683     WM_CHECK_LIB(ungif, DGifOpenFileName, [$XLFLAGS $XLIBS])
684     if test "x$ac_cv_lib_ungif_DGifOpenFileName" = xyes; then
685         my_libname=-lungif
686     fi
688 dnl libungif is the same thing as libgif for all practical purposes.
690     if test "x$my_libname" = x; then
691         WM_CHECK_LIB(gif, DGifOpenFileName, [$XLFLAGS $XLIBS])
692         if test "x$ac_cv_lib_gif_DGifOpenFileName" = xyes; then
693             my_libname=-lgif
694         fi
695     fi
697     if test "$my_libname" != x; then
698         WM_CHECK_HEADER(gif_lib.h)
699         if test "x$ac_cv_header_gif_lib_h" = xyes; then
700             GFXLIBS="$GFXLIBS $my_libname"
701             supported_gfx="$supported_gfx GIF"
702             AC_DEFINE(USE_GIF, 1, [define if GIF libraries are available (set by configure)])
703         fi
704     fi
709 dnl TIFF Support
710 dnl ============
711 AC_ARG_ENABLE(tiff, 
712 AS_HELP_STRING([--disable-tiff], [disable use of TIFF images through libtiff]),
713         tif=$enableval, tif=yes, tif=no)
716 # TIFF can optionally have JPEG and/or zlib support. Must find out
717 # when they are supported so that correct library flags are passed during
718 # detection and linkage
721 # By default use xpm icons if tiff is not found.
722 ICONEXT="xpm"
725 if test "$tif" = yes; then
726     my_libname=""
727     WM_CHECK_LIB(tiff, TIFFGetVersion, [-lm])
728     if test "x$ac_cv_lib_tiff_TIFFGetVersion" = xyes; then
729         my_libname="-ltiff"
730     fi
732 dnl Retry with zlib
734     unset ac_cv_lib_tiff_TIFFGetVersion
735     if test "x$my_libname" = x; then
736         WM_CHECK_LIB(tiff, TIFFGetVersion, [$ljpeg -lz -lm])
737         if test "x$ac_cv_lib_tiff_TIFFGetVersion" = xyes; then
738             my_libname="-ltiff -lz"
739         fi
740     fi
742     if test "x$my_libname" = x; then
743         WM_CHECK_LIB(tiff34, TIFFGetVersion, [$ljpeg -lm])
744         if test "x$ac_cv_lib_tiff34_TIFFGetVersion" = xyes; then
745             my_libname="-ltiff34"
746         fi
747     fi
750     if test "x$my_libname" != x; then
751         WM_CHECK_HEADER(tiffio.h)
752         if test "x$ac_cv_header_tiffio_h" = xyes; then
753             GFXLIBS="$my_libname $GFXLIBS"
754             ICONEXT="tiff"
755             supported_gfx="$supported_gfx TIFF"
756             AC_DEFINE(USE_TIFF, 1, [define if TIFF libraries are available (set by configure)])     
757         fi
758     fi
761 LIBRARY_SEARCH_PATH="$lib_search_path"
762 HEADER_SEARCH_PATH="$inc_search_path"
764 AC_SUBST(LIBRARY_SEARCH_PATH)
765 AC_SUBST(HEADER_SEARCH_PATH)
768 AC_SUBST(GFXLIBS)
769 AC_SUBST(ICONEXT)
772 dnl ==============================================
773 dnl         End of Graphic Format Libraries
774 dnl ==============================================
778 dnl stdlib.h is checked here, because of conflict in jpeglib.h
779 AC_CHECK_HEADERS(stdlib.h)
781 # AC_PREFIX_PROGRAM(wmaker)
783 dnl Support for PIXMAPDIR option
784 dnl ============================
785 AC_ARG_WITH(pixmapdir, AS_HELP_STRING([--with-pixmapdir=PATH], [specify where pixmaps are located [DATADIR/pixmaps]]))
787 if test "x$with_pixmapdir" != "x"; then
788         pixmapdir=$with_pixmapdir
789 else
790         pixmapdir=`eval echo ${datadir}/pixmaps`
793 AC_DEFINE_UNQUOTED(PIXMAPDIR, "$pixmapdir", [define an extra path for pixmaps (set by configure)])
795 pkgdatadir=`eval echo $datadir`
796 AC_DEFINE_UNQUOTED(PKGDATADIR, "$pkgdatadir/WindowMaker", [where shared data is stored (defined by configure)])
798 _sysconfdir=`eval echo $sysconfdir`
799 AC_DEFINE_UNQUOTED(SYSCONFDIR, "$_sysconfdir", [where the configuration is stored (defined by configure)])
802 dnl Support for GNUSTEP_LOCAL_ROOT, for WPrefs.app
803 dnl ==============================================
805 AC_ARG_WITH(appspath, AS_HELP_STRING([--with-gnustepdir=PATH], [specify the directory for GNUstep applications]))
807 if test "x`echo $with_gnustepdir | grep ^/`" != "x"; then
808     appspath=$with_gnustepdir
811 if test "x$appspath$GNUSTEP_LOCAL_ROOT" = "x"; then
812     wprefs_base_dir=${prefix}
813     wprefs_datadir="${datadir}/WPrefs"
814     wprefs_bindir="${bindir}"
815 else
816     gnustepdir=$appspath
818     if test "x$GNUSTEP_LOCAL_ROOT" != "x" ; then
819         gnustepdir=`echo "$GNUSTEP_LOCAL_ROOT" | sed -e "s|^${prefix}|prefix|"`
820         gnustepdir=`echo $gnustepdir | sed -e 's|^prefix|${prefix}|'`
821     fi
823     wprefs_base_dir=$gnustepdir/Applications
824     wprefs_datadir=$wprefs_base_dir/WPrefs.app
825     wprefs_bindir=$wprefs_base_dir/WPrefs.app
828 AC_SUBST(wprefs_datadir)
829 AC_SUBST(wprefs_bindir)
832 dnl Enable User Defined Menu thing
833 dnl ==================================
834 AC_ARG_ENABLE(usermenu, AS_HELP_STRING([--enable-usermenu], [user defined menus for applications]),
835 if test "$enableval" = yes; then
836         AC_DEFINE(USER_MENU, 1, [define if you want user defined menus for applications])
840 AC_OUTPUT(Makefile po/Makefile util/Makefile util/po/Makefile \
841         WINGs/Makefile WINGs/WINGs/Makefile WINGs/Documentation/Makefile \
842         WINGs/Examples/Makefile WINGs/Resources/Makefile WINGs/Tests/Makefile \
843         WINGs/Extras/Makefile WINGs/po/Makefile \
844         wrlib/Makefile wrlib/tests/Makefile \
845         src/Makefile src/wconfig.h \
846         doc/Makefile doc/sk/Makefile doc/cs/Makefile \
847         doc/ru/Makefile \
848         WindowMaker/Makefile WindowMaker/Backgrounds/Makefile \
849         WindowMaker/Defaults/Makefile WindowMaker/IconSets/Makefile \
850         WindowMaker/Icons/Makefile WindowMaker/Pixmaps/Makefile \
851         WindowMaker/Styles/Makefile WindowMaker/Themes/Makefile \
852         WPrefs.app/Makefile WPrefs.app/tiff/Makefile WPrefs.app/xpm/Makefile \
853         WPrefs.app/po/Makefile )
856 dnl Output some helpful data for compiling wraster and WINGs/WUtil apps
857 dnl ===================================================================
859 dnl echo "WFLAGS=\"$LIBPL_INC_PATH -I$prefix/include\"" > WINGs-flags
860 dnl echo "WLIBS=\"-L$exec_prefix/lib -lWINGs -lwraster $LIBPL_LIBS $GFXLIBS -lm\""\
861 dnl     | sed -e 's|\$(prefix)|'"$prefix|" >> WINGs-flags
863 dnl The #lp# and #rp# stuff below is a hack because [ and ] get lost when
864 dnl parsed by m4
866 cat <<EOF >get-wraster-flags
867 #!/bin/sh
869 WCFLAGS="$inc_search_path"
870 WLFLAGS="$lib_search_path"
871 WLIBS="-lwraster $GFXLIBS $XLIBS -lm"
873 usage="Usage: get-wraster-flags #lp#--cflags#rp# #lp#--ldflags#rp# #lp#--libs#rp#"
875 if test \$# -eq 0; then
876       echo "\${usage}" 1>&2
877       exit 1
880 while test \$# -gt 0; do
881   case \$1 in
882     --cflags)
883         echo \$WCFLAGS
884         ;;
885     --ldflags|--lflags)
886         echo \$WLFLAGS
887         ;;
888     --libs)
889         echo \$WLIBS
890         ;;
891     *)
892         echo "\${usage}" 1>&2
893         exit 1
894         ;;
895   esac
896   shift
897 done
902 cat <<EOF > wrlib/wrlib.pc
903 Name: wrlib
904 Description: Image manipulation and conversion library
905 Version: $VERSION
906 Libs: $lib_search_path -lwraster $GFXLIBS $XLIBS -lm
907 Cflags: $inc_search_path
910 cat <<EOF >get-wings-flags
911 #!/bin/sh
913 WCFLAGS="$inc_search_path"
914 WLFLAGS="$lib_search_path"
915 WLIBS="-lWINGs -lWUtil -lwraster $GFXLIBS $XFTLIBS $XLIBS -lm $INTLIBS"
917 usage="Usage: get-wings-flags #lp#--cflags#rp# #lp#--ldflags#rp# #lp#--libs#rp#"
919 if test \$# -eq 0; then
920       echo "\${usage}" 1>&2
921       exit 1
924 while test \$# -gt 0; do
925   case \$1 in
926     --cflags)
927         echo \$WCFLAGS
928         ;;
929     --ldflags|--lflags)
930         echo \$WLFLAGS
931         ;;
932     --libs)
933         echo \$WLIBS
934         ;;
935     *)
936         echo "\${usage}" 1>&2
937         exit 1
938         ;;
939   esac
940   shift
941 done
946 cat <<EOF > WINGs/WINGs.pc
947 Name: WINGs
948 Description: Small widget set with the NeXTStep(TM) look and feel
949 Version: $VERSION
950 Requires: wrlib
951 Libs: $lib_search_path -lWINGs $XFTLIBS $XLIBS -lm $INTLIBS
952 Cflags: $inc_search_path
955 cat <<EOF >get-wutil-flags
956 #!/bin/sh
958 WCFLAGS="-I`eval echo ${includedir}`"
959 WLFLAGS="-L${_libdir}"
960 WLIBS="-lWUtil $INTLIBS"
962 usage="Usage: get-wutil-flags #lp#--cflags#rp# #lp#--ldflags#rp# #lp#--libs#rp#"
964 if test \$# -eq 0; then
965       echo "\${usage}" 1>&2
966       exit 1
969 while test \$# -gt 0; do
970   case \$1 in
971     --cflags)
972         echo \$WCFLAGS
973         ;;
974     --ldflags|--lflags)
975         echo \$WLFLAGS
976         ;;
977     --libs)
978         echo \$WLIBS
979         ;;
980     *)
981         echo "\${usage}" 1>&2
982         exit 1
983         ;;
984   esac
985   shift
986 done
991 sed 's/#lp#/[/g' get-wraster-flags | sed 's/#rp#/]/g' > wrlib/get-wraster-flags
992 sed 's/#lp#/[/g' get-wings-flags | sed 's/#rp#/]/g' > WINGs/get-wings-flags
993 sed 's/#lp#/[/g' get-wutil-flags | sed 's/#rp#/]/g' > WINGs/get-wutil-flags
995 chmod 755 wrlib/get-wraster-flags WINGs/get-wings-flags WINGs/get-wutil-flags
997 rm -f get-wraster-flags get-wings-flags get-wutil-flags
1001 dnl Spit out the configuration
1002 dnl ==========================
1004 supported_gfx="$supported_gfx builtin-PPM"
1006 if test "x$MOFILES" = "x"; then
1007         mof=None
1008 else
1009         mof=`echo $MOFILES`
1012 if test "x$MOFILES" = "x"; then
1013         languages=None
1014 else
1015         languages=`echo $MOFILES | sed 's/.mo//g'`
1018 echo
1019 echo "Window Maker was configured as follows:"
1020 echo
1021 echo "Installation path prefix            : $prefix"
1022 echo "Installation path for binaries      : $_bindir"
1023 echo "Installation path for WPrefs.app    : $wprefs_base_dir" | sed -e 's|\${prefix}|'"$prefix|"
1024 echo "Supported graphic format libraries  : $supported_gfx"
1025 echo "Use assembly routines for wrlib     : $asm_support"
1026 echo "Use inline MMX(tm) x86 assembly     : $mmx_support"
1027 echo "Antialiased text support in WINGs   : $xft"
1028 echo "Xinerama extension support          : $xinerama"
1029 echo "XRandR extension support            : $xrandr"
1030 echo "Translated message files to install : $mof"
1031 dnl echo "Supported languages beside English  : $languages"
1032 if test "x$MOFILES" != "x"; then
1033         echo "Installation path for translations  : $NLSDIR" | sed -e 's|\$(prefix)|'"$prefix|"
1035 echo
1037 dnl WM_PRINT_REDCRAP_BUG_STATUS
1039 if test "x$ac_cv_header_jpeglib_h" != xyes; then
1040 echo "WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING"
1041 echo
1042 echo "JPEG support will not be included because the JPEG library is"
1043 echo "not installed correctly or was not found. Background images"
1044 echo "from themes will not display as they usually are JPEG files."
1045 echo
1046 echo "To fix, download and install the jpeg library and/or make sure you"
1047 echo "installed all jpeg related packages, SPECIALLY the development packages"
1048 echo "like jpeg-devel (if you use some prepackaged version of libjpeg)."
1049 echo
1050 echo "WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING"
1054 dnl This is for Emacs.  I'm lazy, I know... (nicolai)
1055 dnl ================================================
1056 dnl Local Variables:
1057 dnl compile-command: "autoconf"
1058 dnl End: