dnl Some useful functions for LyX's configure.in -*- sh -*-
dnl Author: Jean-Marc Lasgouttes (Jean-Marc.Lasgouttes@inria.fr)
dnl
dnl
dnl Usage LYX_GET_VERSION Sets `lyx_version' to the version of LyX being
dnl built, displays it and sets variable `lyx_devel' to yes or no depending
dnl whether the version is a development release or not.
AC_DEFUN(LYX_GET_VERSION,[
changequote(, ) dnl # Get LyX version from $1 and guess wether is is stable or experimental.
VERSION=`grep '#define *LYX_VERSION' $1 |
sed -e 's/^.*"\([0-9.]*\)[^0-9.].*$/\1/' 2>/dev/null` echo"configuring LyX version $VERSION" ifecho"$VERSION" | grep '[0-9]*\.[0-9]*[13579]\.[0-9]*' >/dev/null ; then
lyx_devel_version=yes echo"WARNING: This is a development version. Expect bugs." else
lyx_devel_version=no fi
changequote([, ]) dnl
PACKAGE=lyx${program_suffix}
AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
AC_SUBST(PACKAGE)
AC_SUBST(VERSION)
AC_SUBST(lyx_devel_version)
test $lyx_devel_version = yes && AC_DEFINE(DEVEL_VERSION)])
dnl
dnl
dnl
dnl Usage: LYX_ERROR(message) Displays the warning `message' and sets the
dnl flag lyx_error to yes.
AC_DEFUN(LYX_ERROR,[
lyx_error_txt="$lyx_error_txt
** $1 "
lyx_error=yes])
dnl
dnl
dnl
dnl Usage: LYX_WARNING(message) Displays the warning `message' and sets the
dnl flag lyx_warning to yes.
AC_DEFUN(LYX_WARNING,[
lyx_warning_txt="$lyx_warning_txt
== $1 "
lyx_warning=yes])
dnl
dnl
dnl
dnl Usage: LYX_LIB_ERROR(file,library) Displays an error message indication
dnl that 'file' cannot be found because 'lib' may be uncorrectly installed.
AC_DEFUN(LYX_LIB_ERROR,[
LYX_ERROR([Can't find $1. Please check that the $2 library
is correctly installed on your system.])])
dnl
dnl
dnl Usage: LYX_CHECK_ERRORS Displays a warning message if a LYX_ERROR
dnl has occured previously.
AC_DEFUN(LYX_CHECK_ERRORS,[ if test x$lyx_error = xyes; then cat <<EOF
**** The following problems have been detected by configure.
**** Please check the messages below before running 'make'.
**** (see the section 'Problems' in the INSTALL file)
$lyx_error_txt
$lyx_warning_txt
deleting cache $cache_file
EOF rm -f $cache_file else
if test x$lyx_warning = xyes; then cat <<EOF
=== The following minor problems have been detected by configure.
=== Please check the messages below before running 'make'.
=== (see the section 'Problems' in the INSTALL file)
$lyx_warning_txt
EOF fi cat <<EOF
Configuration of LyX was successful.
Type 'make' to compile the program,
and then'make install' to install it.
EOF fi])
dnl
dnl
dnl LYX_SEARCH_PROG(VARIABLE-NAME,PROGRAMS-LIST,ACTION-IF-FOUND)
dnl define(LYX_SEARCH_PROG,[dnl if test ! -n "[$]$1"; then for ac_prog in $2 ; do #Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog ; ac_word=$[2]
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do
test -z "$ac_dir" && ac_dir=. if test -f [$ac_dir/$ac_word]; then
$1="$ac_prog"
break fi done
IFS="$ac_save_ifs"
ifelse($3,,,dnl if test -n "[$]$1"; then
$3 fi)
test -n "[$]$1" && break done fi
])dnl
dnl
dnl
dnl
AC_DEFUN(LYX_PROG_CXX_WORKS,
[AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_TRY_COMPILER([class foo { int bar; }; int main(){return(0);}], ac_cv_prog_cxx_works, ac_cv_prog_cxx_cross)
AC_LANG_RESTORE if test $ac_cv_prog_cxx_works = no; then
CXX= fi
cross_compiling=$ac_cv_prog_cxx_cross
])
dnl
dnl
dnl
AC_DEFUN(LYX_PROG_CXX,
[AC_BEFORE([$0], [AC_PROG_CXXCPP])dnl
AC_MSG_CHECKING([for a working C++ compiler])
LYX_SEARCH_PROG(CXX, $CCC g++ gcc c++ CC cxx xlC cc++, LYX_PROG_CXX_WORKS)
if test -z "$CXX" ; then
AC_ERROR([Unable to find a working C++ compiler]) fi
AC_SUBST(CXX)
AC_MSG_RESULT($CXX)
AC_MSG_CHECKING([whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler])
AC_MSG_RESULT($cross_compiling)
AC_PROG_CXX_GNU
dnl We might want to get or shut warnings.
AC_ARG_WITH(warnings,
[ --with-warnings tell GNU C++ to display more warnings],,
[if test $lyx_devel_version = yes && test $ac_cv_prog_gxx = yes ; then
with_warnings=yes; else
with_warnings=no; fi;]) if test "x$with_warnings" = xyes ; then
lyx_flags="$lyx_flags warnings"
AC_DEFINE(WITH_WARNINGS) fi
# optimize less for development versions if test "$lyx_devel_version" = yes ; then
lyx_opt="-O" else
lyx_opt="-O2" fi
# set the debug flags correctly. if test $ac_cv_prog_gxx = yes; then
GXX=yes
dnl Check whether -g works, even if CXXFLAGS is set, in case the package
dnl plays around with CXXFLAGS (such as to build both debugging and
dnl normal versions of a library), tasteless as that idea is.
ac_test_CXXFLAGS="${CXXFLAGS+set}"
ac_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS=
AC_PROG_CXX_G if test "$ac_test_CXXFLAGS" = set; then
CXXFLAGS="$ac_save_CXXFLAGS" elif test $ac_cv_prog_cxx_g = yes; then
CXXFLAGS="-g $lyx_opt" else
CXXFLAGS="$lyx_opt" fi if test $with_warnings = yes ; then
CXXFLAGS="$CXXFLAGS -ansi -Wall" # a small hack to avoid problems with headers echo'#undef __STRICT_ANSI__' >>confdefs.h fi else
GXX=
test "${CXXFLAGS+set}" = set || CXXFLAGS="-g" fi
])dnl
dnl
dnl
dnl
AC_DEFUN(LYX_GXX_STRENGTH_REDUCE,[ #check for the strength reduction bug of gcc if test x$GXX = xyes && test $cross_compiling = no ; then
AC_CACHE_CHECK( "for gcc strength-reduce bug", ac_cv_c_gcc_strength_bug,
AC_TRY_RUN([
int main(void) {
static int Array[[3]];
unsigned int B = 3;
int i; for(i=0; i<B; i++) Array[[i]] = i - 3;
exit( Array[[1]] != -2 );
}],
ac_cv_c_gcc_strength_bug="no",
ac_cv_c_gcc_strength_bug="yes",
ac_cv_c_gcc_strength_bug="yes") ) if test "$ac_cv_c_gcc_strength_bug" = "yes" then
CXXFLAGS="$CXXFLAGS -fno-strength-reduce" fi fi
])dnl
dnl
dnl
dnl
dnl Usage: LYX_CXX_EXPLICIT : checks whether the C++ compiler
dnl understands the `explicit' directive.
AC_DEFUN(LYX_CXX_EXPLICIT,[ ### Check whether the compiler understands the keyword `explicit'
AC_CACHE_CHECK(whether the C++ compiler understands explicit,lyx_cv_explicit,
[AC_TRY_COMPILE([
class Expl {
public:
explicit Expl() {};
};],,lyx_cv_explicit=yes,lyx_cv_explicit=no)
]) if test $lyx_cv_explicit = no ; then
AC_DEFINE(explicit,[ ]) fi])
dnl
dnl
dnl
dnl Usage LYX_PATH_XPM: Checks for xpm library and header
AC_DEFUN(LYX_PATH_XPM,[ ### Check for Xpm library
AC_CHECK_LIB(Xpm, XpmCreateBufferFromImage,LYX_LIBS="-lXpm $LYX_LIBS",
[LYX_LIB_ERROR(libXpm,Xpm)], $LYX_LIBS)
### Test for the header version if test $ac_cv_header_xpm_h = yes; then
AC_CACHE_CHECK([xpm header version],lyx_cv_xpmversion,
[ cat > conftest.$ac_ext <<EOF #line __oline__ "configure" #include "confdefs.h"
#include XPM_H_LOCATION "%%%"lyx_cv_xpmv=XpmVersion;lyx_cv_xpmr=XpmRevision"%%%"
EOF eval `(eval"$ac_cpp conftest.$ac_ext") 2>&5 | \
grep '^"%%%"' 2>/dev/null | \
sed -e 's/^"%%%"\(.*\)"%%%"/\1/' -e 's/ //g'`
case "$lyx_cv_xpmr" in
dnl for emacs font lock ((
changequote(,)
[0-9]) lyxxpmr_alpha=`echo $lyx_cv_xpmr |tr 123456789 abcdefghi`
lyxxpmv_alpha=" (aka 3.$lyx_cv_xpmv$lyxxpmr_alpha)";;
changequote([,])
*) ;;
esac
lyx_cv_xpmversion="$lyx_cv_xpmv.$lyx_cv_xpmr$lyxxpmv_alpha" rm -f conftest*])
case "$lyx_cv_xpmr" in
dnl for emacs font lock ((
changequote(,)
[789]|[0-9][0-9]*) ;;
changequote([,])
*) LYX_WARNING([Version $lyx_cv_xpmversion of the Xpm library is a bit old. If you experience strange crashes with LyX, try to upgrade
to at least version 4.7 (aka 3.4g). If you have installed a newer version of the library, check whether you
have an old xpm.h header file in your include path.]);;
esac fi])
dnl
dnl
dnl
dnl Usage LYX_PATH_XFORMS: Checks for xforms library and flags
AC_DEFUN(LYX_PATH_XFORMS,[ ### Check for xforms library
AC_CHECK_LIB(forms, fl_initialize, LYX_LIBS="-lforms $LYX_LIBS",
[AC_CHECK_LIB(xforms, fl_initialize, LYX_LIBS="-lxforms $LYX_LIBS",
[LYX_LIB_ERROR(libforms or libxforms,xforms)], $LYX_LIBS)], $LYX_LIBS)
### Check for xforms headers
lyx_cv_forms_h_location=""
AC_CHECK_HEADER(X11/forms.h,[
ac_cv_header_forms_h=yes
lyx_cv_forms_h_location=""],[
AC_CHECK_HEADER(forms.h,[],[
LYX_LIB_ERROR(forms.h,forms)])])
AC_DEFINE_UNQUOTED(FORMS_H_LOCATION,$lyx_cv_forms_h_location) if test $ac_cv_header_forms_h = yes; then
AC_CACHE_CHECK([xforms header version],lyx_cv_xfversion,
[ cat > conftest.$ac_ext <<EOF #line __oline__ "configure" #include "confdefs.h"
#include FORMS_H_LOCATION #if ! defined(FL_INCLUDE_VERSION) "%%%"(unknown)"%%%" #else "%%%"FL_VERSION.FL_REVISION"%%%" #endif
EOF
lyx_cv_xfversion=`(eval"$ac_cpp conftest.$ac_ext") 2>&5 | \
grep '^"%%%"' 2>/dev/null | \
sed -e 's/^"%%%"\(.*\)"%%%"/\1/' -e 's/ //g'` rm -f conftest*])
case "$lyx_cv_xfversion" in
dnl for emacs font lock ((( "(unknown)"|0.82|0.83|0.84|0.85)
LYX_ERROR(dnl
Version $lyx_cv_xfversion of xforms is not compatible with LyX.
This version of LyX works best with version 0.88[,] although it
supports also versions 0.81[,] 0.86 and 0.87.) ;;
0.81|0.86|0.87)
LYX_WARNING(dnl While LyX is compatible with version $lyx_cv_xfversion of xforms[,]
it is recommended that you upgrade to version 0.88.) ;;
0.88) ;;
*) LYX_WARNING(dnl
Version $lyx_cv_xfversion of xforms might not be compatible with LyX[,]
since it is newer than 0.88. You might have slight problems with it.);;
esac fi])
dnl
dnl
dnl Usage: LYX_HPUX Checks for HP-UX and update CXXFLAGS accordingly
AC_DEFUN(LYX_HPUX,
[#It seems that HPUX requires using -fpcc-struct-return with gcc.
AC_CACHE_CHECK(for HP-UX,ac_cv_hpux,[
os=`uname -s | tr '[A-Z]''[a-z]'`
ac_cv_hpux=no
test "$os" = hp-ux && ac_cv_hpux=yes]) if test "$ac_cv_hpux" = yes; then
test "x$GXX" = xyes && CXXFLAGS="$CXXFLAGS -fpcc-struct-return" fi])
dnl
dnl
dnl
dnl Usage: LYX_SUNOS4 Checks for SunOS 4.x and sets the flag lyx_broken_headers
dnl if necessary
AC_DEFUN(LYX_SUNOS4,
[#The headers are not correct under SunOS4
AC_CACHE_CHECK(for SunOS 4.x,ac_cv_sunos4,[
changequote(, ) dnl
os=`uname -a | sed -e 's/^\([^ ]*\) [^ ]* \([0-9]\)\..*/\1\2/'`
changequote([, ]) dnl
ac_cv_sunos4=no
test "$os" = SunOS4 && ac_cv_sunos4=yes]) if test "$ac_cv_sunos4" = yes; then
test "x$GXX" = xyes && lyx_broken_headers=yes fi])
dnl
dnl
dnl
dnl Usage: LYX_SCO Checks for SCO and sets the flag lyx_broken_headers
dnl if necessary
AC_DEFUN(LYX_SCO,
[AC_CACHE_CHECK(for SCO 3.2v4,ac_cv_sco,[
ac_cv_sco=no if test `uname -s` != "SCO_SV"; then
lyx_machine_rel=`uname -m`:`uname -r` if test $lyx_machine_rel = i386:3.2 || test $lyx_machine_rel = i486:3.2; then if test -f /usr/options/cb.name; then
ac_cv_sco=no elif /bin/uname -X 2>/dev/null >/dev/null ; then
ac_cv_sco=yes fi fi fi]) if test "$ac_cv_sco" = yes; then
test "x$GXX" = xyes && lyx_broken_headers=yes fi])
dnl
dnl
dnl Usage: LYX_WITH_DIR(dir-name,desc,dir-var-name,default-value,
dnl [default-yes-value])
dnl Adds a --with-'dir-name' option (described by 'desc') and puts the
dnl resulting directory name in 'dir-var-name'.
AC_DEFUN(LYX_WITH_DIR,[
AC_ARG_WITH($1,[ --with-$1 specify $2])
AC_MSG_CHECKING([for $2]) if test -z "$with_$3"; then
AC_CACHE_VAL(lyx_cv_$3, lyx_cv_$3=$4) else
test "x$with_$3" = xyes && with_$3=$5
lyx_cv_$3="$with_$3" fi
AC_MSG_RESULT($lyx_cv_$3)])
dnl
dnl
dnl Usage: LYX_LOOP_DIR(value,action)
dnl Executes action for values of variable `dir' in `values'. `values' can
dnl use `:' as a separator.
AC_DEFUN(LYX_LOOP_DIR,[
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for dir in `eval"echo $1"`; do if test ! "$dir" = NONE; then
test ! -d "$dir" && AC_ERROR([\`$dir' is not a directory])
$2 fi done
IFS=$ac_save_ifs
])
dnl
dnl
dnl
dnl Usage: LYX_ADD_LIB_DIR(var-name,dir) Adds a -L directive to variable
dnl var-name.
AC_DEFUN(LYX_ADD_LIB_DIR,[
$1="${$1} -L$2" if test "`(uname) 2>/dev/null`" = SunOS &&
uname -r | grep '^5' >/dev/null; then if test $ac_cv_prog_gxx = yes ; then
$1="${$1} -Wl[,]-R$2" else
$1="${$1} -R$2" fi fi])
dnl
dnl
dnl
dnl Usage: LYX_ADD_INC_DIR(var-name,dir) Adds a -I directive to variable
dnl var-name.
AC_DEFUN(LYX_ADD_INC_DIR,[$1="${$1} -I$2 "])
dnl
dnl
dnl Usage LYX_PROG_PERL_OK
AC_DEFUN(LYX_PROG_PERL_OK,[ ifecho'require 5.002;exit' | $ac_dir/$ac_prog 2>&5 then
PERL=$ac_dir/$ac_prog else
PERL= fi])
dnl
dnl
dnl Usage LYX_CHECK_RELYX
AC_DEFUN(LYX_CHECK_RELYX,[
AC_MSG_CHECKING([for perl >= 5.002])
LYX_SEARCH_PROG(PERL, perl perl5 perl5.002 perl5.003 perl5.004 perl5.005, LYX_PROG_PERL_OK) if test -n "$PERL" ; then
AC_MSG_RESULT($PERL) else
PERL="/bin/echo reLyX has been disabled because perl version 5.002 has not \
been found.\nTo reenable it, edit "
AC_MSG_RESULT(no)
LYX_WARNING(dnl
Configure has not been able to find a version 5.002 or better of Perl.
reLyX has been setup to only display a warning message.
Set variable PERL to some value to install a working reLyX.) fi
AC_SUBST(PERL)])
¤ Dauer der Verarbeitung: 0.27 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.