]> git.lyx.org Git - lyx.git/blobdiff - INSTALL
Fixed inset-redraw problems on resizing lyx-window, and some other small
[lyx.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index 5ec5fa5910c80f773cd0e6d2e745f7ac06846655..2a89c4b01a3d5136229e848a1025503384e8c5ee 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -24,7 +24,8 @@ 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. 
 
 
 Requirements
@@ -34,8 +35,8 @@ 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 
 libraries, and their associated header files.
 
-As of LyX version 1.0.0, 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
+As of LyX version 1.1.5, you will need to have Xforms library and header
+version 0.88 or 0.89.  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.
@@ -44,8 +45,8 @@ 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/
@@ -57,8 +58,17 @@ 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 compile LyX with gcc, you should not need to have libg++ installed 
-on most systems.  However, see the note in the section `Problems'.
+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 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. It is _not_ possible to compile LyX with gcc 2.7.x,
+and this is not likely to change in the future.
+
+Note that, contrary to LyX 1.0.x, LyX 1.1.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.
 
 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 
@@ -110,7 +120,12 @@ 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-lyxname=STRING sets the name of the installed LyX binary and 
+    of the LyX library directory to STRING. This may be used to
+    compile lyx as lyx-1.1 and avoid clashes with earlier/later
+    versions. Default is "lyx". 
 
   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.
@@ -142,10 +157,6 @@ Moreover, the following generic configure flags may be useful:
     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.
-
   o --datadir=DIRECTORY gives the directory where all extra LyX 
     files (lyxrc example, documentation, templates and layouts
     definitions) will be installed. 
@@ -176,27 +187,23 @@ 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,
     this flag is on for development versions only.
 
+  o --enable-assertions that make the compilier generater 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').
@@ -212,6 +219,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 maight 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.
 
@@ -238,17 +251,34 @@ 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
+------------------------------------------------------
 
-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 Compile LyX with the right compiler switches for your
+    architecture. In particular you might want to ensure that
+    libraries like xforms and xpm are statically linked. To this end,
+    you can use a command like
 
-          strip src/lyx
+                make LYX_LIBS='/foo/libforms.a /bar/libXpm.a'
 
-before installing.  Note that this is done automatically for public
-versions.
+    Moreover, 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. 
+
+  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).
+
+  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.
+
+  o Upload your binary file to ftp.lyx.org:/pub/lyx/uploads.
 
 
 Problems
@@ -278,6 +308,16 @@ notify us.
     will be solved if you use --with-included-gettext when configuring
     LyX.
 
+  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'
+
+    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
@@ -313,16 +353,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):  
@@ -334,40 +364,10 @@ 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
@@ -381,8 +381,3 @@ Warning: Linking some objects which contain exception information sections
 
     You can safely ignore it. 
 
-  o Configure fails to work with cxx V5.0-3 on Digital Unix
-    V3.2c.  This is due to a bug in this particular version of cxx. 
-    Contact Achim Bohnet <ach@rosat.mpe-garching.mpg.de> for more
-    details concerning this problem.
-