Make wmaker XRandR aware
[wmaker-crm.git] / configure.ac
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
12
13
14 AC_INIT(src/WindowMaker.h)
15
16
17 AC_CONFIG_MACRO_DIR([m4])
18 AM_INIT_AUTOMAKE(WindowMaker, 0.94.0-crm)
19 AM_CONFIG_HEADER(src/config.h)
20
21
22 dnl Checks for host/os name
23 dnl =======================
24 dnl AC_CANONICAL_HOST -- already done by AC_PROG_LIBTOOL
25
26
27 dnl Checks for programs.
28 dnl ===================
29 AC_ISC_POSIX
30 AC_PROG_CC
31 AC_PROG_LN_S
32 AC_PROG_GCC_TRADITIONAL
33 AC_PROG_LIBTOOL
34
35 AX_CFLAGS_GCC_OPTION(-Wall)
36 AX_CFLAGS_GCC_OPTION(-Wextra)
37
38 dnl Platform-specific Makefile setup
39 dnl ================================
40
41 case "${host}" in
42         *-*-linux*|*-*-cygwin*)
43                 WM_OSDEP="linux"
44         ;;
45         *-*-freebsd*)
46                 WM_OSDEP="bsd"
47                 CFLAGS="$CFLAGS -DFREEBSD"
48         ;;
49         *-*-netbsd*)
50                 WM_OSDEP="bsd"
51                 CFLAGS="$CFLAGS -DNETBSD"
52         ;;
53         *-*-openbsd*)
54                 WM_OSDEP="bsd"
55         CFLAGS="$CFLAGS -DOPENBSD"
56         ;;
57         *-*-dragonfly*)
58                 WM_OSDEP="bsd"
59                 CFLAGS="$CFLAGS -DDRAGONFLYBSD"
60         ;;
61         *-apple-darwin*)
62                 WM_OSDEP="darwin"
63         ;;
64         *-*-solaris*)
65                 WM_OSDEP="stub"         # solaris.c when done
66         ;;
67         *)
68                 WM_OSDEP="stub"
69                 CFLAGS="-DSTUB_HINT=\\\"${host}\\\""
70         ;;
71 esac
72 AC_SUBST(WM_OSDEP)
73
74
75 dnl the prefix
76 dnl ==========
77 dnl
78 dnl move this earlier in the script... anyone know why this is handled
79 dnl in such a bizarre way?
80
81 test "x$prefix" = xNONE && prefix=$ac_default_prefix
82 dnl Let make expand exec_prefix.
83 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
84
85
86 _bindir=`eval echo $bindir`
87 _bindir=`eval echo $_bindir`
88
89 _libdir=`eval echo $libdir`
90 _libdir=`eval echo $_libdir`
91 lib_search_path="-L$_libdir"
92
93 inc_search_path=`eval echo $includedir`
94 inc_search_path="-I`eval echo $inc_search_path`"
95
96 dnl
97 dnl Specify paths to look for libraries and headers
98 dnl ===============================================
99 AC_ARG_WITH(libs-from,
100 [  --with-libs-from        pass compiler flags to look for libraries],
101         [lib_search_path="$withval $lib_search_path"])
102
103 AC_ARG_WITH(incs-from,
104 [  --with-incs-from        pass compiler flags to look for header files],
105         [inc_search_path="$withval $inc_search_path"])
106
107
108
109 dnl Checks for library functions.
110 dnl ============================
111 dnl not used anywhere
112 dnl AC_FUNC_MEMCMP  
113 AC_FUNC_VPRINTF
114 AC_CHECK_FUNCS(gethostname select poll strerror strcasecmp strncasecmp \
115                setsid atexit mallinfo mkstemp snprintf vsnprintf asprintf \
116                vasprintf)
117
118 dnl ripped from samba
119 dnl 
120 AC_CACHE_CHECK([for C99 vsnprintf],_cv_HAVE_C99_VSNPRINTF,[
121 AC_TRY_RUN([
122 #include <sys/types.h>
123 #include <stdarg.h>
124 void foo(const char *format, ...) { 
125        va_list ap;
126        int len;
127        char buf[5];
128
129        va_start(ap, format);
130        len = vsnprintf(0, 0, format, ap);
131        va_end(ap);
132        if (len != 5) exit(1);
133
134        if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
135
136        exit(0);
137 }
138 main() { foo("hello"); }
139 ],
140 _cv_HAVE_C99_VSNPRINTF=yes,_cv_HAVE_C99_VSNPRINTF=no,_cv_HAVE_C99_VSNPRINTF=cross)])
141 if test x"$_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
142     AC_DEFINE(HAVE_C99_VSNPRINTF, 1, [define if you have vsnprintf with C99 semantics (set by configure)])
143 fi
144
145 dnl Check for inotify
146 dnl =================
147 AC_CHECK_HEADERS(sys/inotify.h, AC_DEFINE(HAVE_INOTIFY, 1, Check for inotify))
148
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)
154 fi
155
156 dnl
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
160 dnl
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
173 fi
174 AC_DEFINE_UNQUOTED(CPP_PATH, "$CPP_PATH", [define to the path to cpp])
175
176
177
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)
185
186
187
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
195
196
197
198 dnl Compiler/architecture specific optimizations
199 dnl ============================================
200
201
202 dnl GCC/as with MMX support
203 dnl -----------------------
204
205 # until we fix it, leave it disabled
206 asm_support=no
207 mmx_support=no
208
209 check_for_mmx_support=yes
210 AC_ARG_ENABLE(mmx,
211    [  --disable-mmx          disable compilation of MMX inline assembly ],
212    [if test x$enableval != xyes; then
213     check_for_mmx_support=no
214     fi])
215
216 if test "$ac_cv_prog_gcc" = yes -a "$check_for_mmx_support" = yes; then
217 case $host_cpu in
218 *i?86*)
219
220     # gcc-3.3 or newer complains about some of our stuff without this
221     NOSTRICTALIASING="-fno-strict-aliasing"
222
223     AC_CACHE_CHECK(whether gcc supports x86 inline asm,
224                    ac_cv_c_inline_asm,
225                    [AC_TRY_LINK(,[{int x; asm volatile("movl %%eax, %%ebx\n\t pushal\n\t popal"::
226                           "m" (x),"m" (x),"m" (x),"m" (x),"m" (x),"m" (x),
227                           "m" (x),"m" (x),"m" (x),"m" (x),"m" (x),"m" (x));}],
228                    ac_cv_c_inline_asm=yes,
229                    ac_cv_c_inline_asm=no)])
230
231     if test "x$ac_cv_c_inline_asm" = xyes; then
232        AC_DEFINE(ASM_X86, 1, [define if processor is x86 (normally detected by configure)])
233        asm_support=yes
234
235        AC_CACHE_CHECK(whether gcc supports MMX(tm) inline asm,
236                       ac_cv_c_inline_mmx,
237                       [AC_TRY_LINK(,[asm ("movq %mm0, %mm1");],
238                       ac_cv_c_inline_mmx=yes,
239                       ac_cv_c_inline_mmx=no)])
240
241        if test "x$ac_cv_c_inline_mmx" = xyes; then
242           AC_DEFINE(ASM_X86_MMX, 1, [define if processor is x86 with MMX(tm) support (normally autodetected by configure)])
243           mmx_support=yes
244        fi
245     fi
246     ;;
247 esac
248 fi
249 AC_SUBST(NOSTRICTALIASING)
250
251
252 dnl pkg-config
253 dnl ----------
254 dnl AC_ARG_VAR(PKGCONFIG, [pkg-config command])
255 AC_CHECK_PROG(PKGCONFIG, pkg-config, pkg-config) 
256
257
258 dnl gettext
259 dnl -------
260
261
262 dnl AM_GNU_GETTEXT
263
264
265
266 INTLIBS=""
267
268 AC_CHECK_FUNC(gettext, [HAVEGETTEXT="yes"], 
269         AC_CHECK_LIB(intl, gettext, [INTLIBS="-lintl" HAVEGETTEXT="yes"],
270                          INTLIBS="" ))
271
272 AC_CHECK_PROG(XGETTEXT, xgettext, xgettext)
273
274 if test "$XGETTEXT" != ""; then 
275     if $XGETTEXT --help 2>&1 | grep illegal >/dev/null ; then
276         echo "xgettext isn't GNU version"
277         XGETTEXT=""
278     fi
279 fi
280
281 if test "$LINGUAS" != ""; then
282     if test "$XGETTEXT" != "" -a "$HAVEGETTEXT" != ""; then
283         AC_DEFINE(I18N, 1, [Internationalization (I18N) support (set by configure)])
284         PO=""
285         echo "xgettext and gettext() exist; will build i18n support for $LINGUAS"
286     else
287         LINGUAS=""
288         PO=""
289         echo "xgettext and libintl.a don't both exist; will not build i18n support"
290     fi
291 else
292         INTLIBS=""
293         MOFILES=""
294         WPMOFILES=""
295         UTILMOFILES=""
296         PO=""
297 fi
298
299
300 dnl The Tower of Babel
301 dnl ==================
302
303 dnl List of supported locales
304 dnl -------------------------
305 supported_locales="be bg bs ca cs da de el es et fi fr gl hr hu hy it ja ko ms nl no pl pt ro ru sk sv tr zh_CN zh_TW"
306 supported_wprefs_locales="bg ca cs de es et fi fr hr hu it ja ko pt ru sk zh_CN zh_TW"
307 supported_wings_locales="bg ca cs de fr sk"
308 supported_util_locales="de"
309
310 for lang in $LINGUAS; do
311         ok=0
312         for l in $supported_locales; do
313                 if test "$l" = "$lang"; then
314                         ok=1
315                         break
316                 fi
317         done
318         if test "$ok" = 1; then
319                 MOFILES="$MOFILES $lang.mo"
320         else
321                 echo "Locale $lang is not supported."
322         fi
323         ok=0
324         for l in $supported_wprefs_locales; do
325                 if test "$l" = "$lang"; then
326                         ok=1
327                         break
328                 fi
329         done
330         if test "$ok" = 1; then
331                 WPMOFILES="$WPMOFILES $lang.mo"
332         fi
333         ok=0
334         for l in $supported_util_locales; do
335                 if test "$l" = "$lang"; then
336                         ok=1
337                         break
338                 fi
339         done
340         if test "$ok" = 1; then
341                 UTILMOFILES="$UTILMOFILES $lang.mo"
342         fi
343         ok=0
344         for l in $supported_wings_locales; do
345                 if test "$l" = "$lang"; then
346                         ok=1
347                         break
348                 fi
349         done
350         if test "$ok" = 1; then
351                 WINGSMOFILES="$WINGSMOFILES $lang.mo"
352         fi
353 done
354
355
356 dnl Added by Oliver - Support for NLSDIR option,   Hi Oliver!
357 dnl ===========================================
358 AC_ARG_WITH(nlsdir, 
359         [  --with-nlsdir=PATH      specify where the locale stuff should go ])
360
361
362 if test "x$NLSDIR" = "x"; then
363         if test "x$with_nlsdir" != "x"; then
364                 NLSDIR=$with_nlsdir
365         else
366                 NLSDIR='$(prefix)/lib/locale'
367         fi
368 fi
369
370
371
372 AC_SUBST(INTLIBS)
373 AC_SUBST(NLSDIR)
374 AC_SUBST(MOFILES)
375 AC_SUBST(WPMOFILES)
376 AC_SUBST(UTILMOFILES)
377 AC_SUBST(WINGSMOFILES)
378 AC_SUBST(supported_locales)
379
380
381
382 dnl Support for various hint things
383 dnl ===============================
384
385 dnl
386 dnl Beautify compilation messages
387 dnl ---------------------------------------------
388 AC_ARG_ENABLE(verbose-compile, AS_HELP_STRING([--disable-verbose-compile],
389                                [Streamline compilation messages (default off)]),
390   [
391         QUIET='@echo "     CC" $@;'
392         QUIET_AR='@echo "     AR" $@;'
393         LIBTOOL_ARG="--silent"
394         MAKEFLAGS="-s"
395         AC_SUBST(QUIET)
396         AC_SUBST(QUIET_AR)
397         AC_SUBST(LIBTOOL_ARG)
398         AC_SUBST(MAKEFLAGS)
399 ])
400
401
402 dnl ===========================================
403 dnl             Stuff that uses X
404 dnl ===========================================
405
406 AC_PATH_XTRA
407
408 if test $no_x; then
409     AC_MSG_ERROR([The path for the X11 files not found!
410 Make sure you have X and it's headers and libraries (the -devel packages
411 in Linux) installed.])
412 fi
413
414 X_LIBRARY_PATH=$x_libraries
415
416 XCFLAGS="$X_CFLAGS"
417
418 XLFLAGS="$X_LIBS"
419
420 XLIBS="-lX11 -lXmu $X_EXTRA_LIBS"
421
422
423 lib_search_path="$lib_search_path $XLFLAGS"
424 inc_search_path="$inc_search_path $XCFLAGS"
425
426
427 AC_SUBST(X_LIBRARY_PATH)
428
429
430
431 dnl Decide which locale function to use, setlocale() or _Xsetlocale()
432 dnl by MANOME Tomonori 
433 dnl ===========================================
434 use_locale=yes
435 AC_ARG_ENABLE(locale, 
436 [  --disable-locale        disable use of X locale support],
437                 use_locale=no)
438
439 if test "$use_locale" = yes; then
440         AC_CHECK_LIB(X11, _Xsetlocale,
441                 AC_DEFINE(X_LOCALE, 1, [define if you want support for X window's X_LOCALE (set by configure)]),,
442                 $XLFLAGS $XLIBS)
443 fi
444
445
446 dnl Check whether XInternAtoms() exist
447 dnl ==================================
448 AC_CHECK_LIB(X11, XInternAtoms, 
449              AC_DEFINE(HAVE_XINTERNATOMS, 1, [define if your X server has XInternAtoms() (set by configure)]),,
450              $XLFLAGS $XLIBS)
451
452 dnl Check whether XConvertCase() exist
453 dnl ==================================
454 AC_CHECK_LIB(X11, XConvertCase, 
455              AC_DEFINE(HAVE_XCONVERTCASE, 1, [define if your X server has XConvertCase() (set by configure)]),,
456              $XLFLAGS $XLIBS)
457
458
459 dnl XKB keyboard language status
460 dnl ============================
461 AC_ARG_ENABLE(modelock,
462 [  --enable-modelock       XKB keyboard language status support],
463                 AC_DEFINE(XKB_MODELOCK, 1, [whether XKB language MODELOCK should be enabled]))
464
465
466
467 dnl Shape support
468 dnl =============
469 shape=yes
470 AC_ARG_ENABLE(shape, 
471 [  --disable-shape         disable shaped window extension support],
472                 shape=$enableval, shape=yes)
473
474 added_xext=no
475
476 if test "$shape" = yes; then
477         AC_CHECK_LIB(Xext, XShapeSelectInput, [XLIBS="-lXext $XLIBS"
478                 added_xext=yes
479                 AC_DEFINE(SHAPE, 1, [define if you want support for shaped windows (set by configure)])], 
480                 shape=no, $XLFLAGS $XLIBS)
481 fi
482
483 dnl XRandR support
484 dnl =============
485 xrandr=yes
486 AC_ARG_ENABLE(XRandR,
487 [  --disable-xrandr         disable XRandR window extension support],
488                 xrandr=$enableval, xrandr=yes)
489
490 added_xext=no
491
492 if test "$xrandr" = yes; then
493         AC_CHECK_LIB(Xrandr, XRRQueryExtension, [XLIBS="-lXrandr $XLIBS"
494                 added_xext=yes
495                 AC_DEFINE(HAVE_XRANDR, 1, [define if you want support for XRandR (set by configure)])],
496                 xrandr=no, $XLFLAGS $XLIBS)
497 fi
498
499 dnl
500 dnl libWINGS uses math functions, check whether usage requires linking
501 dnl against libm
502 dnl
503 AC_CHECK_FUNC(atan,[mathneedslibm=no;LIBM=],[mathneedslibm=dunno])
504 if test "x$mathneedslibm" = "xdunno" ; then
505         AC_CHECK_LIB(m, atan, [LIBM=-lm])
506 fi
507 AC_SUBST(LIBM)
508
509
510 dnl
511 dnl libWINGS uses FcPatternDel from libfontconfig
512 dnl
513 AC_MSG_CHECKING([for fontconfig library])
514 FCLIBS=`$PKGCONFIG fontconfig --libs`
515 if test "x$FCLIBS" = "x" ; then
516         AC_MSG_RESULT([not found])
517 else
518         AC_MSG_RESULT([found])
519 fi
520 AC_SUBST(FCLIBS)
521
522
523 dnl Xft2 antialiased font support
524 dnl =============================
525
526 xft=yes
527 XFTLIBS=""
528
529 if test "x$PKGCONFIG" != x -a "`$PKGCONFIG xft; echo $?`" = 0; then
530         XFTCONFIG="$PKGCONFIG xft"
531         pkgconfig_xft=yes
532 else
533         AC_CHECK_PROG(XFTCONFIG, xft-config, xft-config)
534 fi
535
536 AC_MSG_CHECKING([for the Xft2 library])
537
538 if test "x$XFTCONFIG" != x; then
539         XFTLIBS=`$XFTCONFIG --libs`
540         XFTFLAGS=`$XFTCONFIG --cflags`
541         AC_MSG_RESULT([found])
542 else
543         AC_MSG_RESULT([not found])
544         echo
545         echo "ERROR!!! libXft2 is not installed or could not be found."
546         echo "         Xft2 is a requirement for building Window Maker."
547         echo "         Please install it (along with fontconfig) before continuing."
548         echo
549         exit 1
550 fi
551
552 minXFT="2.1.0"
553 goodxft="no"
554
555 dnl
556 dnl The macro below will use $XFTFLAGS (defined above) to find Xft.h
557 dnl
558 WM_CHECK_XFT_VERSION($minXFT, goodxft=yes, goodxft=no)
559
560 if test "$goodxft" = no; then
561         echo
562         echo "ERROR!!! libXft on this system is an old version."
563         echo "         Please consider upgrading to at least version ${minXFT}."
564         echo
565         exit 1
566 fi
567
568 AC_SUBST(XFTFLAGS)
569 AC_SUBST(XFTLIBS)
570
571
572 dnl XINERAMA support
573 dnl ================
574 xinerama=no
575 AC_ARG_ENABLE(xinerama,
576 [  --enable-xinerama       enable Xinerama extension support],
577                 xinerama=$enableval, xinerama=no)
578
579 if test "$xinerama" = yes; then
580         AC_CHECK_LIB(Xinerama, XineramaQueryScreens, 
581                 [XLIBS="-lXinerama $XLIBS"
582                 xfxine=yes],
583                 xfxine=no, $XLFLAGS $XLIBS)
584
585         AC_CHECK_LIB(Xext, XineramaGetInfo,
586                 [sunxine=yes
587                 ], sunxine=no, $XLFLAGS $XLIBS)
588
589         if test "$xfxine" = yes; then
590                 xine=1
591         fi
592
593         if test "$sunxine" = yes; then
594             xine=1
595             AC_DEFINE(SOLARIS_XINERAMA, 1, 
596                 [define if you want support for the XINERAMA extension and are in Solaris (set by configure)])
597         fi
598
599         if test "$xine" = 1; then
600             AC_DEFINE(XINERAMA, 1, 
601                 [define if you want support for the XINERAMA extension (set by configure)])
602         fi
603 fi
604
605
606
607 dnl MIT-SHM support
608 dnl ===============
609 shm=yes
610 AC_ARG_ENABLE(shm,
611 [  --disable-shm           disable usage of MIT-SHM extension],
612                 shm=$enableval, shm=yes)
613
614 if test "$shm" = yes; then
615         AC_CHECK_LIB(Xext, XShmAttach, ok=yes, ok=no, $XLFLAGS $XLIBS)
616
617         if test "$ok" = yes; then
618         AC_CHECK_FUNC(shmget, ok=yes, ok=no)
619         fi
620
621         if test "$ok" = yes; then
622                 if test "$added_xext" = no; then
623                         XLIBS="-lXext $XLIBS"
624                 fi
625                 AC_DEFINE(XSHM, 1, [define if X's shared memory extension is available (set by configure)])
626         fi
627 fi
628
629
630 dnl R6 Style Session Management Support
631 dnl ===================================
632
633 #
634 #
635 #AC_DEFINE(R6SM)
636 #AC_SUBST(XSMPLIBS)
637 #
638
639
640 dnl ==============================================
641 dnl         Graphic Format Libraries
642 dnl ==============================================
643
644
645
646
647
648 dnl XPM Support
649 dnl ===========
650 xpm=yes
651 AC_ARG_ENABLE(xpm, 
652 [  --disable-xpm           disable use of XPM pixmaps through libXpm],
653         xpm=$enableval, xpm=yes)
654
655 if test "$xpm" = yes; then
656     WM_CHECK_LIB(Xpm, XpmCreatePixmapFromData, [$XLFLAGS $XLIBS])
657
658     if test "x$ac_cv_lib_Xpm_XpmCreatePixmapFromData" = xyes; then
659         WM_CHECK_HEADER(X11/xpm.h)
660         if test "x$ac_cv_header_X11_xpm_h" = xyes; then
661                 GFXLIBS="$GFXLIBS -lXpm"
662                 supported_gfx="XPM"
663                 AC_DEFINE(USE_XPM, 1, [define if XPM libraries are available (set by configure)])
664         else
665                 supported_gfx="builtin-XPM"
666         fi
667     fi
668 fi
669
670 AC_SUBST(XLFLAGS)
671 AC_SUBST(XLIBS)
672 AC_SUBST(X_EXTRA_LIBS)
673
674 dnl ===============================================
675 dnl             End of stuff that uses X
676 dnl ===============================================
677
678
679
680 dnl PNG Support
681 dnl ===========
682 png=yes
683 AC_ARG_ENABLE(png, 
684 [  --disable-png           disable PNG support through libpng],
685         png=$enableval, png=yes, png=no)
686
687
688 if test "$png" = yes ; then
689     WM_CHECK_LIB(png, png_get_valid, [-lz -lm])
690
691     if test "x$ac_cv_lib_png_png_get_valid" = xyes; then
692         WM_CHECK_HEADER(png.h)
693         if test "x$ac_cv_header_png_h" = xyes; then
694             GFXLIBS="$GFXLIBS -lpng -lz" 
695             supported_gfx="$supported_gfx PNG"
696             AC_DEFINE(USE_PNG, 1, [define if PNG libraries are available (set by configure)])
697         fi
698     fi
699 fi
700
701
702 dnl JPEG Support
703 dnl ============
704 jpeg=yes
705 ljpeg=""
706 AC_ARG_ENABLE(jpeg,
707 [  --disable-jpeg          disable JPEG support through libjpeg],
708         jpeg=$enableval, jpeg=yes, jpeg=no)
709
710 if test "$jpeg" = yes; then
711     WM_CHECK_LIB(jpeg, jpeg_destroy_compress)
712
713     if test "x$ac_cv_lib_jpeg_jpeg_destroy_compress" = xyes; then
714
715         ljpeg="-ljpeg"
716
717         WM_CHECK_HEADER(jpeglib.h)
718         if test "x$ac_cv_header_jpeglib_h" = xyes; then
719             GFXLIBS="$GFXLIBS -ljpeg"
720             supported_gfx="$supported_gfx JPEG"
721             AC_DEFINE(USE_JPEG, 1, [define if JPEG libraries are available (set by configure)])
722         fi
723     fi
724 fi
725
726
727 dnl GIF Support
728 dnl ============
729 gif=yes
730 AC_ARG_ENABLE(gif,
731 [  --disable-gif           disable GIF support through libgif or libungif],
732         gif=$enableval, gif=yes, gif=no)
733
734 if test "$gif" = yes; then
735     my_libname=""
736     WM_CHECK_LIB(ungif, DGifOpenFileName, [$XLFLAGS $XLIBS])
737     if test "x$ac_cv_lib_ungif_DGifOpenFileName" = xyes; then
738         my_libname=-lungif
739     fi
740 dnl
741 dnl libungif is the same thing as libgif for all practical purposes.
742 dnl
743     if test "x$my_libname" = x; then
744         WM_CHECK_LIB(gif, DGifOpenFileName, [$XLFLAGS $XLIBS])
745         if test "x$ac_cv_lib_gif_DGifOpenFileName" = xyes; then
746             my_libname=-lgif
747         fi
748     fi
749
750     if test "$my_libname" != x; then
751         WM_CHECK_HEADER(gif_lib.h)
752         if test "x$ac_cv_header_gif_lib_h" = xyes; then
753             GFXLIBS="$GFXLIBS $my_libname"
754             supported_gfx="$supported_gfx GIF"
755             AC_DEFINE(USE_GIF, 1, [define if GIF libraries are available (set by configure)])
756         fi
757     fi
758 fi
759
760
761
762 dnl TIFF Support
763 dnl ============
764 AC_ARG_ENABLE(tiff, 
765 [  --disable-tiff          disable use of TIFF images through libtiff],
766         tif=$enableval, tif=yes, tif=no)
767
768 #
769 # TIFF can optionally have JPEG and/or zlib support. Must find out
770 # when they are supported so that correct library flags are passed during
771 # detection and linkage
772 #
773 #
774 # By default use xpm icons if tiff is not found.
775 ICONEXT="xpm"
776 #
777
778 if test "$tif" = yes; then
779     my_libname=""
780     WM_CHECK_LIB(tiff, TIFFGetVersion, [-lm])
781     if test "x$ac_cv_lib_tiff_TIFFGetVersion" = xyes; then
782         my_libname="-ltiff"
783     fi
784 dnl
785 dnl Retry with zlib
786 dnl
787     unset ac_cv_lib_tiff_TIFFGetVersion
788     if test "x$my_libname" = x; then
789         WM_CHECK_LIB(tiff, TIFFGetVersion, [$ljpeg -lz -lm])
790         if test "x$ac_cv_lib_tiff_TIFFGetVersion" = xyes; then
791             my_libname="-ltiff -lz"
792         fi
793     fi
794
795     if test "x$my_libname" = x; then
796         WM_CHECK_LIB(tiff34, TIFFGetVersion, [$ljpeg -lm])
797         if test "x$ac_cv_lib_tiff34_TIFFGetVersion" = xyes; then
798             my_libname="-ltiff34"
799         fi
800     fi
801
802
803     if test "x$my_libname" != x; then
804         WM_CHECK_HEADER(tiffio.h)
805         if test "x$ac_cv_header_tiffio_h" = xyes; then
806             GFXLIBS="$my_libname $GFXLIBS"
807             ICONEXT="tiff"
808             supported_gfx="$supported_gfx TIFF"
809             AC_DEFINE(USE_TIFF, 1, [define if TIFF libraries are available (set by configure)])     
810         fi
811     fi
812 fi
813
814 LIBRARY_SEARCH_PATH="$lib_search_path"
815 HEADER_SEARCH_PATH="$inc_search_path"
816
817 AC_SUBST(LIBRARY_SEARCH_PATH)
818 AC_SUBST(HEADER_SEARCH_PATH)
819
820
821 AC_SUBST(GFXLIBS)
822 AC_SUBST(ICONEXT)
823
824
825 dnl ==============================================
826 dnl         End of Graphic Format Libraries
827 dnl ==============================================
828
829
830 dnl
831 dnl stdlib.h is checked here, because of conflict in jpeglib.h
832 AC_CHECK_HEADERS(stdlib.h)
833
834 # AC_PREFIX_PROGRAM(wmaker)
835
836 dnl Support for PIXMAPDIR option
837 dnl ============================
838 AC_ARG_WITH(pixmapdir,
839 [  --with-pixmapdir=PATH   specify where pixmaps are located [DATADIR/pixmaps]])
840
841 if test "x$with_pixmapdir" != "x"; then
842         pixmapdir=$with_pixmapdir
843 else
844         pixmapdir=`eval echo ${datadir}/pixmaps`
845 fi
846
847 AC_DEFINE_UNQUOTED(PIXMAPDIR, "$pixmapdir", [define an extra path for pixmaps (set by configure)])
848
849 pkgdatadir=`eval echo $datadir`
850 AC_DEFINE_UNQUOTED(PKGDATADIR, "$pkgdatadir/WindowMaker", [where shared data is stored (defined by configure)])
851
852 _sysconfdir=`eval echo $sysconfdir`
853 AC_DEFINE_UNQUOTED(SYSCONFDIR, "$_sysconfdir", [where the configuration is stored (defined by configure)])
854
855
856 dnl Support for GNUSTEP_LOCAL_ROOT, for WPrefs.app
857 dnl ==============================================
858
859 AC_ARG_WITH(appspath,
860 [  --with-gnustepdir=PATH  specify the directory for GNUstep applications])
861
862 if test "x`echo $with_gnustepdir | grep ^/`" != "x"; then
863     appspath=$with_gnustepdir
864 fi
865
866 if test "x$appspath$GNUSTEP_LOCAL_ROOT" = "x"; then
867     wprefs_base_dir=${prefix}
868     wprefs_datadir="${datadir}/WPrefs"
869     wprefs_bindir="${bindir}"
870 else
871     gnustepdir=$appspath
872
873     if test "x$GNUSTEP_LOCAL_ROOT" != "x" ; then
874         gnustepdir=`echo "$GNUSTEP_LOCAL_ROOT" | sed -e "s|^${prefix}|prefix|"`
875         gnustepdir=`echo $gnustepdir | sed -e 's|^prefix|${prefix}|'`
876     fi
877
878     wprefs_base_dir=$gnustepdir/Applications
879     wprefs_datadir=$wprefs_base_dir/WPrefs.app
880     wprefs_bindir=$wprefs_base_dir/WPrefs.app
881 fi
882
883 AC_SUBST(wprefs_datadir)
884 AC_SUBST(wprefs_bindir)
885
886
887 dnl Enable User Defined Menu thing
888 dnl ==================================
889 AC_ARG_ENABLE(usermenu,
890 [  --enable-usermenu       user defined menus for applications
891 ],
892 if test "$enableval" = yes; then
893         AC_DEFINE(USER_MENU, 1, [define if you want user defined menus for applications])
894 fi
895 )
896
897
898 AC_OUTPUT(Makefile po/Makefile util/Makefile util/po/Makefile \
899         WINGs/Makefile WINGs/WINGs/Makefile WINGs/Documentation/Makefile \
900         WINGs/Examples/Makefile WINGs/Resources/Makefile WINGs/Tests/Makefile \
901         WINGs/Extras/Makefile WINGs/po/Makefile \
902         wrlib/Makefile wrlib/tests/Makefile \
903         src/Makefile src/wconfig.h \
904         doc/Makefile doc/sk/Makefile doc/cs/Makefile \
905         doc/ru/Makefile \
906         WindowMaker/Makefile WindowMaker/Backgrounds/Makefile \
907         WindowMaker/Defaults/Makefile WindowMaker/IconSets/Makefile \
908         WindowMaker/Icons/Makefile WindowMaker/Pixmaps/Makefile \
909         WindowMaker/Styles/Makefile WindowMaker/Themes/Makefile \
910         WPrefs.app/Makefile WPrefs.app/tiff/Makefile WPrefs.app/xpm/Makefile \
911         WPrefs.app/po/Makefile )
912
913
914
915 dnl
916 dnl Output some helpful data for compiling wraster and WINGs/WUtil apps
917 dnl ===================================================================
918 dnl
919
920 dnl echo "WFLAGS=\"$LIBPL_INC_PATH -I$prefix/include\"" > WINGs-flags
921 dnl echo "WLIBS=\"-L$exec_prefix/lib -lWINGs -lwraster $LIBPL_LIBS $GFXLIBS -lm\""\
922 dnl     | sed -e 's|\$(prefix)|'"$prefix|" >> WINGs-flags
923
924 dnl The #lp# and #rp# stuff below is a hack because [ and ] get lost when
925 dnl parsed by m4
926
927 cat <<EOF >get-wraster-flags
928 #!/bin/sh
929
930 WCFLAGS="$inc_search_path"
931 WLFLAGS="$lib_search_path"
932 WLIBS="-lwraster $GFXLIBS $XLIBS -lm"
933
934 usage="Usage: get-wraster-flags #lp#--cflags#rp# #lp#--ldflags#rp# #lp#--libs#rp#"
935
936 if test \$# -eq 0; then
937       echo "\${usage}" 1>&2
938       exit 1
939 fi
940
941 while test \$# -gt 0; do
942   case \$1 in
943     --cflags)
944         echo \$WCFLAGS
945         ;;
946     --ldflags|--lflags)
947         echo \$WLFLAGS
948         ;;
949     --libs)
950         echo \$WLIBS
951         ;;
952     *)
953         echo "\${usage}" 1>&2
954         exit 1
955         ;;
956   esac
957   shift
958 done
959
960
961 EOF
962
963 cat <<EOF > wrlib/wrlib.pc
964 Name: wrlib
965 Description: Image manipulation and conversion library
966 Version: $VERSION
967 Libs: $lib_search_path -lwraster $GFXLIBS $XLIBS -lm
968 Cflags: $inc_search_path
969 EOF
970
971 cat <<EOF >get-wings-flags
972 #!/bin/sh
973
974 WCFLAGS="$inc_search_path"
975 WLFLAGS="$lib_search_path"
976 WLIBS="-lWINGs -lWUtil -lwraster $GFXLIBS $XFTLIBS $XLIBS -lm $INTLIBS"
977
978 usage="Usage: get-wings-flags #lp#--cflags#rp# #lp#--ldflags#rp# #lp#--libs#rp#"
979
980 if test \$# -eq 0; then
981       echo "\${usage}" 1>&2
982       exit 1
983 fi
984
985 while test \$# -gt 0; do
986   case \$1 in
987     --cflags)
988         echo \$WCFLAGS
989         ;;
990     --ldflags|--lflags)
991         echo \$WLFLAGS
992         ;;
993     --libs)
994         echo \$WLIBS
995         ;;
996     *)
997         echo "\${usage}" 1>&2
998         exit 1
999         ;;
1000   esac
1001   shift
1002 done
1003
1004
1005 EOF
1006
1007 cat <<EOF > WINGs/WINGs.pc
1008 Name: WINGs
1009 Description: Small widget set with the NeXTStep(TM) look and feel
1010 Version: $VERSION
1011 Requires: wrlib
1012 Libs: $lib_search_path -lWINGs $XFTLIBS $XLIBS -lm $INTLIBS
1013 Cflags: $inc_search_path
1014 EOF
1015
1016 cat <<EOF >get-wutil-flags
1017 #!/bin/sh
1018
1019 WCFLAGS="-I`eval echo ${includedir}`"
1020 WLFLAGS="-L${_libdir}"
1021 WLIBS="-lWUtil $INTLIBS"
1022
1023 usage="Usage: get-wutil-flags #lp#--cflags#rp# #lp#--ldflags#rp# #lp#--libs#rp#"
1024
1025 if test \$# -eq 0; then
1026       echo "\${usage}" 1>&2
1027       exit 1
1028 fi
1029
1030 while test \$# -gt 0; do
1031   case \$1 in
1032     --cflags)
1033         echo \$WCFLAGS
1034         ;;
1035     --ldflags|--lflags)
1036         echo \$WLFLAGS
1037         ;;
1038     --libs)
1039         echo \$WLIBS
1040         ;;
1041     *)
1042         echo "\${usage}" 1>&2
1043         exit 1
1044         ;;
1045   esac
1046   shift
1047 done
1048
1049
1050 EOF
1051
1052 sed 's/#lp#/[/g' get-wraster-flags | sed 's/#rp#/]/g' > wrlib/get-wraster-flags
1053 sed 's/#lp#/[/g' get-wings-flags | sed 's/#rp#/]/g' > WINGs/get-wings-flags
1054 sed 's/#lp#/[/g' get-wutil-flags | sed 's/#rp#/]/g' > WINGs/get-wutil-flags
1055
1056 chmod 755 wrlib/get-wraster-flags WINGs/get-wings-flags WINGs/get-wutil-flags
1057
1058 rm -f get-wraster-flags get-wings-flags get-wutil-flags
1059
1060
1061 dnl
1062 dnl Spit out the configuration
1063 dnl ==========================
1064
1065 supported_gfx="$supported_gfx builtin-PPM"
1066
1067 if test "x$MOFILES" = "x"; then
1068         mof=None
1069 else
1070         mof=`echo $MOFILES`
1071 fi
1072
1073 if test "x$MOFILES" = "x"; then
1074         languages=None
1075 else
1076         languages=`echo $MOFILES | sed 's/.mo//g'`
1077 fi
1078
1079 echo
1080 echo "Window Maker was configured as follows:"
1081 echo
1082 echo "Installation path prefix            : $prefix"
1083 echo "Installation path for binaries      : $_bindir"
1084 echo "Installation path for WPrefs.app    : $wprefs_base_dir" | sed -e 's|\${prefix}|'"$prefix|"
1085 echo "Supported graphic format libraries  : $supported_gfx"
1086 echo "Use assembly routines for wrlib     : $asm_support"
1087 echo "Use inline MMX(tm) x86 assembly     : $mmx_support"
1088 echo "Antialiased text support in WINGs   : $xft"
1089 echo "Xinerama extension support          : $xinerama"
1090 echo "XRandR extension support            : $xrandr"
1091 echo "Translated message files to install : $mof"
1092 dnl echo "Supported languages beside English  : $languages"
1093 if test "x$MOFILES" != "x"; then
1094         echo "Installation path for translations  : $NLSDIR" | sed -e 's|\$(prefix)|'"$prefix|"
1095 fi
1096 echo
1097
1098 dnl WM_PRINT_REDCRAP_BUG_STATUS
1099
1100 if test "x$ac_cv_header_jpeglib_h" != xyes; then
1101 echo "WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING"
1102 echo
1103 echo "JPEG support will not be included because the JPEG library is"
1104 echo "not installed correctly or was not found. Background images"
1105 echo "from themes will not display as they usually are JPEG files."
1106 echo
1107 echo "To fix, download and install the jpeg library and/or make sure you"
1108 echo "installed all jpeg related packages, SPECIALLY the development packages"
1109 echo "like jpeg-devel (if you use some prepackaged version of libjpeg)."
1110 echo
1111 echo "WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING"
1112 fi
1113
1114
1115 dnl This is for Emacs.  I'm lazy, I know... (nicolai)
1116 dnl ================================================
1117 dnl Local Variables:
1118 dnl compile-command: "autoconf"
1119 dnl End:
1120