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