X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=config%2Flyxinclude.m4;h=e532c54d87e17a576784b0a3ab8a6a3d6e9e7f15;hb=3a5c0f66a008f9e7baadd017ff0b37c4f6789b6a;hp=c742c2eb25c796ca38448959075ee181582e3f1e;hpb=4a2243135cf2b1182646de13d0a9cd0dd24f0332;p=lyx.git diff --git a/config/lyxinclude.m4 b/config/lyxinclude.m4 index c742c2eb25..e532c54d87 100644 --- a/config/lyxinclude.m4 +++ b/config/lyxinclude.m4 @@ -5,35 +5,38 @@ dnl Allan Rae (rae@lyx.org) dnl Usage LYX_CHECK_VERSION Displays version of LyX being built and -dnl sets variables "lyx_devel_version" and "lyx_prerelease" +dnl sets variable "build_type" AC_DEFUN([LYX_CHECK_VERSION],[ echo "configuring LyX version" AC_PACKAGE_VERSION lyx_devel_version=no lyx_prerelease=no -build_type=release AC_MSG_CHECKING([for build type]) AC_ARG_ENABLE(build-type, - AC_HELP_STRING([--enable-build-type=TYPE],[set build setting according to TYPE=dev(elopment), rel(ease) or pre(release)]), + AC_HELP_STRING([--enable-build-type=TYPE],[set build setting according to TYPE=rel(ease), pre(release), dev(elopment), prof(iling), gprof]), [case $enableval in - dev*) lyx_devel_version=yes - build_type=development;; - pre*) lyx_prerelease=yes - build_type=prerelease;; - rel*) ;; - *) AC_ERROR([Bad build type specification \"$enableval\". Please use one of dev(elopment), rel(ease) or pre(release)]);; + dev*) build_type=development;; + pre*) build_type=prerelease;; + prof*) build_type=profiling;; + gprof*) build_type=gprof;; + rel*) build_type=release;; + *) AC_ERROR([Bad build type specification \"$enableval\". Please use one of rel(ease), pre(release), dev(elopment), prof(iling), or gprof]);; esac], [case AC_PACKAGE_VERSION in - *svn*) lyx_devel_version=yes - build_type=development;; - *pre*|*alpha*|*beta*|*rc*) lyx_prerelease=yes - build_type=prerelease;; + *svn*|*dev*) build_type=development;; + *pre*|*alpha*|*beta*|*rc*) build_type=prerelease;; + *) build_type=release ;; esac]) AC_MSG_RESULT([$build_type]) -if test $lyx_devel_version = yes ; then - AC_DEFINE(DEVEL_VERSION, 1, [Define if you are building a development version of LyX]) - LYX_DATE="not released yet" -fi -AC_SUBST(lyx_devel_version)]) +lyx_flags="$lyx_flags build=$build_type" +case $build_type in + development) lyx_devel_version=yes + AC_DEFINE(DEVEL_VERSION, 1, [Define if you are building a development version of LyX]) + LYX_DATE="not released yet" ;; + prerelease) lyx_prerelease=yes ;; +esac + +AC_SUBST(lyx_devel_version) +]) dnl Define the option to set a LyX version on installed executables and directories @@ -53,6 +56,7 @@ AC_ARG_WITH(version-suffix, AC_SUBST(version_suffix,$withval) RPM_VERSION_SUFFIX="--with-version-suffix=$withval"]) AC_SUBST(RPM_VERSION_SUFFIX) +AC_SUBST(program_base_name,"lyx") AC_MSG_RESULT([$withval]) ]) @@ -182,37 +186,31 @@ AC_ARG_ENABLE(warnings, enable_warnings=no; fi;]) if test x$enable_warnings = xyes ; then - lyx_flags="warnings $lyx_flags" + lyx_flags="$lyx_flags warnings" fi ### We might want to disable debug AC_ARG_ENABLE(debug, AC_HELP_STRING([--enable-debug],[enable debug information]),, - [ if test $lyx_devel_version = yes -o $lyx_prerelease = yes ; then - enable_debug=yes; - else - enable_debug=no; - fi;]) + [AS_CASE([$build_type], [rel*], [enable_debug=no], [enable_debug=yes])] +) AC_ARG_ENABLE(stdlib-debug, AC_HELP_STRING([--enable-stdlib-debug],[enable debug mode in the standard library]),, - [ if test $lyx_devel_version = yes ; then - enable_stdlib_debug=yes; - else - enable_stdlib_debug=no; - fi;]) + [AS_CASE([$build_type], [dev*], [enable_stdlib_debug=yes], + [enable_stdlib_debug=no])] +) AC_ARG_ENABLE(concept-checks, AC_HELP_STRING([--enable-concept-checks],[enable concept checks]),, - [ if test $lyx_devel_version = yes -o $lyx_prerelease = yes ; then - enable_concept_checks=yes; - else - enable_concept_checks=no; - fi;]) + [AS_CASE([$build_type], [dev*|pre*], [enable_concept_checks=yes], + [enable_concept_checks=no])] +) -AC_ARG_ENABLE(profiling, - AC_HELP_STRING([--enable-profiling],[enable profiling]),, - enable_profiling=no;) +AC_ARG_ENABLE(gprof, + AC_HELP_STRING([--enable-gprof],[enable profiling using gprof]),, + [AS_CASE([$build_type], [gprof], [enable_gprof=yes], [enable_gprof=no])] +) ### set up optimization AC_ARG_ENABLE(optimization, @@ -236,19 +234,15 @@ lyx_pch_comp=no AC_ARG_ENABLE(assertions, AC_HELP_STRING([--enable-assertions],[add runtime sanity checks in the program]),, - [if test $lyx_devel_version = yes -o $lyx_prerelease = yes ; then - enable_assertions=yes; - else - enable_assertions=no; - fi;]) + [AS_CASE([$build_type], [dev*|pre*], [enable_assertions=yes], + [enable_assertions=no])] +) if test "x$enable_assertions" = xyes ; then - lyx_flags="assertions $lyx_flags" + lyx_flags="$lyx_flags assertions" AC_DEFINE(ENABLE_ASSERTIONS,1, [Define if you want assertions to be enabled in the code]) fi - - # set the compiler options correctly. if test x$GXX = xyes; then dnl Useful for global version info @@ -264,7 +258,7 @@ if test x$GXX = xyes; then CFLAGS="-g $CFLAGS" CXXFLAGS="-g $CXXFLAGS" fi - if test x$enable_profiling = xyes ; then + if test x$enable_gprof = xyes ; then CFLAGS="-pg $CFLAGS" CXXFLAGS="-pg $CXXFLAGS" LDFLAGS="-pg $LDFLAGS" @@ -294,7 +288,7 @@ if test x$GXX = xyes; then if test x$enable_stdlib_debug = xyes ; then case $gxx_version in 3.4*|4.*) - lyx_flags="stdlib-debug $lyx_flags" + lyx_flags="$lyx_flags stdlib-debug" AC_DEFINE(_GLIBCXX_DEBUG, 1, [libstdc++ debug mode]) AC_DEFINE(_GLIBCXX_DEBUG_PEDANTIC, 1, [libstdc++ pedantic debug mode]) ;; @@ -303,24 +297,24 @@ if test x$GXX = xyes; then if test x$enable_concept_checks = xyes ; then case $gxx_version in 3.3*) - lyx_flags="concept-checks $lyx_flags" + lyx_flags="$lyx_flags concept-checks" AC_DEFINE(_GLIBCPP_CONCEPT_CHECKS, 1, [libstdc++ concept checking]) ;; 3.4*|4.*) - lyx_flags="concept-checks $lyx_flags" + lyx_flags="$lyx_flags concept-checks" AC_DEFINE(_GLIBCXX_CONCEPT_CHECKS, 1, [libstdc++ concept checking]) ;; esac fi fi -test "$lyx_pch_comp" = yes && lyx_flags="pch $lyx_flags" +test "$lyx_pch_comp" = yes && lyx_flags="$lyx_flags pch" AM_CONDITIONAL(LYX_BUILD_PCH, test "$lyx_pch_comp" = yes) ])dnl dnl Usage: LYX_USE_INCLUDED_BOOST : select if the included boost should dnl be used. AC_DEFUN([LYX_USE_INCLUDED_BOOST],[ - AC_MSG_CHECKING([whether to use boost included library]) + AC_MSG_CHECKING([whether to use included boost library]) AC_ARG_WITH(included-boost, [AC_HELP_STRING([--without-included-boost], [do not use the boost lib supplied with LyX, try to find one in the system directories - compilation will abort if nothing suitable is found])], [lyx_cv_with_included_boost=$withval], @@ -328,22 +322,61 @@ AC_DEFUN([LYX_USE_INCLUDED_BOOST],[ AM_CONDITIONAL(USE_INCLUDED_BOOST, test x$lyx_cv_with_included_boost = xyes) AC_MSG_RESULT([$lyx_cv_with_included_boost]) if test x$lyx_cv_with_included_boost != xyes ; then - AC_CHECK_LIB(boost_signals, main, [lyx_boost_underscore=yes], [], [-lm]) - AC_CHECK_LIB(boost_signals-mt, main, [lyx_boost_underscore_mt=yes], [], [-lm $LIBTHREAD]) - if test x$lyx_boost_underscore_mt = xyes ; then + AC_LANG_PUSH(C++) + save_LIBS=$LIBS + + LIBS="$save_LIBS -lboost_signals -lm" + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include ], [boost::signal s;])], [lyx_boost_plain=yes], []) + LIBS="$save_LIBS -lboost_signals-mt -lm $LIBTHREAD" + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include ], [boost::signal s;])], [lyx_boost_mt=yes], []) + + LIBS=$save_LIBS + AC_LANG_POP(C++) + + if test x$lyx_boost_mt = xyes ; then BOOST_MT="-mt" else BOOST_MT="" - if test x$lyx_boost_plain != xyes -a x$lyx_boost_underscore != xyes ; then + if test x$lyx_boost_plain != xyes ; then LYX_ERROR([No suitable boost library found (do not use --without-included-boost)]) fi fi - AC_SUBST(BOOST_SEP) AC_SUBST(BOOST_MT) fi ]) +dnl Usage: LYX_USE_INCLUDED_MYTHES : select if the included MyThes should +dnl be used. +AC_DEFUN([LYX_USE_INCLUDED_MYTHES],[ + AC_MSG_CHECKING([whether to use included MyThes library]) + AC_ARG_WITH(included-mythes, + [AC_HELP_STRING([--without-included-mythes], [do not use the MyThes lib supplied with LyX, try to find one in the system directories - compilation will abort if nothing suitable is found])], + [lyx_cv_with_included_mythes=$withval], + [lyx_cv_with_included_mythes=yes]) + AM_CONDITIONAL(USE_INCLUDED_MYTHES, test x$lyx_cv_with_included_mythes = xyes) + AC_MSG_RESULT([$lyx_cv_with_included_mythes]) + if test x$lyx_cv_with_included_mythes != xyes ; then + AC_LANG_PUSH(C++) + AC_CHECK_HEADER(mythes.hxx,[ac_cv_header_mythes_h=yes lyx_cv_mythes_h_location=""]) + if test x$ac_cv_header_mythes_h != xyes; then + AC_CHECK_HEADER(mythes/mythes.hxx,[ac_cv_header_mythes_h=yes lyx_cv_mythes_h_location=""]) + fi + AC_CHECK_LIB(mythes, main, [MYTHES_LIBS="-lmythes" lyx_mythes=yes], [lyx_mythes=no], [-lm]) + if test x$lyx_mythes != xyes; then + AC_CHECK_LIB(mythes-1.2, main, [MYTHES_LIBS="-lmythes-1.2" lyx_mythes=yes], [lyx_mythes=no], [-lm]) + fi + AC_LANG_POP(C++) + if test x$lyx_mythes != xyes -o x$ac_cv_header_mythes_h != xyes; then + LYX_ERROR([No suitable MyThes library found (do not use --without-included-mythes)]) + fi + AC_DEFINE(USE_EXTERNAL_MYTHES, 1, [Define as 1 to use an external MyThes library]) + AC_DEFINE_UNQUOTED(MYTHES_H_LOCATION,$lyx_cv_mythes_h_location,[Location of mythes.hxx]) + AC_SUBST(MYTHES_LIBS) + fi +]) + + 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 @@ -466,6 +499,7 @@ case $lyx_use_packaging in macosx) AC_DEFINE(USE_MACOSX_PACKAGING, 1, [Define to 1 if LyX should use a MacOS X application bundle file layout]) PACKAGE=LyX${version_suffix} default_prefix="/Applications/${PACKAGE}.app" + AC_SUBST(osx_bundle_program_name,"${program_base_name}") bindir='${prefix}/Contents/MacOS' libdir='${prefix}/Contents/Resources' datarootdir='${prefix}/Contents/Resources' @@ -488,12 +522,15 @@ case $lyx_use_packaging in default_prefix=$ac_default_prefix case ${host} in *cygwin*) lyx_install_cygwin=true ;; - esac ;; + *apple-darwin*) lyx_install_macosx=true ;; + esac + lyx_install_posix=true ;; *) LYX_ERROR([Unknown packaging type $lyx_use_packaging]) ;; esac AM_CONDITIONAL(INSTALL_MACOSX, $lyx_install_macosx) -AM_CONDITIONAL(INSTALL_CYGWIN, $lyx_install_cygwin) AM_CONDITIONAL(INSTALL_WINDOWS, $lyx_install_windows) +AM_CONDITIONAL(INSTALL_CYGWIN, $lyx_install_cygwin) +AM_CONDITIONAL(INSTALL_POSIX, $lyx_install_posix) dnl Next two lines are only for autoconf <= 2.59 datadir='${datarootdir}' AC_SUBST(datarootdir) @@ -581,7 +618,7 @@ dnl Called like LYX_CHECK_DEF(name, header, codesnippet) dnl Defines HAVE_DEF_{NAME} AC_DEFUN([LYX_CHECK_DEF], [LYX_AH_CHECK_DEF($1, $2) - AC_MSG_CHECKING([if $1 is defined by header $2]) + AC_MSG_CHECKING([whether $1 is defined by header $2]) AC_TRY_COMPILE([#include <$2>], [$3], lyx_have_def_name=yes, lyx_have_def_name=no) @@ -611,3 +648,24 @@ AC_DEFUN([LYX_SET_VERSION_INFO], AC_SUBST(LYX_DIR_VER,"$lyx_dir_ver") AC_SUBST(LYX_USERDIR_VER,"$lyx_userdir_ver") ]) + +# AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE]) +# --------------------------------------------------------------------------- +# Copied from autoconf 2.68, added a check that python version is < 3.0 +# Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION. +# Run ACTION-IF-FALSE otherwise. +# This test uses sys.hexversion instead of the string equivalent (first +# word of sys.version), in order to cope with versions such as 2.2c1. +# This supports Python 2.0 or higher. (2.0 was released on October 16, 2000). +AC_DEFUN([AM_PYTHON_CHECK_VERSION], + [prog="import sys +# split strings by '.' and convert to numeric. Append some zeros +# because we need at least 4 digits for the hex conversion. +# map returns an iterator in Python 3.0 and a list in 2.x +minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]] +minverhex = 0 +maxverhex = 50331648 # = 3.0.0.0 +# xrange is not present in Python 3.0 and range returns an iterator +for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]] +sys.exit(sys.hexversion < minverhex or sys.hexversion >= maxverhex)" + AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])])