Ungeneralize wrlib DEBUG
[wmaker-crm.git] / configure.ac
blob568306bb4a5bb8b95db8d57348aa902f233b3a62
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"])
145 dnl Boehm GC
146 dnl ========
147 with_boehm_gc=no
148 AC_ARG_ENABLE([boehm-gc],
149     [AS_HELP_STRING([--enable-boehm-gc], [use Boehm GC instead of the default libc malloc() [default=no]])],
150     [with_boehm_gc=$enableval])
152 AS_IF([test "x$with_boehm_gc" = "xyes"],
153     AC_SEARCH_LIBS([GC_malloc], [gc],
154         [AC_DEFINE(USE_BOEHM_GC, 1, [Define if Boehm GC is to be used])],
155         [AC_MSG_FAILURE([--enable-boehm-gc specified but test for libgc failed])]
156     )
160 dnl ============================
161 dnl Checks for library functions
162 dnl ============================
163 dnl not used anywhere
164 AC_FUNC_MEMCMP
165 AC_FUNC_VPRINTF
166 AC_CHECK_FUNCS(gethostname select poll strerror strcasecmp strncasecmp \
167                setsid atexit mallinfo mkstemp)
169 dnl Check for inotify
170 dnl =================
171 AC_CHECK_HEADERS(sys/inotify.h, AC_DEFINE(HAVE_INOTIFY, 1, Check for inotify))
173 dnl Check CPP
174 dnl =========
175 if test "x$CPP_PATH" = x; then
176     AC_PATH_PROG(CPP_PATH, cpp, notfound, 
177                 $PATH:/lib:/usr/bin:/bin:/usr/lib:/usr/ccs/lib)
181 dnl Tell stupid Solaris cpp that the files it will process have C++ like syntax
182 dnl RedHat 5.x is broken too, so it won't make a symlink from cpp to the
183 dnl standard locations
185 if test "$CPP_PATH" = "/usr/ccs/lib/cpp" -o "$CPP_PATH" = "notfound" ; then
186     if test "$GCC" = "yes"; then
187         CPP_PATH="gcc -E -x c"
188     else 
189         if test "$CPP_PATH" = "/usr/ccs/lib/cpp"; then
190             CPP_PATH="$CPP_PATH -B"
191         else
192             echo "cpp, the C preprocessor was not found in your system."
193             echo "Create a symbolic link from it to /lib/cpp and rerun configure"
194             exit
195         fi
196     fi
198 AC_DEFINE_UNQUOTED(CPP_PATH, "$CPP_PATH", [define to the path to cpp])
202 dnl Checks for header files.
203 dnl =======================
204 AC_HEADER_SYS_WAIT
205 AC_HEADER_TIME
206 AC_CHECK_HEADERS(fcntl.h limits.h sys/ioctl.h sys/time.h sys/types.h \
207                  libintl.h sys/select.h poll.h malloc.h ctype.h string.h \
208                  strings.h)
212 dnl Checks for typedefs, structures, and compiler characteristics.
213 dnl ==============================================================
214 AC_DECL_SYS_SIGLIST
215 AC_C_CONST
216 #AC_TYPE_SIZE_T
217 #AC_TYPE_PID_T
218 AC_TYPE_SIGNAL
222 dnl Compiler/architecture specific optimizations
223 dnl ============================================
226 dnl GCC/as with MMX support
227 dnl -----------------------
229 # until we fix it, leave it disabled
230 asm_support=no
231 mmx_support=no
233 check_for_mmx_support=yes
234 AC_ARG_ENABLE(mmx, AS_HELP_STRING([--disable-mmx], [disable compilation of MMX inline assembly]),
235    [if test x$enableval != xyes; then
236     check_for_mmx_support=no
237     fi])
239 if test "$ac_cv_prog_gcc" = yes -a "$check_for_mmx_support" = yes; then
240 case $host_cpu in
241 *i?86*)
243     # gcc-3.3 or newer complains about some of our stuff without this
244     NOSTRICTALIASING="-fno-strict-aliasing"
246     AC_CACHE_CHECK(whether gcc supports x86 inline asm,
247                    ac_cv_c_inline_asm,
248                    [AC_TRY_LINK(,[{int x; asm volatile("movl %%eax, %%ebx\n\t pushal\n\t popal"::
249                           "m" (x),"m" (x),"m" (x),"m" (x),"m" (x),"m" (x),
250                           "m" (x),"m" (x),"m" (x),"m" (x),"m" (x),"m" (x));}],
251                    ac_cv_c_inline_asm=yes,
252                    ac_cv_c_inline_asm=no)])
254     if test "x$ac_cv_c_inline_asm" = xyes; then
255        AC_DEFINE(ASM_X86, 1, [define if processor is x86 (normally detected by configure)])
256        asm_support=yes
258        AC_CACHE_CHECK(whether gcc supports MMX(tm) inline asm,
259                       ac_cv_c_inline_mmx,
260                       [AC_TRY_LINK(,[asm ("movq %mm0, %mm1");],
261                       ac_cv_c_inline_mmx=yes,
262                       ac_cv_c_inline_mmx=no)])
264        if test "x$ac_cv_c_inline_mmx" = xyes; then
265           AC_DEFINE(ASM_X86_MMX, 1, [define if processor is x86 with MMX(tm) support (normally autodetected by configure)])
266           mmx_support=yes
267        fi
268     fi
269     ;;
270 esac
272 AC_SUBST(NOSTRICTALIASING)
275 dnl pkg-config
276 dnl ==========
277 dnl AC_ARG_VAR(PKGCONFIG, [pkg-config command])
278 AC_CHECK_PROG(PKGCONFIG, pkg-config, pkg-config) 
280 dnl gettext
281 dnl =======
283 dnl AM_GNU_GETTEXT
285 INTLIBS=""
287 AC_CHECK_FUNC(gettext, [HAVEGETTEXT="yes"], 
288         AC_CHECK_LIB(intl, gettext, [INTLIBS="-lintl" HAVEGETTEXT="yes"],
289                          INTLIBS="" ))
291 AC_CHECK_PROG(XGETTEXT, xgettext, xgettext)
293 if test "$XGETTEXT" != ""; then 
294     if $XGETTEXT --help 2>&1 | grep illegal >/dev/null ; then
295         echo "xgettext isn't GNU version"
296         XGETTEXT=""
297     fi
300 if test "$LINGUAS" != ""; then
301     if test "$XGETTEXT" != "" -a "$HAVEGETTEXT" != ""; then
302         AC_DEFINE(I18N, 1, [Internationalization (I18N) support (set by configure)])
303         PO=""
304         echo "xgettext and gettext() exist; will build i18n support for $LINGUAS"
305     else
306         LINGUAS=""
307         PO=""
308         echo "xgettext and libintl.a don't both exist; will not build i18n support"
309     fi
310 else
311         INTLIBS=""
312         MOFILES=""
313         WPMOFILES=""
314         UTILMOFILES=""
315         PO=""
319 dnl The Tower of Babel
320 dnl ==================
322 dnl List of supported locales
323 dnl =========================
324 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"
325 supported_wprefs_locales="bg ca cs de es et fi fr hr hu it ja ko pt ru sk zh_CN zh_TW"
326 supported_wings_locales="bg ca cs de fr sk"
327 supported_util_locales="de"
329 for lang in $LINGUAS; do
330         ok=0
331         for l in $supported_locales; do
332                 if test "$l" = "$lang"; then
333                         ok=1
334                         break
335                 fi
336         done
337         if test "$ok" = 1; then
338                 MOFILES="$MOFILES $lang.mo"
339         else
340                 echo "Locale $lang is not supported."
341         fi
342         ok=0
343         for l in $supported_wprefs_locales; do
344                 if test "$l" = "$lang"; then
345                         ok=1
346                         break
347                 fi
348         done
349         if test "$ok" = 1; then
350                 WPMOFILES="$WPMOFILES $lang.mo"
351         fi
352         ok=0
353         for l in $supported_util_locales; do
354                 if test "$l" = "$lang"; then
355                         ok=1
356                         break
357                 fi
358         done
359         if test "$ok" = 1; then
360                 UTILMOFILES="$UTILMOFILES $lang.mo"
361         fi
362         ok=0
363         for l in $supported_wings_locales; do
364                 if test "$l" = "$lang"; then
365                         ok=1
366                         break
367                 fi
368         done
369         if test "$ok" = 1; then
370                 WINGSMOFILES="$WINGSMOFILES $lang.mo"
371         fi
372 done
375 dnl Added by Oliver - Support for NLSDIR option
376 dnl ===========================================
377 AC_ARG_WITH(nlsdir, AS_HELP_STRING([--with-nlsdir=PATH], [specify where the locale stuff should go]))
379 if test "x$NLSDIR" = "x"; then
380         if test "x$with_nlsdir" != "x"; then
381                 NLSDIR=$with_nlsdir
382         else
383                 NLSDIR='$(prefix)/lib/locale'
384         fi
387 AC_ARG_WITH(menu-textdomain, AS_HELP_STRING([--with-menu-textdomain=DOMAIN], [specify gettext domain used for menu translations]),
388         [if test "x$withval" != "xno"; then
389          AC_DEFINE_UNQUOTED([MENU_TEXTDOMAIN], ["$withval"], [gettext domain used for menu translations])
390          fi])
392 AC_SUBST(INTLIBS)
393 AC_SUBST(NLSDIR)
394 AC_SUBST(MOFILES)
395 AC_SUBST(WPMOFILES)
396 AC_SUBST(UTILMOFILES)
397 AC_SUBST(WINGSMOFILES)
398 AC_SUBST(supported_locales)
400 dnl ===========================================
401 dnl             Stuff that uses X
402 dnl ===========================================
404 AC_PATH_XTRA
406 if test $no_x; then
407     AC_MSG_ERROR([The path for the X11 files not found!
408 Make sure you have X and it's headers and libraries (the -devel packages
409 in Linux) installed.])
412 X_LIBRARY_PATH=$x_libraries
413 XCFLAGS="$X_CFLAGS"
414 XLFLAGS="$X_LIBS"
415 XLIBS="-lX11 -lXmu $X_EXTRA_LIBS"
417 lib_search_path="$lib_search_path $XLFLAGS"
418 inc_search_path="$inc_search_path $XCFLAGS"
420 AC_SUBST(X_LIBRARY_PATH)
422 dnl Decide which locale function to use, setlocale() or _Xsetlocale()
423 dnl by MANOME Tomonori 
424 dnl ===========================================
425 use_locale=yes
426 AC_ARG_ENABLE(locale, AS_HELP_STRING([--disable-locale], [disable use of X locale support]),
427               use_locale=no)
429 if test "$use_locale" = yes; then
430         AC_CHECK_LIB(X11, _Xsetlocale,
431                 AC_DEFINE(X_LOCALE, 1, [define if you want support for X window's X_LOCALE (set by configure)]),,
432                 $XLFLAGS $XLIBS)
435 dnl Check whether XInternAtoms() exist
436 dnl ==================================
437 AC_CHECK_LIB(X11, XInternAtoms, 
438              AC_DEFINE(HAVE_XINTERNATOMS, 1, [define if your X server has XInternAtoms() (set by configure)]),,
439              $XLFLAGS $XLIBS)
441 dnl Check whether XConvertCase() exist
442 dnl ==================================
443 AC_CHECK_LIB(X11, XConvertCase, 
444              AC_DEFINE(HAVE_XCONVERTCASE, 1, [define if your X server has XConvertCase() (set by configure)]),,
445              $XLFLAGS $XLIBS)
447 dnl XKB keyboard language status
448 dnl ============================
449 AC_ARG_ENABLE(modelock, AS_HELP_STRING([--enable-modelock], [XKB keyboard language status support]),
450                 AC_DEFINE(XKB_MODELOCK, 1, [whether XKB language MODELOCK should be enabled]))
452 dnl Shape support
453 dnl =============
454 shape=yes
455 AC_ARG_ENABLE(shape, AS_HELP_STRING([--disable-shape], [disable shaped window extension support]),
456                 shape=$enableval, shape=yes)
457 added_xext=no
459 if test "$shape" = yes; then
460         AC_CHECK_LIB(Xext, XShapeSelectInput, [XLIBS="-lXext $XLIBS"
461                 added_xext=yes
462                 AC_DEFINE(SHAPE, 1, [define if you want support for shaped windows (set by configure)])], 
463                 shape=no, $XLFLAGS $XLIBS)
466 dnl XRandR support
467 dnl =============
468 xrandr=no
469 AC_ARG_ENABLE(xrandr, AS_HELP_STRING([--enable-xrandr], [enable XRandR window extension support]),
470                 xrandr=$enableval, xrandr=no)
471 added_xext=no
473 if test "$xrandr" = yes; then
474         AC_CHECK_LIB(Xrandr, XRRQueryExtension, [XLIBS="-lXrandr $XLIBS"
475                 added_xext=yes
476                 AC_DEFINE(HAVE_XRANDR, 1, [define if you want support for XRandR (set by configure)])],
477                 xrandr=no, $XLFLAGS $XLIBS)
481 dnl libWINGS uses math functions, check whether usage requires linking
482 dnl against libm
484 AC_CHECK_FUNC(atan,[mathneedslibm=no;LIBM=],[mathneedslibm=dunno])
485 if test "x$mathneedslibm" = "xdunno" ; then
486         AC_CHECK_LIB(m, atan, [LIBM=-lm])
488 AC_SUBST(LIBM)
492 dnl libWINGS uses FcPatternDel from libfontconfig
494 AC_MSG_CHECKING([for fontconfig library])
495 FCLIBS=`$PKGCONFIG fontconfig --libs`
496 if test "x$FCLIBS" = "x" ; then
497         AC_MSG_RESULT([not found])
498 else
499         AC_MSG_RESULT([found])
501 AC_SUBST(FCLIBS)
504 dnl Xft2 antialiased font support
505 dnl =============================
507 xft=yes
508 XFTLIBS=""
510 if test "x$PKGCONFIG" != x -a "`$PKGCONFIG xft; echo $?`" = 0; then
511         XFTCONFIG="$PKGCONFIG xft"
512         pkgconfig_xft=yes
513 else
514         AC_CHECK_PROG(XFTCONFIG, xft-config, xft-config)
517 AC_MSG_CHECKING([for the Xft2 library])
519 if test "x$XFTCONFIG" != x; then
520         XFTLIBS=`$XFTCONFIG --libs`
521         XFTFLAGS=`$XFTCONFIG --cflags`
522         AC_MSG_RESULT([found])
523 else
524         AC_MSG_RESULT([not found])
525         echo
526         echo "ERROR!!! libXft2 is not installed or could not be found."
527         echo "         Xft2 is a requirement for building Window Maker."
528         echo "         Please install it (along with fontconfig) before continuing."
529         echo
530         exit 1
533 minXFT="2.1.0"
534 goodxft="no"
537 dnl The macro below will use $XFTFLAGS (defined above) to find Xft.h
539 WM_CHECK_XFT_VERSION($minXFT, goodxft=yes, goodxft=no)
541 if test "$goodxft" = no; then
542         echo
543         echo "ERROR!!! libXft on this system is an old version."
544         echo "         Please consider upgrading to at least version ${minXFT}."
545         echo
546         exit 1
549 AC_SUBST(XFTFLAGS)
550 AC_SUBST(XFTLIBS)
553 dnl XINERAMA support
554 dnl ================
555 xinerama=no
556 AC_ARG_ENABLE(xinerama, AS_HELP_STRING([--enable-xinerama], [enable Xinerama extension support]),
557                 xinerama=$enableval, xinerama=no)
559 if test "$xinerama" = yes; then
560         AC_CHECK_LIB(Xinerama, XineramaQueryScreens, 
561                 [XLIBS="-lXinerama $XLIBS"
562                 xfxine=yes],
563                 xfxine=no, $XLFLAGS $XLIBS)
565         AC_CHECK_LIB(Xext, XineramaGetInfo,
566                 [sunxine=yes
567                 ], sunxine=no, $XLFLAGS $XLIBS)
569         if test "$xfxine" = yes; then
570                 xine=1
571         fi
573         if test "$sunxine" = yes; then
574             xine=1
575             AC_DEFINE(SOLARIS_XINERAMA, 1, 
576                 [define if you want support for the XINERAMA extension and are in Solaris (set by configure)])
577         fi
579         if test "$xine" = 1; then
580             AC_DEFINE(XINERAMA, 1, 
581                 [define if you want support for the XINERAMA extension (set by configure)])
582         fi
587 dnl MIT-SHM support
588 dnl ===============
589 shm=yes
590 AC_ARG_ENABLE(shm, AS_HELP_STRING([--disable-shm], [disable usage of MIT-SHM extension]),
591                 shm=$enableval, shm=yes)
593 if test "$shm" = yes; then
594         AC_CHECK_LIB(Xext, XShmAttach, ok=yes, ok=no, $XLFLAGS $XLIBS)
596         if test "$ok" = yes; then
597         AC_CHECK_FUNC(shmget, ok=yes, ok=no)
598         fi
600         if test "$ok" = yes; then
601                 if test "$added_xext" = no; then
602                         XLIBS="-lXext $XLIBS"
603                 fi
604                 AC_DEFINE(XSHM, 1, [define if X's shared memory extension is available (set by configure)])
605         fi
609 dnl R6 Style Session Management Support
610 dnl ===================================
614 #AC_DEFINE(R6SM)
615 #AC_SUBST(XSMPLIBS)
619 dnl ==============================================
620 dnl         Graphic Format Libraries
621 dnl ==============================================
623 dnl XPM Support
624 dnl ===========
625 xpm=yes
626 AC_ARG_ENABLE(xpm, AS_HELP_STRING([--disable-xpm], [disable use of XPM pixmaps through libXpm]),
627         xpm=$enableval, xpm=yes)
629 if test "$xpm" = yes; then
630     WM_CHECK_LIB(Xpm, XpmCreatePixmapFromData, [$XLFLAGS $XLIBS])
632     if test "x$ac_cv_lib_Xpm_XpmCreatePixmapFromData" = xyes; then
633         WM_CHECK_HEADER(X11/xpm.h)
634         if test "x$ac_cv_header_X11_xpm_h" = xyes; then
635                 GFXLIBS="$GFXLIBS -lXpm"
636                 supported_gfx="XPM"
637                 AC_DEFINE(USE_XPM, 1, [define if XPM libraries are available (set by configure)])
638         else
639                 supported_gfx="builtin-XPM"
640         fi
641     fi
644 AC_SUBST(XLFLAGS)
645 AC_SUBST(XLIBS)
646 AC_SUBST(X_EXTRA_LIBS)
648 dnl ===============================================
649 dnl             End of stuff that uses X
650 dnl ===============================================
652 dnl PNG Support
653 dnl ===========
654 png=yes
655 AC_ARG_ENABLE(png, AS_HELP_STRING([--disable-png], [disable PNG support through libpng]),
656         png=$enableval, png=yes, png=no)
658 if test "$png" = yes ; then
659     WM_CHECK_LIB(png, png_get_valid, [-lz -lm])
661     if test "x$ac_cv_lib_png_png_get_valid" = xyes; then
662         WM_CHECK_HEADER(png.h)
663         if test "x$ac_cv_header_png_h" = xyes; then
664             GFXLIBS="$GFXLIBS -lpng -lz" 
665             supported_gfx="$supported_gfx PNG"
666             AC_DEFINE(USE_PNG, 1, [define if PNG libraries are available (set by configure)])
667         fi
668     fi
672 dnl JPEG Support
673 dnl ============
674 jpeg=yes
675 ljpeg=""
676 AC_ARG_ENABLE(jpeg, AS_HELP_STRING([--disable-jpeg], [disable JPEG support through libjpeg]),
677         jpeg=$enableval, jpeg=yes, jpeg=no)
679 if test "$jpeg" = yes; then
680     WM_CHECK_LIB(jpeg, jpeg_destroy_compress)
682     if test "x$ac_cv_lib_jpeg_jpeg_destroy_compress" = xyes; then
684         ljpeg="-ljpeg"
686         WM_CHECK_HEADER(jpeglib.h)
687         if test "x$ac_cv_header_jpeglib_h" = xyes; then
688             GFXLIBS="$GFXLIBS -ljpeg"
689             supported_gfx="$supported_gfx JPEG"
690             AC_DEFINE(USE_JPEG, 1, [define if JPEG libraries are available (set by configure)])
691         fi
692     fi
696 dnl GIF Support
697 dnl ============
698 gif=yes
699 AC_ARG_ENABLE(gif, AS_HELP_STRING([--disable-gif], [disable GIF support through libgif or libungif]),
700         gif=$enableval, gif=yes, gif=no)
702 if test "$gif" = yes; then
703     my_libname=""
704     WM_CHECK_LIB(ungif, DGifOpenFileName, [$XLFLAGS $XLIBS])
705     if test "x$ac_cv_lib_ungif_DGifOpenFileName" = xyes; then
706         my_libname=-lungif
707     fi
709 dnl libungif is the same thing as libgif for all practical purposes.
711     if test "x$my_libname" = x; then
712         WM_CHECK_LIB(gif, DGifOpenFileName, [$XLFLAGS $XLIBS])
713         if test "x$ac_cv_lib_gif_DGifOpenFileName" = xyes; then
714             my_libname=-lgif
715         fi
716     fi
718     if test "$my_libname" != x; then
719         WM_CHECK_HEADER(gif_lib.h)
720         if test "x$ac_cv_header_gif_lib_h" = xyes; then
721             GFXLIBS="$GFXLIBS $my_libname"
722             supported_gfx="$supported_gfx GIF"
723             AC_DEFINE(USE_GIF, 1, [define if GIF libraries are available (set by configure)])
724         fi
725     fi
730 dnl TIFF Support
731 dnl ============
732 AC_ARG_ENABLE(tiff, 
733 AS_HELP_STRING([--disable-tiff], [disable use of TIFF images through libtiff]),
734         tif=$enableval, tif=yes, tif=no)
737 # TIFF can optionally have JPEG and/or zlib support. Must find out
738 # when they are supported so that correct library flags are passed during
739 # detection and linkage
742 # By default use xpm icons if tiff is not found.
743 ICONEXT="xpm"
746 if test "$tif" = yes; then
747     my_libname=""
748     WM_CHECK_LIB(tiff, TIFFGetVersion, [-lm])
749     if test "x$ac_cv_lib_tiff_TIFFGetVersion" = xyes; then
750         my_libname="-ltiff"
751     fi
753 dnl Retry with zlib
755     unset ac_cv_lib_tiff_TIFFGetVersion
756     if test "x$my_libname" = x; then
757         WM_CHECK_LIB(tiff, TIFFGetVersion, [$ljpeg -lz -lm])
758         if test "x$ac_cv_lib_tiff_TIFFGetVersion" = xyes; then
759             my_libname="-ltiff -lz"
760         fi
761     fi
763     if test "x$my_libname" = x; then
764         WM_CHECK_LIB(tiff34, TIFFGetVersion, [$ljpeg -lm])
765         if test "x$ac_cv_lib_tiff34_TIFFGetVersion" = xyes; then
766             my_libname="-ltiff34"
767         fi
768     fi
771     if test "x$my_libname" != x; then
772         WM_CHECK_HEADER(tiffio.h)
773         if test "x$ac_cv_header_tiffio_h" = xyes; then
774             GFXLIBS="$my_libname $GFXLIBS"
775             ICONEXT="tiff"
776             supported_gfx="$supported_gfx TIFF"
777             AC_DEFINE(USE_TIFF, 1, [define if TIFF libraries are available (set by configure)])     
778         fi
779     fi
782 LIBRARY_SEARCH_PATH="$lib_search_path"
783 HEADER_SEARCH_PATH="$inc_search_path"
785 AC_SUBST(LIBRARY_SEARCH_PATH)
786 AC_SUBST(HEADER_SEARCH_PATH)
789 AC_SUBST(GFXLIBS)
790 AC_SUBST(ICONEXT)
793 dnl ==============================================
794 dnl         End of Graphic Format Libraries
795 dnl ==============================================
799 dnl stdlib.h is checked here, because of conflict in jpeglib.h
800 AC_CHECK_HEADERS(stdlib.h)
802 # AC_PREFIX_PROGRAM(wmaker)
804 dnl Support for PIXMAPDIR option
805 dnl ============================
806 AC_ARG_WITH(pixmapdir, AS_HELP_STRING([--with-pixmapdir=PATH], [specify where pixmaps are located [DATADIR/pixmaps]]))
808 if test "x$with_pixmapdir" != "x"; then
809         pixmapdir=$with_pixmapdir
810 else
811         pixmapdir=`eval echo ${datadir}/pixmaps`
814 AC_DEFINE_UNQUOTED(PIXMAPDIR, "$pixmapdir", [define an extra path for pixmaps (set by configure)])
816 pkgdatadir=`eval echo $datadir`
817 AC_DEFINE_UNQUOTED(PKGDATADIR, "$pkgdatadir/WindowMaker", [where shared data is stored (defined by configure)])
819 _sysconfdir=`eval echo $sysconfdir`
820 AC_DEFINE_UNQUOTED(SYSCONFDIR, "$_sysconfdir", [where the configuration is stored (defined by configure)])
823 dnl Support for GNUSTEP_LOCAL_ROOT, for WPrefs.app
824 dnl ==============================================
826 AC_ARG_WITH(gnustepdir, AS_HELP_STRING([--with-gnustepdir=PATH], [specify the directory for GNUstep applications]))
828 if test "x`echo $with_gnustepdir | grep ^/`" != "x"; then
829     appspath=$with_gnustepdir
832 if test "x$appspath$GNUSTEP_LOCAL_ROOT" = "x"; then
833     wprefs_base_dir=${prefix}
834     wprefs_datadir="${datadir}/WPrefs"
835     wprefs_bindir="${bindir}"
836 else
837     gnustepdir=$appspath
839     if test "x$GNUSTEP_LOCAL_ROOT" != "x" ; then
840         gnustepdir=`echo "$GNUSTEP_LOCAL_ROOT" | sed -e "s|^${prefix}|prefix|"`
841         gnustepdir=`echo $gnustepdir | sed -e 's|^prefix|${prefix}|'`
842     fi
844     wprefs_base_dir=$gnustepdir/Applications
845     wprefs_datadir=$wprefs_base_dir/WPrefs.app
846     wprefs_bindir=$wprefs_base_dir/WPrefs.app
849 AC_SUBST(wprefs_datadir)
850 AC_SUBST(wprefs_bindir)
853 dnl Enable User Defined Menu thing
854 dnl ==================================
855 AC_ARG_ENABLE(usermenu, AS_HELP_STRING([--enable-usermenu], [user defined menus for applications]),
856 if test "$enableval" = yes; then
857         AC_DEFINE(USER_MENU, 1, [define if you want user defined menus for applications])
861 gl_LD_VERSION_SCRIPT
863 AC_OUTPUT(Makefile po/Makefile util/Makefile util/po/Makefile \
864         WINGs/Makefile WINGs/WINGs/Makefile WINGs/Documentation/Makefile \
865         WINGs/Examples/Makefile WINGs/Resources/Makefile WINGs/Tests/Makefile \
866         WINGs/Extras/Makefile WINGs/po/Makefile \
867         wrlib/Makefile wrlib/tests/Makefile \
868         src/Makefile src/wconfig.h \
869         doc/Makefile doc/sk/Makefile doc/cs/Makefile \
870         doc/ru/Makefile \
871         WindowMaker/Makefile WindowMaker/Backgrounds/Makefile \
872         WindowMaker/Defaults/Makefile WindowMaker/IconSets/Makefile \
873         WindowMaker/Icons/Makefile WindowMaker/Pixmaps/Makefile \
874         WindowMaker/Styles/Makefile WindowMaker/Themes/Makefile \
875         WPrefs.app/Makefile WPrefs.app/tiff/Makefile WPrefs.app/xpm/Makefile \
876         WPrefs.app/po/Makefile )
879 dnl Output some helpful data for compiling wraster and WINGs/WUtil apps
880 dnl ===================================================================
882 dnl echo "WFLAGS=\"$LIBPL_INC_PATH -I$prefix/include\"" > WINGs-flags
883 dnl echo "WLIBS=\"-L$exec_prefix/lib -lWINGs -lwraster $LIBPL_LIBS $GFXLIBS -lm\""\
884 dnl     | sed -e 's|\$(prefix)|'"$prefix|" >> WINGs-flags
886 dnl The #lp# and #rp# stuff below is a hack because [ and ] get lost when
887 dnl parsed by m4
889 cat <<EOF >get-wraster-flags
890 #!/bin/sh
892 WCFLAGS="$inc_search_path"
893 WLFLAGS="$lib_search_path"
894 WLIBS="-lwraster $GFXLIBS $XLIBS -lm"
896 usage="Usage: get-wraster-flags #lp#--cflags#rp# #lp#--ldflags#rp# #lp#--libs#rp#"
898 if test \$# -eq 0; then
899       echo "\${usage}" 1>&2
900       exit 1
903 while test \$# -gt 0; do
904   case \$1 in
905     --cflags)
906         echo \$WCFLAGS
907         ;;
908     --ldflags|--lflags)
909         echo \$WLFLAGS
910         ;;
911     --libs)
912         echo \$WLIBS
913         ;;
914     *)
915         echo "\${usage}" 1>&2
916         exit 1
917         ;;
918   esac
919   shift
920 done
925 cat <<EOF > wrlib/wrlib.pc
926 Name: wrlib
927 Description: Image manipulation and conversion library
928 Version: $VERSION
929 Libs: $lib_search_path -lwraster $GFXLIBS $XLIBS -lm
930 Cflags: $inc_search_path
933 cat <<EOF >get-wings-flags
934 #!/bin/sh
936 WCFLAGS="$inc_search_path"
937 WLFLAGS="$lib_search_path"
938 WLIBS="-lWINGs -lWUtil -lwraster $GFXLIBS $XFTLIBS $XLIBS -lm $INTLIBS"
940 usage="Usage: get-wings-flags #lp#--cflags#rp# #lp#--ldflags#rp# #lp#--libs#rp#"
942 if test \$# -eq 0; then
943       echo "\${usage}" 1>&2
944       exit 1
947 while test \$# -gt 0; do
948   case \$1 in
949     --cflags)
950         echo \$WCFLAGS
951         ;;
952     --ldflags|--lflags)
953         echo \$WLFLAGS
954         ;;
955     --libs)
956         echo \$WLIBS
957         ;;
958     *)
959         echo "\${usage}" 1>&2
960         exit 1
961         ;;
962   esac
963   shift
964 done
969 cat <<EOF > WINGs/WINGs.pc
970 Name: WINGs
971 Description: Small widget set with the NeXTStep(TM) look and feel
972 Version: $VERSION
973 Requires: wrlib
974 Libs: $lib_search_path -lWINGs $XFTLIBS $XLIBS -lm $INTLIBS
975 Cflags: $inc_search_path
978 cat <<EOF >get-wutil-flags
979 #!/bin/sh
981 WCFLAGS="-I`eval echo ${includedir}`"
982 WLFLAGS="-L${_libdir}"
983 WLIBS="-lWUtil $INTLIBS"
985 usage="Usage: get-wutil-flags #lp#--cflags#rp# #lp#--ldflags#rp# #lp#--libs#rp#"
987 if test \$# -eq 0; then
988       echo "\${usage}" 1>&2
989       exit 1
992 while test \$# -gt 0; do
993   case \$1 in
994     --cflags)
995         echo \$WCFLAGS
996         ;;
997     --ldflags|--lflags)
998         echo \$WLFLAGS
999         ;;
1000     --libs)
1001         echo \$WLIBS
1002         ;;
1003     *)
1004         echo "\${usage}" 1>&2
1005         exit 1
1006         ;;
1007   esac
1008   shift
1009 done
1014 sed 's/#lp#/[/g' get-wraster-flags | sed 's/#rp#/]/g' > wrlib/get-wraster-flags
1015 sed 's/#lp#/[/g' get-wings-flags | sed 's/#rp#/]/g' > WINGs/get-wings-flags
1016 sed 's/#lp#/[/g' get-wutil-flags | sed 's/#rp#/]/g' > WINGs/get-wutil-flags
1018 chmod 755 wrlib/get-wraster-flags WINGs/get-wings-flags WINGs/get-wutil-flags
1020 rm -f get-wraster-flags get-wings-flags get-wutil-flags
1024 dnl Spit out the configuration
1025 dnl ==========================
1027 supported_gfx="$supported_gfx builtin-PPM"
1029 if test "x$MOFILES" = "x"; then
1030         mof=None
1031 else
1032         mof=`echo $MOFILES`
1035 if test "x$MOFILES" = "x"; then
1036         languages=None
1037 else
1038         languages=`echo $MOFILES | sed 's/.mo//g'`
1041 echo
1042 echo "Window Maker was configured as follows:"
1043 echo
1044 echo "Installation path prefix            : $prefix"
1045 echo "Installation path for binaries      : $_bindir"
1046 echo "Installation path for WPrefs.app    : $wprefs_base_dir" | sed -e 's|\${prefix}|'"$prefix|"
1047 echo "Supported graphic format libraries  : $supported_gfx"
1048 echo "Use assembly routines for wrlib     : $asm_support"
1049 echo "Use inline MMX(tm) x86 assembly     : $mmx_support"
1050 echo "Antialiased text support in WINGs   : $xft"
1051 echo "Xinerama extension support          : $xinerama"
1052 echo "XRandR extension support            : $xrandr"
1053 echo "Translated message files to install : $mof"
1054 dnl echo "Supported languages beside English  : $languages"
1055 if test "x$MOFILES" != "x"; then
1056         echo "Installation path for translations  : $NLSDIR" | sed -e 's|\$(prefix)|'"$prefix|"
1058 echo
1060 dnl WM_PRINT_REDCRAP_BUG_STATUS
1062 if test "x$ac_cv_header_jpeglib_h" != xyes; then
1063 echo "WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING"
1064 echo
1065 echo "JPEG support will not be included because the JPEG library is"
1066 echo "not installed correctly or was not found. Background images"
1067 echo "from themes will not display as they usually are JPEG files."
1068 echo
1069 echo "To fix, download and install the jpeg library and/or make sure you"
1070 echo "installed all jpeg related packages, SPECIALLY the development packages"
1071 echo "like jpeg-devel (if you use some prepackaged version of libjpeg)."
1072 echo
1073 echo "WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING"
1077 dnl This is for Emacs.  I'm lazy, I know... (nicolai)
1078 dnl ================================================
1079 dnl Local Variables:
1080 dnl compile-command: "autoconf"
1081 dnl End: