1 dnl find a binary in the path 2 AC_DEFUN([QT_FIND_PATH], 3 [ 4 AC_MSG_CHECKING([for $1]) 5 AC_CACHE_VAL(qt_cv_path_$1, 6 [ 7 qt_cv_path_$1="NONE" 8 if test -n "$$2"; then 9 qt_cv_path_$1="$$2"; 10 else 11 dirs="$3" 12 qt_save_IFS=$IFS 13 IFS=':' 14 for dir in $PATH; do 15 dirs="$dirs $dir" 16 done 17 IFS=$qt_save_IFS 18 19 for dir in $dirs; do 20 if test -x "$dir/$1"; then 21 if test -n "$5"; then 22 evalstr="$dir/$1 $5 2>&1 " 23 if eval $evalstr; then 24 qt_cv_path_$1="$dir/$1" 25 break 26 fi 27 else 28 qt_cv_path_$1="$dir/$1" 29 break 30 fi 31 fi 32 done 33 fi 34 ]) 35 36 if test -z "$qt_cv_path_$1" || test "$qt_cv_path_$1" = "NONE"; then 37 AC_MSG_RESULT(not found) 38 $4 39 else 40 AC_MSG_RESULT($qt_cv_path_$1) 41 $2=$qt_cv_path_$1 42 fi 43 ]) 44 45 dnl Find the uic compiler on the path or in qt_cv_dir 46 AC_DEFUN([QT_FIND_UIC], 47 [ 48 QT_FIND_PATH(uic, ac_uic, $qt_cv_dir/bin) 49 if test -z "$ac_uic" -a "$FATAL" = 1; then 50 AC_MSG_ERROR([uic binary not found in \$PATH or $qt_cv_dir/bin !]) 51 fi 52 ]) 53 54 dnl Find the right moc in path/qt_cv_dir 55 AC_DEFUN([QT_FIND_MOC], 56 [ 57 QT_FIND_PATH(moc2, ac_moc2, $qt_cv_dir/bin) 58 QT_FIND_PATH(moc, ac_moc1, $qt_cv_dir/bin) 59 60 if test -n "$ac_moc1" -a -n "$ac_moc2"; then 61 dnl found both. Prefer Qt3's if it exists else moc2 62 $ac_moc1 -v 2>&1 | grep "Qt 3" >/dev/null 63 if test "$?" = 0; then 64 ac_moc=$ac_moc1; 65 else 66 ac_moc=$ac_moc2; 67 fi 68 else 69 if test -n "$ac_moc1"; then 70 ac_moc=$ac_moc1; 71 else 72 ac_moc=$ac_moc2; 73 fi 74 fi 75 76 if test -z "$ac_moc" -a "$FATAL" = 1; then 77 AC_MSG_ERROR([moc binary not found in \$PATH or $qt_cv_dir/bin !]) 78 fi 79 ]) 80 81 dnl check a particular libname 82 AC_DEFUN([QT_TRY_LINK], 83 [ 84 SAVE_LIBS="$LIBS" 85 LIBS="$LIBS $1" 86 AC_TRY_LINK([ 87 #include <qglobal.h> 88 #include <qstring.h> 89 ], 90 [ 91 QString s("mangle_failure"); 92 #if (QT_VERSION < 221) 93 break_me_(\\\); 94 #endif 95 ], 96 qt_cv_libname=$1, 97 ) 98 LIBS="$SAVE_LIBS" 99 ]) 100 101 dnl check we can do a compile 102 AC_DEFUN([QT_CHECK_COMPILE], 103 [ 104 AC_MSG_CHECKING([$1 for Qt library name]) 105 106 AC_CACHE_VAL(qt_cv_libname, 107 [ 108 AC_LANG_CPLUSPLUS 109 SAVE_CXXFLAGS=$CXXFLAGS 110 CXXFLAGS="$CXXFLAGS $QT_INCLUDES $QT_LDFLAGS" 111 112 for libname in -lqt-mt -lqt3 -lqt2 -lqt; 113 do 114 QT_TRY_LINK($libname) 115 if test -n "$qt_cv_libname"; then 116 break; 117 fi 118 done 119 120 CXXFLAGS=$SAVE_CXXFLAGS 121 ]) 122 123 if test -z "$qt_cv_libname"; then 124 AC_MSG_RESULT([failed]) 125 if test "$FATAL" = 1 ; then 126 AC_MSG_ERROR([Cannot compile a simple Qt executable. Check you have the right \$QTDIR !]) 127 fi 128 else 129 AC_MSG_RESULT([$qt_cv_libname]) 130 fi 131 ]) 132 133 dnl get Qt version we're using 134 AC_DEFUN([QT_GET_VERSION], 135 [ 136 AC_CACHE_CHECK([Qt version],lyx_cv_qtversion, 137 [ 138 AC_LANG_CPLUSPLUS 139 SAVE_CPPFLAGS=$CPPFLAGS 140 CPPFLAGS="$CPPFLAGS $QT_INCLUDES" 141 142 cat > conftest.$ac_ext <<EOF 143 #line __oline__ "configure" 144 #include "confdefs.h" 145 #include <qglobal.h> 146 "%%%"QT_VERSION_STR"%%%" 147 EOF 148 lyx_cv_qtversion=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \ 149 grep '^"%%%"' 2>/dev/null | \ 150 sed -e 's/"%%%"//g' -e 's/"//g'` 151 rm -f conftest.$ac_ext 152 CPPFLAGS=$SAVE_CPPFLAGS 153 ]) 154 155 QT_VERSION=$lyx_cv_qtversion 156 AC_SUBST(QT_VERSION) 157 ]) 158 159 dnl start here 160 AC_DEFUN([QT_DO_IT_ALL], 161 [ 162 dnl Please leave this alone. I use this file in 163 dnl oprofile. 164 FATAL=0 165 166 AC_ARG_WITH(qt-dir, [ --with-qt-dir where the root of Qt is installed ], 167 [ qt_cv_dir=`eval echo "$withval"/` ]) 168 169 AC_ARG_WITH(qt-includes, [ --with-qt-includes where the Qt includes are. ], 170 [ qt_cv_includes=`eval echo "$withval"` ]) 171 172 AC_ARG_WITH(qt-libraries, [ --with-qt-libraries where the Qt library is installed.], 173 [ qt_cv_libraries=`eval echo "$withval"` ]) 174 175 dnl pay attention to $QTDIR unless overridden 176 if test -z "$qt_cv_dir"; then 177 qt_cv_dir=$QTDIR 178 fi 179 180 dnl derive inc/lib if needed 181 if test -n "$qt_cv_dir"; then 182 if test -z "$qt_cv_includes"; then 183 qt_cv_includes=$qt_cv_dir/include 184 fi 185 if test -z "$qt_cv_libraries"; then 186 qt_cv_libraries=$qt_cv_dir/lib 187 fi 188 fi 189 190 dnl flags for compilation 191 QT_INCLUDES= 192 QT_LDFLAGS= 193 if test -n "$qt_cv_includes"; then 194 QT_INCLUDES="-isystem $qt_cv_includes" 195 fi 196 if test -n "$qt_cv_libraries"; then 197 QT_LDFLAGS="-L$qt_cv_libraries" 198 fi 199 AC_SUBST(QT_INCLUDES) 200 AC_SUBST(QT_LDFLAGS) 201 202 QT_FIND_MOC 203 MOC=$ac_moc 204 AC_SUBST(MOC) 205 QT_FIND_UIC 206 UIC=$ac_uic 207 AC_SUBST(UIC) 208 209 QT_CHECK_COMPILE(in lib) 210 if test -z "$qt_cv_libname"; then 211 if test -n "$qt_cv_dir"; then 212 dnl Try again using lib64 vs lib 213 qt_cv_libraries=$qt_cv_dir/lib64 214 QT_LDFLAGS="-L$qt_cv_libraries" 215 QT_CHECK_COMPILE(in lib64) 216 fi 217 fi 218 219 QT_LIB=$qt_cv_libname; 220 AC_SUBST(QT_LIB) 221 222 if test -n "$qt_cv_libname"; then 223 QT_GET_VERSION 224 fi 225 ]) 226