From 3ef4db2ce461249d0e8da45ddce684ddbb7a15cc Mon Sep 17 00:00:00 2001 From: Jean-Marc Lasgouttes Date: Tue, 19 Mar 2013 16:17:40 +0100 Subject: [PATCH] Continue pre-spring cleaning of configure script * build-type=profiling implies -fno-omit-frame-pointer in gcc. This allows sysprof to yield proper call trees * remove --enable-grpof option (the build type is enough) * remove --with-frontend option since we have only one frontend. Move stuff around and generally simplify the Qt detection code * do not check for bc anymore. * Update README. --- INSTALL | 44 +++++++++++++++----------------------------- config/lyxinclude.m4 | 44 ++++++++++++-------------------------------- config/qt4.m4 | 16 ++++++++++++++-- configure.ac | 37 ++++--------------------------------- 4 files changed, 45 insertions(+), 96 deletions(-) diff --git a/INSTALL b/INSTALL index 7ed8b1b46d..72eac7302a 100644 --- a/INSTALL +++ b/INSTALL @@ -6,11 +6,11 @@ Quick compilation guide These four steps will compile, test and install LyX: - 0) Linux users beware: You need qt4 and qt4-devel packages + 0) Linux users beware: You need qt4 and qt4-devel packages of the same version to compile LyX. In general, it is also recommended to have pkg-config - installed (the name might vary depending on your + installed (the name might vary depending on your distribution). 1) ./configure configures LyX according to your system. You @@ -53,7 +53,7 @@ that the compilers are close to C++ standard conforming (gcc 4.x). LyX makes great use of the C++ Standard Template Library (STL). This means that gcc users will have to install the relevant libstdc++ -library to be able to compile this version of LyX. +library to be able to compile this version of LyX. For full LyX usability we suggest to use at least Qt 4.8 which has been widely tested. For compilation you need to compile against at least @@ -110,13 +110,16 @@ flags: concept-checks X X warnings X X debug X X X X - gprof X The defaults are as follows in terms of version number release: stable release (1.x.y) prerelease: version number contains alpha, beta, rc or pre. development: version number contains dev. + The `profiling' build type uses the -fno-omit-frame-pointer option with gcc + + The `gprof' build type compiles and links with -pg option with gcc. + o --with-extra-lib=DIRECTORY that specifies the path where LyX will find extra libraries (qt4) it needs. Defaults to NONE (i.e. search in standard places). You can specify several @@ -155,10 +158,6 @@ LyX: o --with-included-gettext forces the use of the included GNU gettext library, although you might have another one installed. - o --with-catgets allows to use the catget() functions which can - exist on your system. This can cause problems, though. Use with - care. - o You can also set the environment variable LINGUAS to a list of languages in case you do not want to install all the translation files. For example, if you are only interested in German and @@ -203,51 +202,38 @@ give a value to the CXX variable. If you encounter problems, please read the section 'Problems' at the end of this file. -The following options allow you to tweak the generated code more precisely: - - o --enable-gprof instruments the code for use with the gprof - profiler. The results are only meaningful in conjunction with - --enable-build-type=release. +The following options allow you to tweak the generated code more precisely (see the description of --enable-build-type for the default values): o --enable-optimization=VALUE enables you to set optimization to a - higher level than the default (-O), for example --enable-optimization=-O3. + higher level than the default, for example --enable-optimization=-O3. o --disable-optimization - you can use this to disable compiler optimization of LyX. The compile may be much quicker with some compilers, but LyX will run more slowly. o --enable-debug will add debug information to your binary. This - requires a lot more disk space, but is a must if you want to try to - debug problems in LyX. The default is to have debug information - for development versions and prereleases only. + requires a lot more disk space, but is a must if you want to try + to debug problems in LyX. There is no run-time penalty. o --enable-warnings that make the compiler output more warnings during - the compilation of LyX. Opposite is --disable-warnings. By default, - this flag is on for development versions only. + the compilation of LyX. Opposite is --disable-warnings. o --enable-assertions that make the compiler generate run-time code which checks that some variables have sane values. Opposite - is --disable-assertions. By default, this flag is on for - development versions only. + is --disable-assertions. o --enable-stdlib-debug adds some debug code in the standard library; this slows down the code, but has been helpful in the - past to find bugs. By default, this flag is on for development - versions only. + past to find bugs. o --enable-concept-checks adds some compile-time checks. There is no - run-time penalty. By default, this flag is on for development - versions only. + run-time penalty. o --without-latex-config that disables the automatic detection of your latex configuration. This detection is automatically disabled if latex cannot be found. If you find that you have to use this flag, please report it as a bug. - o --with-frontend=FRONTEND that allows to specify which frontend you - want to use. The default value is qt4, which is the only available - frontend for now. - o --enable-monolithic-build[=boost,client,insets,mathed,core,tex2lyx,frontend-qt4] that enables monolithic build of the given parts of the source code. This should reduce the compilation time provided you have diff --git a/config/lyxinclude.m4 b/config/lyxinclude.m4 index c9b48d0b49..f2def99182 100644 --- a/config/lyxinclude.m4 +++ b/config/lyxinclude.m4 @@ -182,11 +182,6 @@ AC_ARG_ENABLE(concept-checks, [enable_concept_checks=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, AC_HELP_STRING([--enable-optimization[=value]],[enable compiler optimisation]),, @@ -231,16 +226,20 @@ if test x$GXX = xyes; then if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS="$ac_save_CXXFLAGS" else - CFLAGS="$lyx_opt" - CXXFLAGS="$lyx_opt" + CFLAGS="$lyx_opt" + CXXFLAGS="$lyx_opt" if test x$enable_debug = xyes ; then - CFLAGS="-g $CFLAGS" - CXXFLAGS="-g $CXXFLAGS" + CFLAGS="-g $CFLAGS" + CXXFLAGS="-g $CXXFLAGS" fi - if test x$enable_gprof = xyes ; then - CFLAGS="-pg $CFLAGS" - CXXFLAGS="-pg $CXXFLAGS" - LDFLAGS="-pg $LDFLAGS" + if test $build_type = gprof ; then + CFLAGS="-pg $CFLAGS" + CXXFLAGS="-pg $CXXFLAGS" + LDFLAGS="-pg $LDFLAGS" + fi + if test $build_type = profiling ; then + CFLAGS="$CFLAGS -fno-omit-frame-pointer" + CXXFLAGS="$CXXFLAGS -fno-omit-frame-pointer" fi fi if test "$ac_env_CPPFLAGS_set" != set; then @@ -450,25 +449,6 @@ rm -f conftest*]) ]) ### end of LYX_PATH_HEADER -### Check which frontends we want to use. -### -AC_DEFUN([LYX_USE_FRONTENDS], -[AC_MSG_CHECKING([what frontend should be used for the GUI]) -AC_ARG_WITH(frontend, - [AC_HELP_STRING([--with-frontend=THIS], [use THIS frontend as main GUI: - Possible values: qt4])], - [FRONTENDS="$withval"],[FRONTENDS="qt4"]) -if test "x$FRONTENDS" = x ; then - AC_MSG_RESULT(none) - AC_MSG_ERROR("Please select a frontend using --with-frontend") -fi -AC_MSG_RESULT($FRONTENDS) -AC_SUBST(FRONTENDS) -AC_SUBST(FRONTENDS_SUBDIRS) -AC_SUBST(FRONTENDS_PROGS) -]) - - ## Check what kind of packaging should be used at install time. ## The default is autodetected. AC_DEFUN([LYX_USE_PACKAGING], diff --git a/config/qt4.m4 b/config/qt4.m4 index d91d9ef0ef..2ac6d70f7d 100644 --- a/config/qt4.m4 +++ b/config/qt4.m4 @@ -135,15 +135,27 @@ AC_DEFUN([QT4_DO_IT_ALL], QT4_DO_MANUAL_CONFIG fi + if test -z "$QT4_LIB"; then + AC_MSG_ERROR([cannot find qt4 library.]) + fi + dnl Check qt version - AS_VERSION_COMPARE($QT4_VERSION, $1, + AS_VERSION_COMPARE($QT4_VERSION, $1, [AC_MSG_ERROR([LyX requires at least version $1 of Qt. Only version $QT4_VERSION has been found.]) ]) AC_PATH_PROGS(MOC4, [moc-qt4 moc],[],$qt4_cv_bin:$PATH) + if test -z "$MOC4"; then + AC_MSG_ERROR([cannot find moc binary.]) + fi AC_PATH_PROGS(UIC4, [uic-qt4 uic],[],$qt4_cv_bin:$PATH) + if test -z "$UIC4"; then + AC_MSG_ERROR([cannot find uic binary.]) + fi AC_PATH_PROGS(RCC4, [rcc-qt4 rcc],[],$qt4_cv_bin:$PATH) - AC_CHECK_PROG(bc_found,[bc],[yes],[no],$PATH) + if test -z "$RCC4"; then + AC_MSG_ERROR([cannot find rcc binary.]) + fi ]) AC_DEFUN([QT4_DO_PKG_CONFIG], diff --git a/configure.ac b/configure.ac index e937a5047f..bab727feef 100644 --- a/configure.ac +++ b/configure.ac @@ -64,9 +64,6 @@ AM_PATH_PYTHON(2.4.0,, :) ### we need to know the byte order for unicode conversions AC_C_BIGENDIAN -### check which frontend we want to use -LYX_USE_FRONTENDS - ### Check for a C++ compiler LYX_PROG_CXX @@ -126,39 +123,14 @@ AC_CHECK_HEADERS(magic.h, is correctly installed on your system. Falling back to builtin file format detection.])]) - -### check which frontend we want to use - +### setup the qt4 frontend. dnl The code below is not in a macro, because this would cause big dnl problems with the AC_REQUIRE contained in QT4_DO_IT_ALL. -for frontend in $FRONTENDS ; do - case "$frontend" in - qt4) - QT4_DO_IT_ALL([4.5.0]) - FRONTENDS_PROGS="$FRONTENDS_PROGS lyx-qt4\$(EXEEXT)" - FRONTENDS_SUBDIRS="$FRONTENDS_SUBDIRS qt4" - RPM_FRONTEND="qt4" - FRONTEND_INFO="${FRONTEND_INFO}\ +QT4_DO_IT_ALL([4.5.0]) +AC_SUBST([FRONTENDS_SUBDIRS], [qt4]) +FRONTEND_INFO="${FRONTEND_INFO}\ Qt 4 Frontend:\n\ Qt 4 version:\t\t${QT4_VERSION}\n" -dnl qt 4 build will fail without moc, uic, or bc - if test -z "$MOC4"; then - AC_MSG_ERROR([cannot find moc binary.]) - fi - if test -z "$UIC4"; then - AC_MSG_ERROR([cannot find uic binary.!]) - fi - if test -z "$QT4_LIB"; then - AC_MSG_ERROR([cannot find qt4 library.]) - fi - if test "$bc_found" = "no"; then - AC_MSG_ERROR([cannot find bc program.]) - fi - ;; - *) - AC_MSG_ERROR([unknown frontend '$frontend'.]);; - esac -done # fix the value of the prefixes. test "x$prefix" = xNONE && prefix=$default_prefix @@ -244,7 +216,6 @@ ${FRONTEND_INFO}\ LyX files dir: ${real_pkgdatadir}\n" AC_SUBST(VERSION_INFO) -AC_SUBST(RPM_FRONTEND) AC_SUBST(AM_CPPFLAGS) AC_SUBST(AM_CXXFLAGS) AC_SUBST(AM_CFLAGS)