]> git.lyx.org Git - lyx.git/blobdiff - INSTALL
merge po files
[lyx.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index f9e6b2579b7ec774a55462e237175d09cc606fd9..075d5e4a3d714b4692e04214045340eb0e3b7f4f 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -1,11 +1,3 @@
-Note for CVS checkouts
-----------------------
-
-If you have checked this out from CVS, you need to have
-automake, autoconf, and gettext installed.  Then,
-type "./autogen.sh" to build the needed configuration
-files and proceed as stated below.
-
 Compiling and installing LyX
 ============================
 
@@ -24,59 +16,80 @@ These four steps will compile, test and install LyX:
           runs the program so you can check it out.
 
        4) make install
-          will install it.
+          will install it. You can use "make install-strip" instead
+           if you want a smaller binary. 
 
 
+Note for CVS checkouts
+----------------------
+
+If you have checked this out from CVS, you need to have
+automake, autoconf, and gettext installed.  Then,
+type "./autogen.sh" to build the needed configuration
+files and proceed as stated below.
+
+You will also probably need GNU m4 (perhaps installed as gm4).
 Requirements
 ------------
 
-You will need to have both an Xforms library and Xpm library to compile 
-LyX.  It is imperative that you have the correct versions of these 
+First of all, you will also need a recent C++ compiler, where recent
+means that the compilers are close to C++ standard conforming.
+Compilers that are known to compile LyX are egcs 1.1.x, gcc 2.95.x and
+later, and Digital C++ version 6.1 and later. Please tell us your
+experience with other compilers. It is _not_ possible to compile LyX
+with gcc 2.7.x and 2.8.x, and this is not likely to change in the
+future.
+
+Note that, contrary to LyX 1.0.x, LyX 1.2.x makes great use of 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.
+
+Both an Xforms and Xpm libraries should be installed to compile LyX.
+It is imperative that you have the correct versions of these
 libraries, and their associated header files.
 
-As of LyX version 1.1.1, you will need to have Xforms library and header
-version 0.81, 0.86, or 0.88.  Version 0.88 is a stable release and the
-recommended version.  On some systems, such as linux ELF, there are shared 
-library versions of the Xforms library, which require an installation step 
-to configure the system.
+As of LyX version 1.2.0, you will need to have Xforms library and
+header version 0.88 or 0.89. Version 0.89.6 is the one which works
+best, but the old stable 0.88.1 version is still supported. On some
+systems, such as linux ELF, there are shared library versions of the
+Xforms library, which require an installation step to configure the
+system.
 
 Xforms is available (free) only in binary format, source code is not
 available.  If it is not available for your machine, contact the Xforms
 developers to request a version for your system.  You can get it from
 
-    http://bragg.phys.uwm.edu/xforms
-    ftp://bragg.phys.uwm.edu/pub/xforms/
+    http://world.std.com/~xforms/
+    ftp://ncmir.ucsd.edu/pub/xforms/
     ftp://ftp.lyx.org/pub/xforms/
     ftp://ftp.fu-berlin.de/unix/X11/gui/xforms
     ftp://ftp.cs.ruu.nl/pub/XFORMS/
 
-In addition, you must have libXpm version 4.7 (or newer; 4.8 rumoured
-to work).
-
-libXpm can be found at:
-           http://www.funet.fi/pub/Linux/sunsite/X11/libs/!INDEX.html
-           (or similar locations at other sunsites like sunsite.unc.edu)
+If you use a rpm-based linux distribution, such as RedHat or Mandrake,
+we recommend that you grab a version of xforms from
+  ftp://ftp.lyx.org/pub/lyx/contrib 
+as the rpm packages commonly found are compiled against glibc 2.0
+instead of 2.[12], and this causes occasional crashes.
 
-You will also need a recent C++ compiler, where recent means that the
-compilers knows a bit about the C++ standard. Compilers that are known
-to compile LyX are gcc 2.8.1 and 2.95.x, the various versions of egcs
-and Digital C++ version 6.1. Please tell us your experience with other
-compilers. 
+In addition, you must have libXpm version 4.7 or newer.
 
-If you compile LyX with gcc, you should not need to have libg++ installed 
-on most systems.  However, see the note in the section `Problems'.
+If you make modifications to files in src/ (for example by applying a
+patch), you will need to have the GNU gettext package installed, due
+to some dependencies in the makefiles. You can find the latest version
+from:
 
-If you make modifications to files in src/ (for example by applying a 
-patch), you will need to have the GNU gettext package installed, due to 
-some dependencies in the makefiles. You can find the latest (alpha) 
-version from:
-
-    ftp://alpha.gnu.org/gnu/gettext-0.10.xx.tar.gz.
+    ftp://ftp.gnu.org/gnu/gettext-0.10.xx.tar.gz.
 
 LyX contains a hack to work around this, but you should not rely too
 much on it.
 
+To use the thesaurus, you will need to install libAikSaurus, available
+from :
 
+    http://aiken.clan11.com/aiksaurus/ 
 Finally, the two following programs should be available at
 configuration time:
 
@@ -87,9 +100,9 @@ configuration time:
     the machine on which LyX is built is not the one where it will
     run). 
 
-  o LaTeX2e should be correctly setup for the user you are logged
+  o LaTeX2e should be correctly setup for the user you are logged in
     as. Otherwise, LyX will not be able to run a number of tests. Note
-    that users can run these tests manually with Option->Configure.
+    that users can run these tests manually with Edit>Reconfigure.
 
 
 Creating the Makefile
@@ -116,12 +129,24 @@ flags:
 
   o --with-extra-prefix[=DIRECTORY] that is equivalent to
        --with-extra-lib=DIRECTORY/lib --with-extra-inc=DIRECTORY/include
-   If DIRECTORY is not specified, the current prefix is used.
+    If DIRECTORY is not specified, the current prefix is used.
+
+  o --with-version-suffix will install LyX as lyx-<version>, e.g. lyx-1.2.0
+    The LyX data directory will be something like <whatever>/lyx-1.2.0/.
+    Additionally your user configuration files will be found in e.g.
+    $HOME/.lyx-1.2.0
 
-  o --with-two-colors=[yes|no] that forces LyX to use two colors pixmaps
-    (bitmaps) instead of the full-colored standard ones.  Defaults to no.
+    You can use this feature to install more than one version of LyX on
+    the same system. You can optionally specify a "version" of your own,
+    by doing something like : ./configure --with-version-suffix=-latestcvs
 
+  o --enable-optimization=VALUE enables you to set optimization to a
+    higher level as the default (-O), 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. 
 There are also flags to control the internationalization support in
 LyX:
 
@@ -145,12 +170,7 @@ LyX:
 Moreover, the following generic configure flags may be useful:
 
   o --prefix=DIRECTORY specifies the root directory to use for
-    installation. [defaults to where lyx has already been installed or
-    /usr/local]
-
-  o --program-suffix=STRING sets the name of the installed LyX binary and 
-      of the LyX library directory to lyxSTRING. This may be used to
-      compile lyx as lyx-1.0.0 and avoid clashes with earlier/later versions.
+    installation. [defaults to /usr/local]
 
   o --datadir=DIRECTORY gives the directory where all extra LyX 
     files (lyxrc example, documentation, templates and layouts
@@ -182,30 +202,26 @@ this file.
 In particular, the following options could be useful in some
 desperate cases:
 
-  o --with-debug that specifies whether you want to have debug information
-    by default on standard error.  Default is no. 
-
-  o --with-warnings that make the compiler output more warnings during
-    the compilation of LyX.  Opposite is --without-warnings.  By default,
+  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.
 
+  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. 
+
   o --with-broken-headers that provides prototypes to replace functions
     not correctly defined in SunOS4 and SCO header files.  Its only effect is
     to suppress a few warnings.  It is autodetected by default.
 
   o --without-latex-config that disables the automatic detection of your
-    latex.  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-broken-const attempts to fix a bug in gcc 2.7.[012] (see the
-    section 'Problems').
-
-  o ---with-gcc-hack which provide a wrapper around gcc that tries to
-    compile without optimization after a compilation failed (see the
-    section 'Problems').
+    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 --without-liberty suppresses the detection of the -liberty library
-    (see the section 'Problems').
+    (see the section `Problems').
 
 
 Compiling and installing LyX
@@ -218,6 +234,12 @@ Once you've got the Makefile created, you just have to type:
 
 All should be OK ;)
 
+Since the binaries with debug information tend to be huge (although
+this does not affect the run-time memory footprint), you might want
+to strip the lyx binary. In this case replace "make install" with
+
+  make install-strip
+
 BTW: in the images subdirectory there is also a small icon "lyx.xpm",
 that can be used to display lyx-documents in filemanagers.
 
@@ -244,17 +266,29 @@ the source code directory.  After you have installed LyX for one
 architecture, use `make distclean' before reconfiguring for another
 architecture.
 
-Stripping LyX
--------------
+Preparing a binary distribution for the use of others
+------------------------------------------------------
+
+  o Compile LyX with the right compiler switches for your
+    architecture. Make sure you use the --without-latex-config switch
+    of configure, since others might not be interested by your
+    configuration :-) 
+
+  o Create a file README.bin describing your distribution and
+    referring to *you* if problems arise. As a model, you can use the 
+    file development/tools/README.bin.example, which can be a good
+    starting point. 
 
-A LyX binary for linux is about 1M when compiled without debug-information 
-and with dynamic libraries.  If yours is much bigger you probably compiled 
-it with debug-informations (-g).  If you don't want to debug LyX just enter
+  o Type `make bindist'. This will create a file
+    lyx-1.xx.yy-bin.tar.gz. Rename it to reflect you architecture 
+    and the peculiarities of your build (e.g. static vs. dynamic).
 
-          strip src/lyx
+  o Check that everything is correct by unpacking the distribution 
+    in some private place and running it. In particular, check the 
+    output of `ldd lyx' to know which libraries are really needed.
 
-before installing.  Note that this is done automatically for public
-versions.
+  o Upload your binary file to ftp.devel.lyx.org:/pub/incoming, and
+    notify larsbj@lyx.org.  
 
 
 Problems
@@ -269,55 +303,70 @@ notify us.
     the xforms or Xpm library, use the --with-extra-lib and --with-extra-inc 
     options of configure to specify where these libraries reside.  
 
-  o Configure will seemingly fail to find xpm.h and forms.h on linux if
-    you did a 'make mrproper' in the kernel directory, because this
-    removes some symbolic links that are needed for compilation. A 'make
-    symlinks' in linux kernel sources fixes that.
+  o Configure will seemingly fail to find xpm.h and forms.h on linux
+    if the kernel headers are not available. Two cases are possible: 
 
-  o If you have GNU gettext installed on your system (e.g. on linux),
-    you will get tons of warnings like:
+      - you have not installed the kernel sources. Then you should
+        install them or at least the kernel-headers package (or
+        whatever it is called in your distribution).
 
-    bullet_forms.C:101: warning: passing `char *' to argument 1 of
-    `__builtin_constant_p(int)' lacks a cast
+      - you have the sources, but you did a 'make mrproper' in the
+       kernel directory (this  this removes some symbolic links that
+       are needed for compilation). A 'make symlinks' in linux kernel
+       sources fixes that. 
 
-    These are in harmless warnings caused by a bug in libintl.h, but
-    will be solved if you use --with-included-gettext when configuring
-    LyX.
+  o if you are using RedHat Linux 7.x, you must make sure you have the
+    latest updated gcc and related packages installed (at least -85),
+    or LyX will not compile or will be mis-compiled.
+  o if you get an error message when compiling LyX that looks like this :
 
-  o It is possible to compile lyx with Digital Unix cxx compiler
-    version 6.1 (and presumably compaq C++ 6.2 on both Tru64 unix and
-    linux/alpha, when this will be available), provided one uses
-       CXX=cxx
-       CXXFLAGS='-ptr /tmp/lyx_cxx_repository -std strict_ansi -g -O'
+    ../../src/minibuffer.h:17: using directive `Object' introduced
+    ambiguous type `_ObjectRec *'
+
+    then you need to upgrade the version of the xforms library you have
+    installed.
+
+  o It is possible to compile lyx with Tru64 Unix cxx compiler
+    version 6.2, provided one uses
+       CXX='cxx -std strict_ansi'
+       CXXFLAGS='-ptr /tmp/lyx_cxx_repository -g'
+       CC=cc
 
     Note that this will not work when compiling directly from the cvs
     repository, due to the tricks used by automake for dependencies. Ask
     Jean-Marc.Lasgouttes@inria.fr for a workaround.
 
-  o On Digital Unix with cxx, you may have a compilation error in
-    lyx_main.C if you have GNU gettext installed. This is due to a bug
-    in gettext. To solve this, you can either (1) configure with
-    --with-included-gettext or (2) add -D__STDC__ to cxx flags.
+    Or rather, it may well work if you are using automake 1.5 and autoconf 2.5
+    or greater, but you'll have to patch automake's depcomp first. (Depcomp
+    is a little shell script to automagically work out file dependencies
+    and it's broken for automake 1.5 and Tru64 :-(). The patch is to be found
+    in config/depcomp.diff.
+    Angus 22 March, 2002.
 
-  o The configure script seems to hang while it is checking the LaTeX setup.
-    We think that this is not a real problem, but rather a symptom of the 
-    fact that the ec-fonts are being rendered.  This process can take quite 
-    some time, so the remedy is simply to have patience. (The fonts need to 
-    be rendered at some point to be usable anyways.)
+  o On Tru64 Unix, you may have to compile with
+    --with-included-string to work around a Tru64 linker limitation
+    (the STL string template creates names which may be too long). We
+    also had reports that it helps with gcc 2.95.2 on solaris 2.6.
 
-  o According to John Collins <collins@phys.psu.edu>, on SunOS 4.1.3 you may 
-    find two sets of X libraries, and they are of course incompatible :-)
-    One is the set provided as part of OpenWindows, and one is the standard
-    X distribution (e.g., X11R5).  If you encounter problems (or if, for
-    some obscure reasons configure cannot find your X libraries) you can
-    use the following options:
+    Using Tru64 Unix 4.0e, the std::string is fine.
+    Angus 22 March, 2002.
 
-     o --x-libraries=DIRECTORY that indicates where the X libraries reside.
+  o On Tru64 Unix with cxx, you may have a compilation error in
+    lyx_main.C if you have GNU gettext installed. This is due to a bug
+    in gettext. To solve this, you can either (1) configure with
+    --with-included-gettext or (2) add -D__STDC__ to cxx flags.
 
-     o --x-includes=DIRECTORY that indicate where the X include files reside.
+  o On Tru64 Unix 4.0e, the STL library routine std::count is broken
+    (/usr/include/cxx/algorithm.cc, line 289 on my machine).
+    It calculates "n" but does not return it! The fix is to add "return n;" to
+    the end of the (4-line long) routine.
+    Angus 22 March, 2002.
 
-    The standard X11R5 libraries should work when the OpenWindows ones
-    don't.
+  o On Tru64 Unix 4.0e, compilation of support/lyxsum.C dies horribly. The
+    work-around is to use the old version, 1.18, of this routine. Ask
+    Angus Leeming <leeming@lyx.org> for details.
+    Angus 22 March, 2002.
 
   o Some systems lack functions that LyX needs.  To fix this, configure
     tries to link against the -liberty library, if it is available. 
@@ -329,16 +378,6 @@ notify us.
     The option --without-liberty disable the detection of -liberty.  It
     is meant for debugging purpose only.
 
-  o There are several known bugs in gcc 2.7.xx that cause compiler
-    errors.  This is in particular the case in spellchecker.C under
-    HP-UX 9.05 (ask Bernhard Iselborn <biselbor@rhrk.uni-kl.de> for
-    more comments) and in lyxrc.C under Linux/Alpha or DEC OSF/1.  In
-    both cases, the solution is to recompile the offending file
-    without optimization and resume the compilation process with
-    'make'.  To make things simpler, you can use the option
-    --with-gcc-hack of configure that will do that for you
-    automatically.  
-
   o According to David Sundqvist <David_Sundqvist@vd.volvo.se>, some
     changes are needed to compile with aCC on HP-UX 10.20. These are the
     relevant changes in the makefile (with comments tagged on):  
@@ -350,50 +389,4 @@ notify us.
     LIBS = -lforms -lXpm  -lSM -lICE -lc -lm -lX11 -lCsup # must link with Csup
     LDFLAGS = -L/opt/aCC/lib # perhaps not needed. 
 
-  o There is a bug in gcc 2.7.[012] in the handling of const which can
-    cause various unpredictable problems.  If you experience weird
-    crashes with a LyX compiled by gcc 2.7.[012], try to configure
-    with the --with-broken-const flag and recompile.  If this improves
-    things, please report it to the mailing list.  Note that this 
-    compiler bug is fixed in gcc 2.7.2.1 and in several Linux 
-    distributions of gcc 2.7.[012].
-
-    This bug is currently not autodetected, but any code to do so
-    would be welcome.  A patch for gcc 2.7.2 is as follows:
-
-*** clean-ss-951203/expr.c      Sun Nov 26 08:18:07 1995
---- ss-951203/expr.c    Mon Dec  4 11:41:18 1995
-*************** expand_expr (exp, target, tmode, modifie
-*** 4582,4587 ****
-           through a pointer to const does not mean that the value there can
-           never change.  Languages where it can never change should
-           also set TREE_STATIC.  */
-!       RTX_UNCHANGING_P (temp) = TREE_READONLY (exp) | TREE_STATIC (exp);
-        return temp;
-        }
---- 4582,4588 ----
-           through a pointer to const does not mean that the value there can
-           never change.  Languages where it can never change should
-           also set TREE_STATIC.  */
-!       RTX_UNCHANGING_P (temp) = TREE_READONLY (exp) & TREE_STATIC (exp);
-        return temp;
-        }
-
-
-  o On Digital Unix with gcc, you can get warnings like
-
-warning, LyXFamilyNames not found in original or external symbol tables, value defaults to 0
-warning, LyXSeriesNames not found in original or external symbol tables, value de
-
-    These concern symbols beginning with an uppercase letter and seems
-    to be harmless. Similarly, the compilation can end with the
-    following warning:
-
-/bin/ld:
-Warning: Linking some objects which contain exception information sections
-        and some which do not. This may cause fatal runtime exception handling
-        problems (last obj encountered without exceptions was ../intl/libintl.a).
-
-
-    You can safely ignore it.