#!/bin/sh dnl dnl WM_CHECK_LIB(NAME, FUNCTION, EXTRALIBS) dnl AC_DEFUN(WM_CHECK_LIB, [ LDFLAGS_old="$LDFLAGS" LDFLAGS="$LDFLAGS $lib_search_path" AC_CHECK_LIB([$1],[$2],yes=yes,no=no,[$3]) LDFLAGS="$LDFLAGS_old" ]) dnl dnl WM_CHECK_HEADER(NAME) dnl AC_DEFUN(WM_CHECK_HEADER, [ CPPFLAGS_old="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $inc_search_path" AC_CHECK_HEADER([$1]) CPPFLAGS="$CPPFLAGS_old" ]) dnl dnl WM_CHECK_XFT_VERSION(MIN_VERSION, [ACTION-IF-FOUND [,ACTION-IF-NOT-FOUND]]) dnl dnl # $XFTFLAGS should be defined before calling this macro, dnl # else it will not be able to find Xft.h dnl AC_DEFUN(WM_CHECK_XFT_VERSION, [ CPPFLAGS_old="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $XFTFLAGS $inc_search_path" xft_major_version=`echo $1 | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` xft_minor_version=`echo $1 | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` xft_micro_version=`echo $1 | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` AC_MSG_CHECKING([whether libXft is at least version $1]) AC_CACHE_VAL(ac_cv_lib_xft_version_ok, [AC_TRY_LINK( [/* Test version of libXft we have */ #include #if !defined(XFT_VERSION) || XFT_VERSION < $xft_major_version*10000 + $xft_minor_version*100 + $xft_micro_version #error libXft on this system is too old. Consider upgrading to at least $1 #endif ], [], eval "ac_cv_lib_xft_version_ok=yes", eval "ac_cv_lib_xft_version_ok=no")]) if eval "test \"`echo '$ac_cv_lib_xft_version_ok'`\" = yes"; then AC_MSG_RESULT(yes) ifelse([$2], , :, [$2]) else AC_MSG_RESULT(no) ifelse([$3], , , [$3]) fi CPPFLAGS="$CPPFLAGS_old" ]) dnl dnl WM_CHECK_REDCRAP_BUGS(prefix,bindir,libdir) dnl AC_DEFUN(WM_CHECK_REDCRAP_BUGS, [ AC_MSG_CHECKING(for RedHat system) wm_check_flag='no :)' rh_is_redhat=no if test -f /etc/redhat-release; then wm_check_flag=yes rh_is_redhat=yes fi AC_MSG_RESULT($wm_check_flag) mins_found=no bugs_found=no if test "$wm_check_flag" = yes; then echo AC_MSG_WARN([Red Hat system; checking for Red-Hat-specific bugs.]) echo # # Check old wmaker from RedHat # if test "[$1]" != "/usr/X11R6" -a "$prefix" != "/usr/X11"; then AC_MSG_CHECKING(for multiple installed wmaker versions) if test -f /usr/X11R6/bin/wmaker; then AC_MSG_RESULT(uh oh) mins_found=yes rh_old_wmaker=yes else rh_old_wmaker=no AC_MSG_RESULT(no apparent problems) fi fi # # Check for infamous en_RN bug # Wont work because autoconf will change LANG in the beginning of the # script. # #AC_MSG_CHECKING(for silly en_RN joke that only causes headaches) #echo $LANG #if test "x$LANG" = xen_RN; then #AC_MSG_RESULT(uh oh) #AC_MSG_WARN([the LANG environment variable is set to the en_RN #locale. Please unset it or you will have mysterious problems when #using various software packages.]) #bugs_found=yes #else #AC_MSG_RESULT(no problem) #fi # # If binary installation path is /usr/local/bin, check if it's in PATH # if test "[$2]" = "/usr/local/bin"; then AC_MSG_CHECKING(if /usr/local/bin is in the search PATH) wm_check_flag=no rh_missing_usr_local_bin=yes old_IFS="$IFS" IFS=":" for i in $PATH; do if test "x$i" = "x/usr/local/bin"; then wm_check_flag=yes rh_missing_usr_local_bin=no break; fi done IFS="$old_IFS" if test "$wm_check_flag" = no; then AC_MSG_RESULT(uh oh) bugs_found=yes else AC_MSG_RESULT(no problem) fi fi # # If library installation path is /usr/local/lib, # check if it's in /etc/ld.so.conf # if test "[$3]" = "/usr/local/lib"; then wm_check_flag=yes rh_missing_usr_local_lib=no AC_MSG_CHECKING(if /usr/local/lib is in /etc/ld.so.conf) test -z "`grep /usr/local/lib /etc/ld.so.conf`" test "$?" -eq 0 && wm_check_flag=no if test "$wm_check_flag" = no; then AC_MSG_RESULT(uh oh) rh_missing_usr_local_lib=yes bugs_found=yes else AC_MSG_RESULT(no problem) fi fi # # Check for symbolic links # AC_MSG_CHECKING(for /usr/include/X11 symbolic link) rh_missing_usr_include_x11=no if test -d "/usr/include/X11"; then AC_MSG_RESULT(found) else AC_MSG_RESULT(uh oh) rh_missing_usr_include_x11=yes mins_found=yes fi # # Check for /lib/cpp # AC_MSG_CHECKING(for /lib/cpp) rh_missing_lib_cpp=no if test -f "/lib/cpp"; then AC_MSG_RESULT(found) else AC_MSG_RESULT(uh oh) rh_missing_lib_cpp=yes bugs_found=yes fi echo fi ]) dnl dnl WM_PRINT_REDCRAP_BUG_STATUS() dnl AC_DEFUN(WM_PRINT_REDCRAP_BUG_STATUS, [ if test "$rh_is_redhat" = yes; then if test "$mins_found" = yes -o "$bugs_found" = yes; then echo AC_MSG_WARN([It seems you are using a system packaged by Red Hat. I have done some checks for Red-Hat-specific bugs, and I found some problems. Please read the INSTALL file regarding Red Hat, resolve the problems, and try to run configure again. Here are the problems I found: ]) if test "x$rh_old_wmaker" = xyes; then echo "Problem: Old version of Window Maker in /usr/X11R6/bin." echo "Description: You seem to have an old version of Window Maker" echo " installed in /usr/X11R6/bin. It is recommended" echo " that you uninstall any previously installed" echo " packages of WindowMaker before installing a new one." echo fi if test "x$rh_missing_usr_local_bin" = xyes; then echo "Problem: PATH is missing /usr/local/bin." echo "Description: Your PATH environment variable does not appear to" echo " contain the directory /usr/local/bin. Please add it." echo fi if test "x$rh_missing_usr_local_lib" = xyes; then echo "Problem: /etc/ld.so.conf missing /usr/local/lib" echo "Description: Your /etc/ld.so.conf file does not appear to contain" echo " the directory /usr/local/lib. Please add it." echo fi if test "x$rh_missing_usr_x11" = xyes; then echo "Problem: Missing /usr/X11 symbolic link." echo "Description: Your system is missing a symbolic link from" echo " /usr/X11R6 to /usr/X11. Please create one." echo fi if test "x$rh_missing_usr_include_x11" = xyes; then echo "Problem: Missing /usr/include/X11 symbolic link." echo "Description: Your system is missing a symbolic link from" echo " /usr/X11R6/include/X11 to /usr/include/X11." echo " Please create one." echo fi if test "x$rh_missing_lib_cpp" = xyes; then echo "Problem: Missing /lib/cpp symbolic link." echo "Description: Your system is missing a symbolic link from the" echo " cpp (C preprocessor) program to /lib/cpp." echo " Please create one." echo fi if test "x$bugs_found" = xyes; then AC_MSG_ERROR([One or more of the problems above can potentially cause Window Maker not to install or run properly. Please resolve the problems and try to run configure again.]) exit 1 elif test "x$mins_found" = xyes; then AC_MSG_WARN([The problems above may or may not cause Window Maker not to install or run properly. If you have any problems during installation or execution, please resolve the problems and try to install Window Maker again.]) echo fi else echo echo "You appear to have a system packaged by Red Hat, but I could" echo "not find any Red-Hat-specific problems that I know about." echo fi fi ])