2 dnl Window Maker autoconf input.
4 dnl Process with: aclocal; autoconf; automake
9 AC_INIT(src/WindowMaker.h)
13 AM_INIT_AUTOMAKE(WindowMaker, 0.51.1)
17 # by Marcelo Magallon <mmagallo@efis.ucr.ac.cr>
18 # Turn around -rpath problem with libtool 1.0c
19 # This define should be improbable enough to not conflict with anything
22 AC_MSG_RESULT([Fixing libtool for -rpath problems.])
23 sed < libtool > libtool-2 \
24 's/^hardcode_libdir_flag_spec.*$/hardcode_libdir_flag_spec=" -D__LIBTOOL_IS_A_FOOL__ "/'
32 AM_CONFIG_HEADER(src/config.h)
35 dnl Checks for host/os name
36 dnl =======================
40 dnl Checks for programs.
41 dnl ===================
44 dnl AC_PROG_MAKE_SET -- already done by AM_INIT_AUTOMAKE
46 dnl AC_PROG_INSTALL -- already done by AM_INIT_AUTOMAKE
48 AC_PROG_GCC_TRADITIONAL
54 dnl move this earlier in the script... anyone know why this is handled
55 dnl in such a bizarre way?
57 test "x$prefix" = xNONE && prefix=$ac_default_prefix
58 dnl Let make expand exec_prefix.
59 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
62 _bindir=`eval echo $bindir`
63 _bindir=`eval echo $_bindir`
65 _libdir=`eval echo $libdir`
66 _libdir=`eval echo $_libdir`
67 lib_search_path="-L$_libdir"
69 inc_search_path=`eval echo $includedir`
70 inc_search_path="-I`eval echo $inc_search_path`"
74 dnl Check for RedHat bugs
75 dnl =====================
77 WM_CHECK_REDCRAP_BUGS($prefix,$_bindir,$_libdir)
81 dnl Specify paths to look for libraries and headers
82 dnl ===============================================
83 AC_ARG_WITH(libs-from,
84 [ --with-libs-from pass compiler flags to look for libraries],
85 [lib_search_path="$withval $lib_search_path"])
87 AC_ARG_WITH(incs-from,
88 [ --with-incs-from pass compiler flags to look for header files],
89 [inc_search_path="$withval $inc_search_path"])
93 dnl Checks for library functions.
94 dnl ============================
99 AC_CHECK_FUNCS(gethostname select poll strerror strncasecmp setpgid atexit)
101 if test "x$CPP_PATH" = x; then
102 AC_PATH_PROG(CPP_PATH, cpp, notfound,
103 /lib:/usr/bin:/bin:/usr/lib:/usr/ccs/lib:$PATH)
107 dnl Tell stupid Solaris cpp that the files it will process have C++ like syntax
108 dnl RedHat 5.x is broken too, so it won't make a symlink from cpp to the
109 dnl standard locations
111 if test "$CPP_PATH" = "/usr/ccs/lib/cpp" -o "$CPP_PATH" = "notfound" ; then
112 if test "$GCC" = "yes"; then
113 CPP_PATH="gcc -E -x c"
115 if test "$CPP_PATH" = "/usr/ccs/lib/cpp"; then
116 CPP_PATH="$CPP_PATH -B"
118 echo "cpp, the C preprocessor was not found in your system."
119 echo "Create a symbolic link from it to /lib/cpp and rerun configure"
124 AC_DEFINE_UNQUOTED(CPP_PATH, "$CPP_PATH")
128 dnl Checks for header files.
129 dnl =======================
133 AC_CHECK_HEADERS(fcntl.h limits.h sys/ioctl.h sys/time.h sys/types.h\
134 libintl.h sys/select.h poll.h)
138 dnl Checks for typedefs, structures, and compiler characteristics.
139 dnl ==============================================================
158 AC_CHECK_FUNC(gettext, [HAVEGETTEXT="yes"],
159 AC_CHECK_LIB(intl, gettext, [INTLIBS="-lintl" HAVEGETTEXT="yes"],
162 AC_CHECK_PROG(XGETTEXT, xgettext, xgettext)
164 if test "$XGETTEXT" != ""; then
165 if $XGETTEXT --help 2>&1 | grep illegal >/dev/null ; then
166 echo "xgettext isn't GNU version"
171 if test "$LINGUAS" != ""; then
172 if test "$XGETTEXT" != "" -a "$HAVEGETTEXT" != ""; then
175 # if test "$LINGUAS" = ""; then
176 # ling=` (cd src/po; /bin/ls *.po) `
178 # lcode=`basename $l .po`
179 # LINGUAS="$LINGUAS $lcode"
182 echo "xgettext and gettext() exist; will build i18n support for $LINGUAS"
186 echo "xgettext and libintl.a don't both exist; will not build i18n support"
196 dnl The Tower of Babel
197 dnl ==================
199 dnl List of supported locales
200 dnl -------------------------
201 supported_locales="cs de es fr gl it ja ko nl no pt ru se tr fi hr el pl ro dk zh_TW.Big5"
202 supported_wprefs_locales="pt hr fr ko ja cs zh_TW.Big5"
204 for lang in $LINGUAS; do
206 for l in $supported_locales; do
207 if test "$l" = "$lang"; then
212 if test "$ok" = 1; then
213 MOFILES="$MOFILES $lang.mo"
215 echo "Locale $lang is not supported."
218 for l in $supported_wprefs_locales; do
219 if test "$l" = "$lang"; then
224 if test "$ok" = 1; then
225 WPMOFILES="$WPMOFILES $lang.mo"
230 dnl Kanji Characters support
231 dnl ========================
234 [ --enable-kanji multibyte character support (kanji, Korean etc.)],,
237 if test "$enable_kanji" = yes; then
240 AC_CHECK_LIB(xpg4, setlocale, [LIBS="$LIBS -lxpg4"]);;
249 dnl Added by Oliver - Support for NLSDIR option, Hi Oliver!
250 dnl ===========================================
252 [ --with-nlsdir=PATH specify where the locale stuff should go ])
255 if test "x$NLSDIR" = "x"; then
256 if test "x$with_nlsdir" != "x"; then
259 NLSDIR='$(prefix)/lib/locale'
270 dnl Support for various hint things
271 dnl ===============================
275 [ --enable-gnome enable stuff needed for GNOME ],
276 [if test x$enableval = xyes; then
277 AC_DEFINE(GNOME_STUFF)
283 [ --enable-kde enable support for KDE window manager (kwm) hints ],
284 [if test x$enableval = xyes; then
290 AC_ARG_ENABLE(openlook,
291 [ --enable-openlook enable support for OPEN LOOK(tm) (olwm) hints ],
292 [if test x$enableval = xyes; then
293 AC_DEFINE(OLWM_HINTS)
299 dnl Disable some stuff that are duplicated in kde
300 dnl ---------------------------------------------
302 [ --enable-lite disable stuff duplicated in KDE/GNOME ],
303 [if test x$enableval = xyes; then
311 dnl ===========================================
312 dnl Stuff that uses X
313 dnl ===========================================
321 XLIBS="-lX11 $X_EXTRA_LIBS"
324 lib_search_path="$lib_search_path $XLFLAGS"
325 inc_search_path="$inc_search_path $XCFLAGS"
328 dnl Decide which locale function to use, setlocale() or _Xsetlocale()
329 dnl by MANOME Tomonori
330 dnl ===========================================
332 AC_ARG_ENABLE(locale,
333 [ --disable-locale disable use of X locale support],
336 if test "$use_locale" = yes; then
337 AC_CHECK_LIB(X11, _Xsetlocale, AC_DEFINE(X_LOCALE),, $XLFLAGS $XLIBS)
341 dnl XKB keyboard language status
342 dnl ============================
343 AC_ARG_ENABLE(modelock,
344 [ --enable-modelock XKB keyboard language status support],
345 X_CFLAGS="$X_CFLAGS -DXKB_MODELOCK",)
353 [ --disable-shape disable shaped window extension support],
354 shape=$enableval, shape=yes)
358 if test "$shape" = yes; then
359 AC_CHECK_LIB(Xext, XShapeSelectInput, [XLIBS="-lXext $XLIBS"
361 AC_DEFINE(SHAPE)], shape=no, $XLFLAGS $XLIBS)
369 [ --disable-shm disable usage of MIT-SHM extension],
370 shm=$enableval, shm=yes)
372 if test "$shm" = yes; then
373 AC_CHECK_LIB(Xext, XShmAttach, ok=yes, ok=no, $XLFLAGS $XLIBS)
375 if test "$ok" = yes; then
376 AC_CHECK_FUNC(shmget, ok=yes, ok=no)
379 if test "$ok" = yes; then
380 if test "$added_xext" = no; then
381 XLIBS="-lXext $XLIBS"
388 dnl R6 Style Session Management Support
389 dnl ===================================
398 dnl Check for libPropList
399 dnl =====================
403 WM_CHECK_LIB(PropList, PLGetString, $X_EXTRA_LIBS)
404 if test "x$ac_cv_lib_PropList_PLGetString" = xyes; then
405 WM_CHECK_HEADER(proplist.h)
406 if test "x$ac_cv_header_proplist_h" = xyes; then
411 if test "x$LIBPL" = "x"; then
413 echo "ERROR!!! libPropList is not installed, or could not be found."
414 echo " Window Maker requires libPropList to build."
415 echo " Please read INSTALL to find where you can find libPropList,"
416 echo " and install it first."
417 echo " If you already have it installed, try using the"
418 if test "x$ac_cv_lib_PropList_PLGetString" != xyes; then
419 echo " --with-libs-from flag to tell configure where the library"
420 echo " is installed and"
422 echo " --with-incs-from flag to tell configure where the header"
423 echo " files are installed"
431 dnl ==============================================
432 dnl Graphic Format Libraries
433 dnl ==============================================
443 [ --disable-xpm disable use of XPM pixmaps through libXpm],
444 xpm=$enableval, xpm=yes)
446 if test "$xpm" = yes; then
447 WM_CHECK_LIB(Xpm, XpmCreatePixmapFromData, [$XLFLAGS $XLIBS])
449 if test "x$ac_cv_lib_Xpm_XpmCreatePixmapFromData" = xyes; then
450 WM_CHECK_HEADER(X11/xpm.h)
451 if test "x$ac_cv_header_X11_xpm_h" = xyes; then
452 GFXLIBS="$GFXLIBS -lXpm"
456 supported_gfx="builtin-XPM"
467 AC_SUBST(X_EXTRA_LIBS)
469 dnl ===============================================
470 dnl End of stuff that uses X
471 dnl ===============================================
478 [ --disable-png disable PNG support through libpng],
479 png=$enableval, png=yes, png=no)
482 if test "$png" = yes ; then
483 WM_CHECK_LIB(png, png_get_valid, [-lz -lm])
485 if test "x$ac_cv_lib_png_png_get_valid" = xyes; then
486 WM_CHECK_HEADER(png.h)
487 if test "x$ac_cv_header_png_h" = xyes; then
488 GFXLIBS="$GFXLIBS -lpng -lz"
489 supported_gfx="$supported_gfx PNG"
500 [ --disable-jpeg disable JPEG support through libjpeg],
501 jpeg=$enableval, jpeg=yes, jpeg=no)
503 if test "$jpeg" = yes; then
504 WM_CHECK_LIB(jpeg, jpeg_destroy_compress)
506 if test "x$ac_cv_lib_jpeg_jpeg_destroy_compress" = xyes; then
507 WM_CHECK_HEADER(jpeglib.h)
508 if test "x$ac_cv_header_jpeglib_h" = xyes; then
509 GFXLIBS="$GFXLIBS -ljpeg"
510 supported_gfx="$supported_gfx JPEG"
521 [ --disable-gif disable GIF support through libgif or libungif],
522 gif=$enableval, gif=yes, gif=no)
524 if test "$gif" = yes; then
526 WM_CHECK_LIB(ungif, DGifOpenFileName, [$XLFLAGS $XLIBS])
527 if test "x$ac_cv_lib_ungif_DGifOpenFileName" = xyes; then
531 dnl libungif is the same thing as libgif for all practical purposes.
533 if test "x$my_libname" = x; then
534 WM_CHECK_LIB(gif, DGifOpenFileName, [$XLFLAGS $XLIBS])
535 if test "x$ac_cv_lib_gif_DGifOpenFileName" = xyes; then
540 if test "$my_libname" != x; then
541 WM_CHECK_HEADER(gif_lib.h)
542 if test "x$ac_cv_header_gif_lib_h" = xyes; then
543 GFXLIBS="$GFXLIBS -l$my_libname"
544 supported_gfx="$supported_gfx GIF"
555 [ --disable-tiff disable use of TIFF images through libtiff],
556 tif=$enableval, tif=yes, tif=no)
559 # TIFF can optionally have JPEG and/or zlib support. Must find out
560 # when they are supported so that correct library flags are passed during
561 # detection and linkage
564 # By default use xpm icons if tiff is not found.
568 if test "$tif" = yes; then
570 WM_CHECK_LIB(tiff, TIFFGetVersion, [-lm])
571 if test "x$ac_cv_lib_tiff_TIFFGetVersion" = xyes; then
577 unset ac_cv_lib_tiff_TIFFGetVersion
578 if test "x$my_libname" = x; then
579 WM_CHECK_LIB(tiff, TIFFGetVersion, [-lz -lm])
580 if test "x$ac_cv_lib_tiff_TIFFGetVersion" = xyes; then
581 my_libname="-ltiff -lz"
585 if test "x$my_libname" = x; then
586 WM_CHECK_LIB(tiff34, TIFFGetVersion, [-lm])
587 if test "x$ac_cv_lib_tiff34_TIFFGetVersion" = xyes; then
588 my_libname="-ltiff34"
593 # why the heck does debian name libtiff this way!?
595 if test "x$my_libname" = x; then
596 WM_CHECK_LIB(tiff3g, TIFFGetVersion, [-lm])
597 if test "x$ac_cv_lib_tiff3g_TIFFGetVersion" = xyes; then
598 my_libname="-ltiff3g"
602 if test "x$my_libname" != x; then
603 WM_CHECK_HEADER(tiffio.h)
604 if test "x$ac_cv_header_tiffio_h" = xyes; then
605 GFXLIBS="$my_libname $GFXLIBS"
607 supported_gfx="$supported_gfx TIFF"
613 LIBRARY_SEARCH_PATH="$lib_search_path"
614 HEADER_SEARCH_PATH="$inc_search_path"
616 AC_SUBST(LIBRARY_SEARCH_PATH)
617 AC_SUBST(HEADER_SEARCH_PATH)
624 dnl ==============================================
625 dnl End of Graphic Format Libraries
626 dnl ==============================================
632 [ --enable-debug enable debugging ],, enable_debug=no)
634 if test "$enable_debug" = yes; then
636 # Efence makes things too slow. Add it by hand in the Makefiles
637 # if it is really needed.
638 # AC_CHECK_LIB(efence, malloc, LIBS="$LIBS -lefence")
643 dnl Sound support - Dan
644 dnl =============================================
647 [ --disable-sound disable sound support ],
648 sound=$enableval, sound=yes)
649 if test "$sound" = yes; then
654 # AC_PREFIX_PROGRAM(wmaker)
656 dnl Support for PIXMAPDIR option
657 dnl ============================
658 AC_ARG_WITH(pixmapdir,
659 [ --with-pixmapdir=PATH specify where pixmaps are located [DATADIR/pixmaps]])
661 if test "x$with_pixmapdir" != "x"; then
662 pixmapdir=$with_pixmapdir
664 pixmapdir=`eval echo ${datadir}/pixmaps`
667 AC_DEFINE_UNQUOTED(PIXMAPDIR, "$pixmapdir")
669 pkgdatadir=`eval echo $datadir`
670 AC_DEFINE_UNQUOTED(PKGDATADIR, "$pkgdatadir/WindowMaker")
672 sysconfdir=`eval echo $sysconfdir`
673 AC_DEFINE_UNQUOTED(SYSCONFDIR, "$sysconfdir/WindowMaker")
676 dnl Support for GNUSTEP_LOCAL_ROOT, for WPrefs.app
677 dnl ==============================================
681 AC_ARG_WITH(appspath,
682 [ --with-appspath=PATH specify the directory for GNUstep applications], appspath=$withval )
684 if test "x$appspath" = "x"; then
685 gnustepdir='$(prefix)/GNUstep'
687 if test "x$GNUSTEP_LOCAL_ROOT" != "x" ; then
688 gnustepdir=`echo "$GNUSTEP_LOCAL_ROOT" | sed -e "s|^${prefix}|prefix|"`
689 gnustepdir=`echo $gnustepdir | sed -e 's|^prefix|${prefix}|'`
692 with_appspath=$gnustepdir/Apps
695 wprefsdir=$with_appspath/WPrefs.app
701 dnl Enable single appicon per wm instance+class combo -cls
702 dnl =====================================================
703 AC_ARG_ENABLE(single-icon,
704 [ --enable-single-icon use single application icon per WM_INSTANCE+WM_CLASS
706 if test "$enableval" = yes; then
707 AC_DEFINE(REDUCE_APPICONS)
713 dnl Nicolai: Program tests for Documentation Section
714 dnl =================================================
716 dnl AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, ,$PATH)
717 dnl if test "x$MAKEINFO" != "x" ; then
718 dnl DOCTYPES="$DOCTYPES info_doc"
720 dnl AC_CHECK_PROG(TEX, tex, tex, ,$PATH)
721 dnl if test "x$TEX" != "x" ; then
722 dnl DOCTYPES="$DOCTYPES dvi_doc"
724 dnl AC_CHECK_PROG(DVIPS, dvips, dvips, ,$PATH)
725 dnl if test "x$DVIPS" != "x" ; then
726 dnl DOCTYPES="$DOCTYPES ps_doc"
728 dnl AC_CHECK_PROG(PERL, perl, perl, ,$PATH)
729 dnl if test "x$PERL" != "x" ; then
730 dnl DOCTYPES="$DOCTYPES html_doc"
732 dnl AC_PATH_PROG(PERL_PATH, perl, perl, ,$PATH)
733 dnl AC_CHECK_PROG(TEXI2HTML, texi2html, texi2html, ,$PATH)
735 dnl AC_SUBST(DOCTYPES)
737 AC_OUTPUT(Makefile po/Makefile util/Makefile test/Makefile wmlib/Makefile \
738 WINGs/Makefile WINGs/Resources/Makefile src/Makefile src/wconfig.h \
739 wrlib/Makefile doc/Makefile WindowMaker/Makefile \
740 WindowMaker/Backgrounds/Makefile WindowMaker/Defaults/Makefile \
741 WindowMaker/IconSets/Makefile WindowMaker/Icons/Makefile \
742 WindowMaker/Pixmaps/Makefile WindowMaker/Styles/Makefile \
743 WindowMaker/Themes/Makefile \
744 WindowMaker/Themes/Night.themed/Makefile \
745 WindowMaker/Themes/Checker.themed/Makefile \
746 WPrefs.app/Makefile WPrefs.app/tiff/Makefile WPrefs.app/xpm/Makefile \
747 WPrefs.app/po/Makefile )
752 dnl Output some helpfull data for compiling WINGs apps
753 dnl ==================================================
756 dnl echo "WFLAGS=\"$LIBPL_INC_PATH -I$prefix/include\"" > WINGs-flags
757 dnl echo "WLIBS=\"-L$exec_prefix/lib -lWINGs -lwraster $LIBPL_LIBS $GFXLIBS -lm\""\
758 dnl | sed -e 's|\$(prefix)|'"$prefix|" >> WINGs-flags
760 dnl The #lp# and #rp# stuff below is a hack because [ and ] get lost when
763 cat <<EOF >get-wraster-flags
769 WCFLAGS="-I\$prefix/include $inc_search_path"
770 WLFLAGS="-L\$exec_prefix/lib $lib_search_path"
771 WLIBS="-lwraster $GFXLIBS $XLIBS -lm"
773 usage="Usage: get-wraster-flags #lp#--cflags#rp# #lp#--lflags#rp# #lp#--libs#rp#"
775 if test \$# -eq 0; then
776 echo "\${usage}" 1>&2
780 while test \$# -gt 0; do
792 echo "\${usage}" 1>&2
802 sed 's/#lp#/[/g' get-wraster-flags | sed 's/#rp#/]/g' > wrlib/get-wraster-flags
804 chmod 755 wrlib/get-wraster-flags
805 rm -f get-wraster-flags
809 dnl Spit out the configuration
810 dnl ==========================
812 supported_gfx="$supported_gfx builtin-PPM"
814 if test "x$MOFILES" = "x"; then
822 echo "Window Maker was configured as follows:"
824 echo "Installation path prefix: $prefix"
825 echo "Installation path prefix for binaries: $_bindir"
826 echo "Installation path for WPrefs.app: $wprefsdir" | sed -e 's|\$(prefix)|'"$prefix|"
827 echo "Graphic format libraries: $supported_gfx"
828 echo "Sound support: $sound"
829 echo "Translated message files to install: $mof"
830 if test "x$MOFILES" != "x"; then
831 echo "Installation path of translated messages: $NLSDIR" | sed -e 's|\$(prefix)|'"$prefix|"
835 if test "x$ac_cv_header_jpeglib_h" != xyes; then
836 echo "WARNING WARNING WARNING WARNING WARNING WARNING WARNING"
838 echo "JPEG support will not be included because the JPEG library is"
839 echo "not installed correctly or was not found. Background images"
840 echo "from themes will not display as they usually are JPEG files."
842 echo "WARNING WARNING WARNING WARNING WARNING WARNING WARNING"
846 dnl This is for Emacs. I'm lazy, I know... (nicolai)
847 dnl ================================================
849 dnl compile-command: "autoconf"