diff --git a/config/lyxinclude.m4 b/config/lyxinclude.m4 index 6c6f5fef90..914a2a692e 100644 --- a/config/lyxinclude.m4 +++ b/config/lyxinclude.m4 @@ -234,6 +234,21 @@ AC_ARG_ENABLE(pch, enable_pch=no;) 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;]) +if test "x$enable_assertions" = xyes ; then + lyx_flags="assertions $lyx_flags" + 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 @@ -302,124 +317,6 @@ test "$lyx_pch_comp" = yes && lyx_flags="pch $lyx_flags" AM_CONDITIONAL(LYX_BUILD_PCH, test "$lyx_pch_comp" = yes) ])dnl - -dnl NOT USED CURRENTLY************************************* -dnl Usage: LYX_CXX_RTTI : checks whether the C++ compiler -dnl supports RTTI -AC_DEFUN([LYX_CXX_RTTI],[ -### Check whether the compiler supports runtime type information -AC_CACHE_CHECK(whether the C++ compiler supports RTTI,lyx_cv_rtti, - [AC_TRY_RUN([ -class rtti { -public: - virtual int tag() { return 0; } -}; -class derived1 : public rtti { -public: - int tag() { return 1; } -}; -class derived2 : public rtti { -public: - int tag() { return 2; } -}; -int main() { - derived1 * foo1 = new derived1(); - derived2 * foo2 = new derived2(); - rtti * bar = foo1; - derived1 * bar1 = dynamic_cast(bar); - if (bar1 == 0) - exit(1); - bar = foo2; - bar1 = dynamic_cast(bar); - if (bar1 != 0) - exit(1); - return 0; -} -],lyx_cv_rtti=yes,lyx_cv_rtti=no,lyx_cv_rtti=no) -]) -if test x$lyx_cv_rtti = xyes ; then - AC_DEFINE(HAVE_RTTI, 1, - [Define to 1 if your compiler supports runtime type information]) -fi]) - - -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,[ ], - [Define to nothing if your compiler does not understand the - 'explicit' directive]) -fi]) - - -dnl NOT USED CURRENTLY************************************* -dnl Usage: LYX_CXX_STL_STACK : checks whether the C++ compiler -dnl has a working stl stack template -AC_DEFUN([LYX_CXX_STL_STACK],[ -AC_CACHE_CHECK(for broken STL stack template,lyx_cv_broken_stack, - [AC_TRY_COMPILE([ -#include -using std::stack; -],[ - stack stakk; - stakk.push(0); -],lyx_cv_broken_stack=no,lyx_cv_broken_stack=yes) -]) -if test $lyx_cv_broken_stack = yes ; then - AC_DEFINE(BROKEN_STL_STACK, 1, - [Define if you have the STL from libg++ 2.7.x, where stack<> is not defined - correctly]) -fi]) - - -dnl Usage: LYX_STD_COUNT : checks wherer the C++ library have a conforming -dnl count template, if not the old HP version is assumed. -AC_DEFUN([LYX_STD_COUNT],[ -AC_CACHE_CHECK(for conforming std::count,lyx_cv_std_count, - [AC_TRY_COMPILE([ -#include -using std::count; -int countChar(char * b, char * e, char const c) -{ - return count(b, e, c); -} -],[ - char a[] = "hello"; - int i = countChar(a, a + 5, 'l'); -],lyx_cv_std_count=yes,lyx_cv_std_count=no) -]) -if test $lyx_cv_std_count = yes ; then - AC_DEFINE(HAVE_STD_COUNT, 1, - [Define if you have a conforming std::count template, otherwise HP version of count template is assumed.]) -fi]) - - -dnl Usage: LYX_CXX_STL_MODERN_STREAMS : checks whether the C++ compiler -dnl supports modern STL streams -AC_DEFUN([LYX_CXX_STL_MODERN_STREAMS],[ -AC_CACHE_CHECK(for modern STL streams,lyx_cv_modern_streams, - [AC_TRY_COMPILE([ -#include -],[ - std::streambuf * test = std::cerr.rdbuf(); - test->pubsync(); -],lyx_cv_modern_streams=yes,lyx_cv_modern_streams=no) -]) -if test $lyx_cv_modern_streams = yes ; then - AC_DEFINE(MODERN_STL_STREAMS, 1, - [Define if you have modern standard-compliant STL streams]) -fi]) - - dnl Usage: LYX_USE_INCLUDED_BOOST : select if the included boost should dnl be used. AC_DEFUN([LYX_USE_INCLUDED_BOOST],[ @@ -447,53 +344,6 @@ AC_DEFUN([LYX_USE_INCLUDED_BOOST],[ ]) -dnl NOT USED CURRENTLY************************************* -dnl LYX_CXX_PARTIAL -AC_DEFUN([LYX_CXX_PARTIAL], [ - AC_REQUIRE([AC_PROG_CXX]) - AC_CACHE_CHECK([if C++ compiler supports partial specialization], - [lyx_cv_cxx_partial_specialization], - [AC_TRY_COMPILE( - [ - template - class k { - public: - }; - template class k { }; - ],[ - k b; - k a; - ],[ - lyx_cv_cxx_partial_specialization=yes - ],[ - lyx_cv_cxx_partial_specialization=no - ]) - ]) - if test x$lyx_cv_cxx_partial_specialization = xyes ; then - AC_DEFINE(HAVE_PARTIAL_SPECIALIZATION, 1, - [Defined if your compiler supports partial specialization.]) - fi -]) - - -dnl Usage: LYX_CXX_GLOBAL_CSTD: checks whether C library functions -dnl are already in the global namespace -AC_DEFUN([LYX_CXX_GLOBAL_CSTD],[ - AC_CACHE_CHECK(whether C library functions are already in the global namespace, - lyx_cv_cxx_global_cstd, - [AC_TRY_COMPILE([ - #include - using std::tolower; - ],[ - return 0; - ],[lyx_cv_cxx_global_cstd=no],[lyx_cv_cxx_global_cstd=yes])]) - if test x$lyx_cv_cxx_global_cstd = xyes; then - AC_DEFINE(CXX_GLOBAL_CSTD,1, - [Define if your C++ compiler puts C library functions in the global namespace]) - 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 @@ -652,42 +502,6 @@ AC_SUBST(program_suffix) ]) -## ------------------------------------------------------------------------ -## Find a file (or one of more files in a list of dirs) -## ------------------------------------------------------------------------ -## -AC_DEFUN([AC_FIND_FILE], -[ -$3=NO -for i in $2; -do - for j in $1; - do - if test -r "$i/$j"; then - $3=$i - break 2 - fi - done -done -]) - -dnl just a wrapper to clean up configure.in -AC_DEFUN([LYX_PROG_LIBTOOL], -[ -AC_REQUIRE([AC_ENABLE_SHARED]) -AC_REQUIRE([AC_ENABLE_STATIC]) -dnl libtool is only for C, so I must force him -dnl to find the correct flags for C++ -ac_save_cc=$CC -ac_save_cflags="$CFLAGS" -CC=$CXX -CFLAGS="$CXXFLAGS" -AC_PROG_LIBTOOL dnl for libraries -CC=$ac_save_cc -CFLAGS="$ac_save_cflags" -]) - - ## ------------------------------------------------------------------------ ## Check whether mkdir() is mkdir or _mkdir, and whether it takes ## one or two arguments. diff --git a/configure.ac b/configure.ac index 8009bc3efb..58d6d98d14 100644 --- a/configure.ac +++ b/configure.ac @@ -29,28 +29,36 @@ save_PACKAGE=$PACKAGE AM_INIT_AUTOMAKE([foreign dist-bzip2 no-define 1.8]) PACKAGE=$save_PACKAGE +# Allow to build some parts of the code as one big chunk +m4_define([ALLPARTS],[boost,client,insets,mathed,core,tex2lyx,frontend_qt4]) +AC_ARG_ENABLE(monolithic-build, + AC_HELP_STRING([--enable-monolithic-build@<:@=LIST@:>@], + [Use monolithic build for modules in LIST (default: ALLPARTS)]), + [test "$enable_monolithic_build" = yes && enable_monolithic_build="ALLPARTS" + test "$enable_monolithic_build" = no && enable_monolithic_build= + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=" ," + for i in $enable_monolithic_build ; do + eval "enable_monolithic_$i=yes" + done + IFS="$ac_save_ifs"], + [enable_monolithic_build=]) + +AM_CONDITIONAL(MONOLITHIC_BOOST, test "x$enable_monolithic_boost" = "xyes") +AM_CONDITIONAL(MONOLITHIC_CLIENT, test "x$enable_monolithic_client" = "xyes") +AM_CONDITIONAL(MONOLITHIC_INSETS, test "x$enable_monolithic_insets" = "xyes") +AM_CONDITIONAL(MONOLITHIC_MATHED, test "x$enable_monolithic_mathed" = "xyes") +AM_CONDITIONAL(MONOLITHIC_CORE, test "x$enable_monolithic_core" = "xyes") +AM_CONDITIONAL(MONOLITHIC_TEX2LYX, test "x$enable_monolithic_tex2lyx" = "xyes") +AM_CONDITIONAL(MONOLITHIC_FRONTEND_QT4, test "x$enable_monolithic_frontend_qt4" = "xyes") + ### Set the execute permissions of the various scripts correctly -for file in config/install-sh config/mkinstalldirs ; do +for file in config/install-sh ; do chmod 755 ${srcdir}/${file} done -### Check for programs -dnl AC_PROG_MAKE_SET -dnl AC_PROG_INSTALL - # Check for installed python AM_PATH_PYTHON(2.3.4,, :) -# Work around a problem in automake 1.4: when invoking install-strip, -# INSTALL_PROGRAM is changed to 'install -s', and since -# INSTALL_SCRIPT==INSTALL_PROGRAM, we get errors with fileutils-4.0 -# which returns an error condition when stripping fails. -INSTALL_SCRIPT='${INSTALL}' - -### we will also need a C compiler to compile GNU gettext -AC_PROG_CC -AC_USE_SYSTEM_EXTENSIONS - ### we need to know the byte order for unicode conversions AC_C_BIGENDIAN @@ -59,40 +67,11 @@ LYX_USE_FRONTENDS ### Check for a C++ compiler LYX_PROG_CXX -### Some checks on what the C++ compiler can(not) do -AC_LANG(C++) -dnl we do not need that currently (and probably all our supported -dnl compiler allow that) -dnl LYX_CXX_PARTIAL -dnl LYX_CXX_EXPLICIT -dnl LYX_CXX_GLOBAL_CSTD -dnl LYX_STD_COUNT -dnl we disable rtti for now -dnl LYX_CXX_RTTI -dnl AC_CHECK_HEADERS(ostream istream sstream locale limits ios) -dnl LYX_CXX_STL_MODERN_STREAMS ### Objective-C compiler AC_PROG_OBJC _AM_DEPENDENCIES([OBJC]) -### and now some special lyx flags. -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;]) -if test "x$enable_assertions" = xyes ; then - lyx_flags="assertions $lyx_flags" - AC_DEFINE(ENABLE_ASSERTIONS,1, - [Define if you want assertions to be enabled in the code]) -fi - -### Library Files -dnl AC_CHECK_LIB(m, sin) - ### Add extra directories to check for libraries. LYX_WITH_DIR([extra-lib],[extra library directory],extra_lib, NONE) LYX_LOOP_DIR($lyx_cv_extra_lib,LYX_ADD_LIB_DIR(lyx_ldflags,$dir)) @@ -138,7 +117,7 @@ AC_CHECK_HEADERS(zlib.h, ### check which frontend we want to use dnl The code below is not in a macro, because this would cause big -dnl problems with the AC_REQUIRE contained in QT_DO_IT_ALL. +dnl problems with the AC_REQUIRE contained in QT4_DO_IT_ALL. for frontend in $FRONTENDS ; do case "$frontend" in qt4) @@ -183,12 +162,11 @@ dnl Dirty trick ahead: disable macro AC_GNU_SOURCE because it triggers a bug wit dnl this can be removed if gettext is been updated to avoid that. m4_undefine([AC_GNU_SOURCE]) m4_defun([AC_GNU_SOURCE],[]) -AM_GNU_GETTEXT +AM_GNU_GETTEXT([no-libtool]) AM_GNU_GETTEXT_VERSION([0.16.1]) AC_LANG_POP(C) # some standard header files -AC_HEADER_DIRENT AC_HEADER_MAJOR AC_CHECK_HEADERS(sys/time.h sys/types.h sys/select.h strings.h locale.h io.h process.h NewAPIs.h utime.h sys/utime.h) @@ -205,19 +183,12 @@ AC_TYPE_SIZE_T AC_TYPE_UID_T AC_CHECK_FUNCS(strerror) +AC_CHECK_FUNCS(chmod close _close getpid _getpid lstat mkfifo mkstemp mktemp open _open pclose _pclose popen _popen readlink strerror) LYX_CHECK_DECL(istreambuf_iterator, iterator) LYX_CHECK_DECL(mkstemp,[unistd.h stdlib.h]) - # Check the form of mkdir() AC_FUNC_MKDIR - -dnl This is a slight hack: the tests generated by autoconf 2.52 do not -dnl work correctly because of some conflict with stdlib.h with g++ 2.96 -dnl We aim to remove this eventually, since we should test as much as -dnl possible with the compiler which will use the functions (JMarc) -AC_LANG_PUSH(C) -AC_CHECK_FUNCS(chmod close _close getpid _getpid lstat mkfifo mkstemp mktemp open _open pclose _pclose popen _popen readlink) -AC_LANG_POP(C) +AC_FUNC_SELECT_ARGTYPES LYX_CHECK_SPELL_ENGINES @@ -244,7 +215,6 @@ esac AM_CONDITIONAL(LYX_WIN_RESOURCE, $lyx_win_res) LYX_SET_VERSION_INFO -AC_FUNC_SELECT_ARGTYPES ### Some information on what just happened real_bindir=`eval "echo \`eval \"echo ${bindir}\"\`"` @@ -349,27 +319,6 @@ char * strerror(int n); #endif ]) -m4_define([ALLPARTS],[boost,client,insets,mathed,core,tex2lyx,frontend_qt4]) -AC_ARG_ENABLE(monolithic-build, - AC_HELP_STRING([--enable-monolithic-build@<:@=LIST@:>@], - [Use monolithic build for modules in LIST (default: ALLPARTS)]), - [test "$enable_monolithic_build" = yes && enable_monolithic_build="ALLPARTS" - test "$enable_monolithic_build" = no && enable_monolithic_build= - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=" ," - for i in $enable_monolithic_build ; do - eval "enable_monolithic_$i=yes" - done - IFS="$ac_save_ifs"], - [enable_monolithic_build=]) - -AM_CONDITIONAL(MONOLITHIC_BOOST, test "x$enable_monolithic_boost" = "xyes") -AM_CONDITIONAL(MONOLITHIC_CLIENT, test "x$enable_monolithic_client" = "xyes") -AM_CONDITIONAL(MONOLITHIC_INSETS, test "x$enable_monolithic_insets" = "xyes") -AM_CONDITIONAL(MONOLITHIC_MATHED, test "x$enable_monolithic_mathed" = "xyes") -AM_CONDITIONAL(MONOLITHIC_CORE, test "x$enable_monolithic_core" = "xyes") -AM_CONDITIONAL(MONOLITHIC_TEX2LYX, test "x$enable_monolithic_tex2lyx" = "xyes") -AM_CONDITIONAL(MONOLITHIC_FRONTEND_QT4, test "x$enable_monolithic_frontend_qt4" = "xyes") - MSYS_AC_CANONICAL_PATH(lyx_abs_top_srcdir, ${srcdir}) MSYS_AC_CANONICAL_PATH(lyx_abs_installed_localedir, ${real_localedir}) MSYS_AC_CANONICAL_PATH(lyx_abs_installed_datadir, ${real_pkgdatadir}) diff --git a/development/scons/scons_manifest.py b/development/scons/scons_manifest.py index b77b40420d..1c0a3cd920 100644 --- a/development/scons/scons_manifest.py +++ b/development/scons/scons_manifest.py @@ -1174,7 +1174,6 @@ config_extra_files = Split(''' config.sub depcomp install-sh - libtool.m4 ltmain.sh lyxinclude.m4 Makefile.am diff --git a/src/support/Package.cpp b/src/support/Package.cpp index aa90f6bd20..138f06b9ee 100644 --- a/src/support/Package.cpp +++ b/src/support/Package.cpp @@ -120,12 +120,7 @@ Package::Package(string const & command_line_arg0, document_dir_ = get_document_dir(home_dir_); FileName const abs_binary = abs_path_from_binary_name(command_line_arg0); - string const bdir = onlyPath(abs_binary.absFilename()); - // We may be using libtools - if (suffixIs(bdir, ".libs/")) - binary_dir_ = FileName(addPath(bdir, "../")); - else - binary_dir_ = FileName(bdir); + binary_dir_ = FileName(onlyPath(abs_binary.absFilename())); // Is LyX being run in-place from the build tree? buildDirs(abs_binary, top_build_dir_location, @@ -276,9 +271,6 @@ void buildDirs(FileName const & abs_binary, while (true) { // Try and find "lyxrc.defaults". string binary_dir = onlyPath(binary.absFilename()); - // We may be using libtools with static linking. - if (suffixIs(binary_dir, ".libs/")) - binary_dir = addPath(binary_dir, "../"); build_support_dir = buildSupportDir(binary_dir, top_build_dir_location); if (!fileSearch(build_support_dir.absFilename(), "Makefile").empty()) { // Try and find "chkconfig.ltx".