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.52.0)
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 $PATH:/lib:/usr/bin:/bin:/usr/lib:/usr/ccs/lib)
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 es"
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 AC_DEFINE(XKB_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"
501 [ --disable-jpeg disable JPEG support through libjpeg],
502 jpeg=$enableval, jpeg=yes, jpeg=no)
504 if test "$jpeg" = yes; then
505 WM_CHECK_LIB(jpeg, jpeg_destroy_compress)
507 if test "x$ac_cv_lib_jpeg_jpeg_destroy_compress" = xyes; then
511 WM_CHECK_HEADER(jpeglib.h)
512 if test "x$ac_cv_header_jpeglib_h" = xyes; then
513 GFXLIBS="$GFXLIBS -ljpeg"
514 supported_gfx="$supported_gfx JPEG"
525 [ --disable-gif disable GIF support through libgif or libungif],
526 gif=$enableval, gif=yes, gif=no)
528 if test "$gif" = yes; then
530 WM_CHECK_LIB(ungif, DGifOpenFileName, [$XLFLAGS $XLIBS])
531 if test "x$ac_cv_lib_ungif_DGifOpenFileName" = xyes; then
535 dnl libungif is the same thing as libgif for all practical purposes.
537 if test "x$my_libname" = x; then
538 WM_CHECK_LIB(gif, DGifOpenFileName, [$XLFLAGS $XLIBS])
539 if test "x$ac_cv_lib_gif_DGifOpenFileName" = xyes; then
544 if test "$my_libname" != x; then
545 WM_CHECK_HEADER(gif_lib.h)
546 if test "x$ac_cv_header_gif_lib_h" = xyes; then
547 GFXLIBS="$GFXLIBS $my_libname"
548 supported_gfx="$supported_gfx GIF"
559 [ --disable-tiff disable use of TIFF images through libtiff],
560 tif=$enableval, tif=yes, tif=no)
563 # TIFF can optionally have JPEG and/or zlib support. Must find out
564 # when they are supported so that correct library flags are passed during
565 # detection and linkage
568 # By default use xpm icons if tiff is not found.
572 if test "$tif" = yes; then
574 WM_CHECK_LIB(tiff, TIFFGetVersion, [-lm])
575 if test "x$ac_cv_lib_tiff_TIFFGetVersion" = xyes; then
581 unset ac_cv_lib_tiff_TIFFGetVersion
582 if test "x$my_libname" = x; then
583 WM_CHECK_LIB(tiff, TIFFGetVersion, [$ljpeg -lz -lm])
584 if test "x$ac_cv_lib_tiff_TIFFGetVersion" = xyes; then
585 my_libname="-ltiff -lz"
589 if test "x$my_libname" = x; then
590 WM_CHECK_LIB(tiff34, TIFFGetVersion, [$ljpeg -lm])
591 if test "x$ac_cv_lib_tiff34_TIFFGetVersion" = xyes; then
592 my_libname="-ltiff34"
597 if test "x$my_libname" != x; then
598 WM_CHECK_HEADER(tiffio.h)
599 if test "x$ac_cv_header_tiffio_h" = xyes; then
600 GFXLIBS="$my_libname $GFXLIBS"
602 supported_gfx="$supported_gfx TIFF"
608 LIBRARY_SEARCH_PATH="$lib_search_path"
609 HEADER_SEARCH_PATH="$inc_search_path"
611 AC_SUBST(LIBRARY_SEARCH_PATH)
612 AC_SUBST(HEADER_SEARCH_PATH)
619 dnl ==============================================
620 dnl End of Graphic Format Libraries
621 dnl ==============================================
627 [ --enable-debug enable debugging ],, enable_debug=no)
629 if test "$enable_debug" = yes; then
631 # Efence makes things too slow. Add it by hand in the Makefiles
632 # if it is really needed.
633 # AC_CHECK_LIB(efence, malloc, LIBS="$LIBS -lefence")
638 dnl Sound support - Dan
639 dnl =============================================
642 [ --disable-sound disable sound support ],
643 sound=$enableval, sound=yes)
644 if test "$sound" = yes; then
649 # AC_PREFIX_PROGRAM(wmaker)
651 dnl Support for PIXMAPDIR option
652 dnl ============================
653 AC_ARG_WITH(pixmapdir,
654 [ --with-pixmapdir=PATH specify where pixmaps are located [DATADIR/pixmaps]])
656 if test "x$with_pixmapdir" != "x"; then
657 pixmapdir=$with_pixmapdir
659 pixmapdir=`eval echo ${datadir}/pixmaps`
662 AC_DEFINE_UNQUOTED(PIXMAPDIR, "$pixmapdir")
664 pkgdatadir=`eval echo $datadir`
665 AC_DEFINE_UNQUOTED(PKGDATADIR, "$pkgdatadir/WindowMaker")
667 _sysconfdir=`eval echo $sysconfdir`
668 AC_DEFINE_UNQUOTED(SYSCONFDIR, "$_sysconfdir/WindowMaker")
671 dnl Support for GNUSTEP_LOCAL_ROOT, for WPrefs.app
672 dnl ==============================================
676 AC_ARG_WITH(appspath,
677 [ --with-appspath=PATH specify the directory for GNUstep applications], appspath=$withval )
679 if test "x$appspath" = "x"; then
680 gnustepdir='$(prefix)/GNUstep'
682 if test "x$GNUSTEP_LOCAL_ROOT" != "x" ; then
683 gnustepdir=`echo "$GNUSTEP_LOCAL_ROOT" | sed -e "s|^${prefix}|prefix|"`
684 gnustepdir=`echo $gnustepdir | sed -e 's|^prefix|${prefix}|'`
687 with_appspath=$gnustepdir/Apps
690 wprefsdir=$with_appspath/WPrefs.app
696 dnl Enable single appicon per wm instance+class combo -cls
697 dnl =====================================================
698 AC_ARG_ENABLE(single-icon,
699 [ --enable-single-icon use single application icon per WM_INSTANCE+WM_CLASS
701 if test "$enableval" = yes; then
702 AC_DEFINE(REDUCE_APPICONS)
708 dnl Nicolai: Program tests for Documentation Section
709 dnl =================================================
711 dnl AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, ,$PATH)
712 dnl if test "x$MAKEINFO" != "x" ; then
713 dnl DOCTYPES="$DOCTYPES info_doc"
715 dnl AC_CHECK_PROG(TEX, tex, tex, ,$PATH)
716 dnl if test "x$TEX" != "x" ; then
717 dnl DOCTYPES="$DOCTYPES dvi_doc"
719 dnl AC_CHECK_PROG(DVIPS, dvips, dvips, ,$PATH)
720 dnl if test "x$DVIPS" != "x" ; then
721 dnl DOCTYPES="$DOCTYPES ps_doc"
723 dnl AC_CHECK_PROG(PERL, perl, perl, ,$PATH)
724 dnl if test "x$PERL" != "x" ; then
725 dnl DOCTYPES="$DOCTYPES html_doc"
727 dnl AC_PATH_PROG(PERL_PATH, perl, perl, ,$PATH)
728 dnl AC_CHECK_PROG(TEXI2HTML, texi2html, texi2html, ,$PATH)
730 dnl AC_SUBST(DOCTYPES)
732 AC_OUTPUT(Makefile po/Makefile util/Makefile test/Makefile wmlib/Makefile \
733 WINGs/Makefile WINGs/Resources/Makefile src/Makefile src/wconfig.h \
734 wrlib/Makefile doc/Makefile WindowMaker/Makefile \
735 WindowMaker/Backgrounds/Makefile WindowMaker/Defaults/Makefile \
736 WindowMaker/IconSets/Makefile WindowMaker/Icons/Makefile \
737 WindowMaker/Pixmaps/Makefile WindowMaker/Styles/Makefile \
738 WindowMaker/Themes/Makefile \
739 WPrefs.app/Makefile WPrefs.app/tiff/Makefile WPrefs.app/xpm/Makefile \
740 WPrefs.app/po/Makefile )
745 dnl Output some helpfull data for compiling WINGs apps
746 dnl ==================================================
749 dnl echo "WFLAGS=\"$LIBPL_INC_PATH -I$prefix/include\"" > WINGs-flags
750 dnl echo "WLIBS=\"-L$exec_prefix/lib -lWINGs -lwraster $LIBPL_LIBS $GFXLIBS -lm\""\
751 dnl | sed -e 's|\$(prefix)|'"$prefix|" >> WINGs-flags
753 dnl The #lp# and #rp# stuff below is a hack because [ and ] get lost when
756 cat <<EOF >get-wraster-flags
762 WCFLAGS="-I\$prefix/include $inc_search_path"
763 WLFLAGS="-L\$exec_prefix/lib $lib_search_path"
764 WLIBS="-lwraster $GFXLIBS $XLIBS -lm"
766 usage="Usage: get-wraster-flags #lp#--cflags#rp# #lp#--lflags#rp# #lp#--libs#rp#"
768 if test \$# -eq 0; then
769 echo "\${usage}" 1>&2
773 while test \$# -gt 0; do
785 echo "\${usage}" 1>&2
795 sed 's/#lp#/[/g' get-wraster-flags | sed 's/#rp#/]/g' > wrlib/get-wraster-flags
797 chmod 755 wrlib/get-wraster-flags
798 rm -f get-wraster-flags
802 dnl Spit out the configuration
803 dnl ==========================
805 supported_gfx="$supported_gfx builtin-PPM"
807 if test "x$MOFILES" = "x"; then
815 echo "Window Maker was configured as follows:"
817 echo "Installation path prefix: $prefix"
818 echo "Installation path prefix for binaries: $_bindir"
819 echo "Installation path for WPrefs.app: $wprefsdir" | sed -e 's|\$(prefix)|'"$prefix|"
820 echo "Graphic format libraries: $supported_gfx"
821 echo "Sound support: $sound"
822 echo "Translated message files to install: $mof"
823 if test "x$MOFILES" != "x"; then
824 echo "Installation path of translated messages: $NLSDIR" | sed -e 's|\$(prefix)|'"$prefix|"
827 WM_PRINT_REDCRAP_BUG_STATUS
829 if test "x$ac_cv_header_jpeglib_h" != xyes; then
830 echo "WARNING WARNING WARNING WARNING WARNING WARNING WARNING"
832 echo "JPEG support will not be included because the JPEG library is"
833 echo "not installed correctly or was not found. Background images"
834 echo "from themes will not display as they usually are JPEG files."
836 echo "WARNING WARNING WARNING WARNING WARNING WARNING WARNING"
840 dnl This is for Emacs. I'm lazy, I know... (nicolai)
841 dnl ================================================
843 dnl compile-command: "autoconf"