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.2)
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"
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 if test "x$my_libname" != x; then
594 WM_CHECK_HEADER(tiffio.h)
595 if test "x$ac_cv_header_tiffio_h" = xyes; then
596 GFXLIBS="$my_libname $GFXLIBS"
598 supported_gfx="$supported_gfx TIFF"
604 LIBRARY_SEARCH_PATH="$lib_search_path"
605 HEADER_SEARCH_PATH="$inc_search_path"
607 AC_SUBST(LIBRARY_SEARCH_PATH)
608 AC_SUBST(HEADER_SEARCH_PATH)
615 dnl ==============================================
616 dnl End of Graphic Format Libraries
617 dnl ==============================================
623 [ --enable-debug enable debugging ],, enable_debug=no)
625 if test "$enable_debug" = yes; then
627 # Efence makes things too slow. Add it by hand in the Makefiles
628 # if it is really needed.
629 # AC_CHECK_LIB(efence, malloc, LIBS="$LIBS -lefence")
634 dnl Sound support - Dan
635 dnl =============================================
638 [ --disable-sound disable sound support ],
639 sound=$enableval, sound=yes)
640 if test "$sound" = yes; then
645 # AC_PREFIX_PROGRAM(wmaker)
647 dnl Support for PIXMAPDIR option
648 dnl ============================
649 AC_ARG_WITH(pixmapdir,
650 [ --with-pixmapdir=PATH specify where pixmaps are located [DATADIR/pixmaps]])
652 if test "x$with_pixmapdir" != "x"; then
653 pixmapdir=$with_pixmapdir
655 pixmapdir=`eval echo ${datadir}/pixmaps`
658 AC_DEFINE_UNQUOTED(PIXMAPDIR, "$pixmapdir")
660 pkgdatadir=`eval echo $datadir`
661 AC_DEFINE_UNQUOTED(PKGDATADIR, "$pkgdatadir/WindowMaker")
663 _sysconfdir=`eval echo $sysconfdir`
664 AC_DEFINE_UNQUOTED(SYSCONFDIR, "$_sysconfdir/WindowMaker")
667 dnl Support for GNUSTEP_LOCAL_ROOT, for WPrefs.app
668 dnl ==============================================
672 AC_ARG_WITH(appspath,
673 [ --with-appspath=PATH specify the directory for GNUstep applications], appspath=$withval )
675 if test "x$appspath" = "x"; then
676 gnustepdir='$(prefix)/GNUstep'
678 if test "x$GNUSTEP_LOCAL_ROOT" != "x" ; then
679 gnustepdir=`echo "$GNUSTEP_LOCAL_ROOT" | sed -e "s|^${prefix}|prefix|"`
680 gnustepdir=`echo $gnustepdir | sed -e 's|^prefix|${prefix}|'`
683 with_appspath=$gnustepdir/Apps
686 wprefsdir=$with_appspath/WPrefs.app
692 dnl Enable single appicon per wm instance+class combo -cls
693 dnl =====================================================
694 AC_ARG_ENABLE(single-icon,
695 [ --enable-single-icon use single application icon per WM_INSTANCE+WM_CLASS
697 if test "$enableval" = yes; then
698 AC_DEFINE(REDUCE_APPICONS)
704 dnl Nicolai: Program tests for Documentation Section
705 dnl =================================================
707 dnl AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, ,$PATH)
708 dnl if test "x$MAKEINFO" != "x" ; then
709 dnl DOCTYPES="$DOCTYPES info_doc"
711 dnl AC_CHECK_PROG(TEX, tex, tex, ,$PATH)
712 dnl if test "x$TEX" != "x" ; then
713 dnl DOCTYPES="$DOCTYPES dvi_doc"
715 dnl AC_CHECK_PROG(DVIPS, dvips, dvips, ,$PATH)
716 dnl if test "x$DVIPS" != "x" ; then
717 dnl DOCTYPES="$DOCTYPES ps_doc"
719 dnl AC_CHECK_PROG(PERL, perl, perl, ,$PATH)
720 dnl if test "x$PERL" != "x" ; then
721 dnl DOCTYPES="$DOCTYPES html_doc"
723 dnl AC_PATH_PROG(PERL_PATH, perl, perl, ,$PATH)
724 dnl AC_CHECK_PROG(TEXI2HTML, texi2html, texi2html, ,$PATH)
726 dnl AC_SUBST(DOCTYPES)
728 AC_OUTPUT(Makefile po/Makefile util/Makefile test/Makefile wmlib/Makefile \
729 WINGs/Makefile WINGs/Resources/Makefile src/Makefile src/wconfig.h \
730 wrlib/Makefile doc/Makefile WindowMaker/Makefile \
731 WindowMaker/Backgrounds/Makefile WindowMaker/Defaults/Makefile \
732 WindowMaker/IconSets/Makefile WindowMaker/Icons/Makefile \
733 WindowMaker/Pixmaps/Makefile WindowMaker/Styles/Makefile \
734 WindowMaker/Themes/Makefile \
735 WindowMaker/Themes/Night.themed/Makefile \
736 WindowMaker/Themes/LeetWM.themed/Makefile \
737 WindowMaker/Themes/Checker.themed/Makefile \
738 WindowMaker/Themes/STEP2000.themed/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"