dnl Some useful functions for LyX's configure.in -*- sh -*-
dnl Author: Jean-Marc Lasgouttes ([email protected])
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"
if echo "$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)
### Check for Xpm headers
lyx_cv_xpm_h_location=""
AC_CHECK_HEADER(X11/xpm.h,[
ac_cv_header_xpm_h=yes
lyx_cv_xpm_h_location=""],[
AC_CHECK_HEADER(xpm.h,[],[
LYX_LIB_ERROR(xpm.h,Xpm)])])
AC_DEFINE_UNQUOTED(XPM_H_LOCATION,$lyx_cv_xpm_h_location)
### 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,[
if echo '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.32 Sekunden
(vorverarbeitet)
¤
|
Haftungshinweis
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.
|