home *** CD-ROM | disk | FTP | other *** search
/ Dream 52 / Amiga_Dream_52.iso / Linux / Divers / lyx-0.13.2.tar.gz / lyx-0.13.2.tar / lyx-0.13.2 / INSTALL < prev    next >
Text File  |  1998-04-23  |  15KB  |  383 lines

  1. Compiling and installing LyX
  2. ============================
  3.  
  4. Original document by Pascal Andre (andre@via.ecp.fr). 
  5. Updates by David L. Johnson (dlj0@lehigh.edu), Jean-Marc Lasgouttes
  6. (Jean-Marc.Lasgouttes@inria.fr), and Asger Alstrup (alstrup@diku.dk).
  7.  
  8. Quick compilation guide
  9. -----------------------
  10.  
  11. These four steps will compile, test and install LyX:
  12.  
  13.     1) ./configure
  14.        configures LyX to your system.
  15.  
  16.     2) make
  17.        compiles the program.
  18.  
  19.     3) src/lyx
  20.        runs the program so you can check it out.
  21.  
  22.     4) make install
  23.        will install it.
  24.  
  25.  
  26. Requirements
  27. ------------
  28.  
  29. You will need to have both an Xforms library and Xpm library to compile 
  30. LyX.  It is imperative that you have the correct versions of these 
  31. libraries, and their associated header files.
  32.  
  33. As of version 0.13.x, you will need to have Xforms library and header
  34. version 0.88.  On some systems, such as linux ELF, there are shared 
  35. library versions of the Xforms library, which require an installation step 
  36. to configure the system.
  37. You can get it from
  38.  
  39.     http://bloch.phys.uwm.edu/xforms
  40.     ftp://einstein.phys.uwm.edu/pub/xforms/
  41.     ftp://ftp.cs.ruu.nl/pub/XFORMS/
  42.     ftp://ftp.via.ecp.fr/pub/xforms/
  43.  
  44. In addition, you must have libXpm version 4.7 (or newer; 4.8 rumoured
  45. to work).
  46.  
  47. If you compile LyX with gcc, you should not need to have libg++ installed 
  48. on most systems.  However, see the note in the section `Problems'.
  49.  
  50. If you make modifications to files in src/ (for example by applying a 
  51. patch), you will need to have the GNU gettext package installed, due to 
  52. some dependencies in the makefiles. You can find the latest (alpha) 
  53. version from:
  54.  
  55.     ftp://alpha.gnu.org/gnu/gettext-0.10.xx.tar.gz.
  56.  
  57. LyX contains a hack to work around this, but you should not rely too
  58. much on it.
  59.  
  60.  
  61. Finally, the two following programs should be available at
  62. configuration time:
  63.  
  64.   o Perl (at least 5.002) is needed for the reLyX script. reLyX will
  65.     not be installed if perl is not found 
  66.  
  67.   o LaTeX2e should be correctly setup for the user you are logged
  68.     as. Otherwise, LyX will not be able to run a number of tests. Note
  69.     that users can run these tests manually with Option->Configure.
  70.  
  71.  
  72. Creating the Makefile
  73. ---------------------
  74.  
  75. LyX can be configured using GNU autoconf utility which attempts to guess 
  76. the configuration needed to suit your system.  The standard way to use it 
  77. is described in the file INSTALL.autoconf.  In most cases you will be able 
  78. to create the Makefile by typing
  79.  
  80.   ./configure
  81.  
  82. For more complicated cases, LyX configure takes the following specific
  83. flags:
  84.  
  85.   o --with-two-colors=[yes|no] that forces LyX to use two colors pixmaps
  86.     (bitmaps) instead of the full-colored standard ones.  Defaults to no.
  87.  
  88.   o --with-extra-lib=DIRECTORY that specifies the path where LyX will find
  89.     extra libraries (Xpm, xforms) it needs.  Defaults to NONE (i.e. search 
  90.     in standard places).  You can specify several directories, separated
  91.     by colons.
  92.  
  93.   o --with-extra-inc=DIRECTORY that gives the place where LyX will find
  94.     xforms headers.  Defaults to NONE (i.e.  search in standard places).
  95.     You can specify several directories, separated by colons.
  96.  
  97.   o --with-extra-prefix[=DIRECTORY] that is equivalent to
  98.        --with-extra-lib=DIRECTORY/lib --with-extra-inc=DIRECTORY/include
  99.    If DIRECTORY is not specified, the current prefix is used.
  100.  
  101.  
  102. There are also flags to control the internationalization support in
  103. LyX:
  104.  
  105.   o --disable-nls suppresses all internationalization support,
  106.     yielding a somewhat smaller code. 
  107.  
  108.   o --with-included-gettext forces the use of the included GNU gettext
  109.     library, although you might have another one installed.
  110.  
  111.   o --with-catgets allows to use the catget() functions which can
  112.     exist on your system.  This can cause problems, though. Use with
  113.     care.
  114.  
  115.   o You can also set the environment variable LINGUAS to a list of
  116.     language in case ou do not want to install all the translation 
  117.     files. For example, if you are only interested in German and
  118.     Finnish, you can type (with sh or bash)
  119.         export LINGUAS='de fi'
  120.     before running configure.
  121.  
  122. Moreover, the following generic configure flags may be useful:
  123.  
  124.   o --prefix=DIRECTORY specifies the root directory to use for
  125.     installation. [defaults to where lyx has already been installed or
  126.     /usr/local]
  127.  
  128.   o --program-suffix=STRING sets the name of the installed LyX binary and 
  129.       of the LyX library directory to lyxSTRING. This may be used to
  130.       compile lyx as lyx-0.12.0 and avoid clashes with later versions.
  131.  
  132.   o --datadir=DIRECTORY gives the directory where all extra LyX 
  133.     files (lyxrc, documentation, templates and layouts definitions) will be 
  134.     installed. [defaults to ${prefix}/share/lyx${program_suffix}]
  135.  
  136.   o --bindir=DIRECTORY gives the directory where the lyx binary
  137.     will be installed. [defaults to ${prefix}/bin]
  138.  
  139.   o --mandir=DIRECTORY gives the directory where the man pages will go.
  140.     [defaults to ${prefix}/man]
  141.  
  142. Note that the --with-extra-* commands are not really robust when it
  143. comes to use of relative paths.  If you really want to use a relative path
  144. here, you can prepend it with "`pwd`/". 
  145.  
  146. If you do not like the default compile flags used (-g -O2 on gcc), you can 
  147. set CXXFLAGS variable to other values as follows:
  148.  
  149.   o CXXFLAGS='-O2' (sh, bash)
  150.   o setenv CXXFLAGS '-O2' (csh, tcsh)
  151.  
  152. Similarly, if you want to force the use of some specific compiler, you can 
  153. give a value to the CXX variable.
  154.  
  155. If you encounter problems, please read the section 'Problems' at the end of 
  156. this file. 
  157.  
  158. In particular, the following options could be useful in some
  159. desperate cases:
  160.  
  161.   o --with-debug that specifies whether you want to have debug information
  162.     by default on standard error.  Default is no. 
  163.  
  164.   o --with-warnings that make the compiler output more warnings during
  165.     the compilation of LyX.  Opposite is --without-warnings.  By default,
  166.     this flag is on for development versions only.
  167.  
  168.   o --with-broken-headers that provides prototypes to replace functions
  169.     not correctly defined in SunOS4 and SCO header files.  Its only effect is
  170.     to suppress a few warnings.  It is autodetected by default.
  171.  
  172.   o --without-latex-config that disables the automatic detection of your
  173.     latex.  This detection is automatically disabled if latex cannot be found. 
  174.     If you find that you have to use this flag, please report it as a bug.
  175.  
  176.   o --with-broken-const attempts to fix a bug in gcc 2.7.[012] (see the
  177.     section 'Problems').
  178.  
  179.   o ---with-gcc-hack which provide a wrapper around gcc that tries to
  180.     compile without optimization after a compilation failed (see the
  181.     section 'Problems').
  182.  
  183.   o --without-liberty suppresses the detection of the -liberty library
  184.     (see the section 'Problems').
  185.  
  186.  
  187. Compiling and installing LyX
  188. ----------------------------
  189.  
  190. Once you've got the Makefile created, you just have to type:
  191.  
  192.   make all
  193.   make install
  194.  
  195. All should be OK ;)
  196.  
  197. BTW: in the images subdirectory there is also a small icon "lyx.xpm",
  198. that can be used to display lyx-documents in filemanagers.
  199.  
  200. If configure fails for some strange reason
  201. ------------------------------------------
  202.  
  203. Even when configure fails, it creates a Makefile.  You always can check
  204. the contents of this file, modify it and run 'make'.
  205.  
  206. Compiling For Multiple Architectures
  207. ------------------------------------
  208.  
  209. You can compile LyX for more than one kind of computer at the same
  210. time, by placing the object files for each architecture in their own
  211. directory.  To do this, you must use a version of `make' that supports
  212. the `VPATH' variable, such as GNU `make'.  `cd' to the directory where
  213. you want the object files and executables to go and run the
  214. `configure' script.  `configure' automatically checks for the source
  215. code in the directory that `configure' is in and in `..'.
  216.  
  217. If you have to use a `make' that does not supports the `VPATH'
  218. variable, you have to compile LyX for one architecture at a time in
  219. the source code directory.  After you have installed LyX for one
  220. architecture, use `make distclean' before reconfiguring for another
  221. architecture.
  222.  
  223. Stripping LyX
  224. -------------
  225.  
  226. A LyX binary for linux is about 1M when compiled without debug-information 
  227. and with dynamic libraries.  If yours is much bigger you probably compiled 
  228. it with debug-informations (-g).  If you don't want to debug LyX just enter
  229.  
  230.           strip src/lyx
  231.  
  232. before installing.  Note that this is done automatically for public
  233. versions.
  234.  
  235.  
  236. Problems
  237. --------
  238.  
  239. This section provides several hints that have been submitted by LyX
  240. team member or users to help compiling on some particular
  241. architectures. If you find that some of this hints are wrong, please
  242. notify us.
  243.  
  244.   o If you have problems indicating that configure cannot find a part of
  245.     the xforms or Xpm library, use the --with-extra-lib and --with-extra-inc 
  246.     options of configure to specify where these libraries reside.  
  247.  
  248.   o If you have GNU gettext installed on your system (e.g. on linux),
  249.     you will get tons of warnings like:
  250.  
  251.     bullet_forms.C:101: warning: passing `char *' to argument 1 of
  252.     `__builtin_constant_p(int)' lacks a cast
  253.  
  254.     These are in harmless warnings caused by a bug in libintl.h, but
  255.     will be solved if you use --with-included-gettext when configuring
  256.     LyX.
  257.  
  258.   o On Digital Unix with cxx, you may have a compilation error in
  259.     lyx_main.C if you have GNU gettext installed. This is due to a bug
  260.     in gettext. To solve this, you can either (1) configure with
  261.     --with-included-gettext or (2) add -D__STDC__ to cxx flags.
  262.  
  263.   o The configure script seems to hang while it is checking the LaTeX setup.
  264.     We think that this is not a real problem, but rather a symptom of the 
  265.     fact that the ec-fonts are being rendered.  This process can take quite 
  266.     some time, so the remedy is simply to have patience. (The fonts need to 
  267.     be rendered at some point to be usable anyways.)
  268.  
  269.   o Configure will seemingly fail to find xpm.h and forms.h on linux if
  270.     you did a 'make mrproper' in the kernel directory, because this
  271.     removes some symbolic links that are needed for compilation. A 'make
  272.     symlinks' in linux kernel sources fixes that.
  273.  
  274.   o According to John Collins <collins@phys.psu.edu>, on SunOS 4.1.3 you may 
  275.     find two sets of X libraries, and they are of course incompatible :-)
  276.     One is the set provided as part of OpenWindows, and one is the standard
  277.     X distribution (e.g., X11R5).  If you encounter problems (or if, for
  278.     some obscure reasons configure cannot find your X libraries) you can
  279.     use the following options:
  280.  
  281.      o --x-libraries=DIRECTORY that indicates where the X libraries reside.
  282.  
  283.      o --x-includes=DIRECTORY that indicate where the X include files reside.
  284.  
  285.     The standard X11R5 libraries should work when the OpenWindows ones
  286.     don't.
  287.  
  288.   o Some systems lack functions that LyX needs.  To fix this, configure
  289.     tries to link against the -liberty library, if it is available. 
  290.     If you experience problems with missing symbols at link time, you 
  291.     could try to install libiberty.a, which comes with several GNU 
  292.     packages (in particular libg++).  In any case, please report your 
  293.     problems to lyx@via.ecp.fr. 
  294.  
  295.     The option --without-liberty disable the detection of -liberty.  It
  296.     is meant for debugging purpose only.
  297.  
  298.   o There are several known bugs in gcc 2.7.xx that cause compiler
  299.     errors.  This is in particular the case in spellchecker.C under
  300.     HP-UX 9.05 (ask Bernhard Iselborn <biselbor@rhrk.uni-kl.de> for
  301.     more comments) and in lyxrc.C under Linux/Alpha or DEC OSF/1.  In
  302.     both cases, the solution is to recompile the offending file
  303.     without optimization and resume the compilation process with
  304.     'make'.  To make things simpler, you can use the option
  305.     --with-gcc-hack of configure that will do that for you
  306.     automatically.  
  307.  
  308.   o According to David Sundqvist <David_Sundqvist@vd.volvo.se>, some
  309.     changes are needed to compile with aCC on HP-UX 10.20. These are the
  310.     relevant changes in the makefile (with comments tagged on):  
  311.  
  312.     CXX = /opt/aCC/bin/aCC 
  313.     CXXFLAGS = -O +inst_none # The aCC compiler tries to run instantiations
  314.                              # which currently break.
  315.  
  316.     LIBS = -lforms -lXpm  -lSM -lICE -lc -lm -lX11 -lCsup # must link with Csup
  317.     LDFLAGS = -L/opt/aCC/lib # perhaps not needed. 
  318.  
  319.   o There is a bug in gcc 2.7.[012] in the handling of const which can
  320.     cause various unpredictable problems.  If you experience weird
  321.     crashes with a LyX compiled by gcc 2.7.[012], try to configure
  322.     with the --with-broken-const flag and recompile.  If this improves
  323.     things, please report it to the mailing list.  Note that this 
  324.     compiler bug is fixed in gcc 2.7.2.1 and in several Linux 
  325.     distributions of gcc 2.7.[012].
  326.  
  327.     This bug is currently not autodetected, but any code to do so
  328.     would be welcome.  A patch for gcc 2.7.2 is as follows:
  329.  
  330. *** clean-ss-951203/expr.c      Sun Nov 26 08:18:07 1995
  331. --- ss-951203/expr.c    Mon Dec  4 11:41:18 1995
  332. *************** expand_expr (exp, target, tmode, modifie
  333. *** 4582,4587 ****
  334.            through a pointer to const does not mean that the value there can
  335.            never change.  Languages where it can never change should
  336.            also set TREE_STATIC.  */
  337. !       RTX_UNCHANGING_P (temp) = TREE_READONLY (exp) | TREE_STATIC (exp);
  338.         return temp;
  339.         }
  340. --- 4582,4588 ----
  341.            through a pointer to const does not mean that the value there can
  342.            never change.  Languages where it can never change should
  343.            also set TREE_STATIC.  */
  344. !       RTX_UNCHANGING_P (temp) = TREE_READONLY (exp) & TREE_STATIC (exp);
  345.         return temp;
  346.         }
  347.  
  348.  
  349.   o On Digital Unix with gcc, you can get warnings like
  350.  
  351. warning, LyXFamilyNames not found in original or external symbol tables, value defaults to 0
  352. warning, LyXSeriesNames not found in original or external symbol tables, value de
  353.  
  354.     These concern symbols beginning with an uppercase letter and seems
  355.     to be harmless. Similarly, the compilation can end with the
  356.     following warning:
  357.  
  358. /bin/ld:
  359. Warning: Linking some objects which contain exception information sections
  360.         and some which do not. This may cause fatal runtime exception handling
  361.         problems (last obj encountered without exceptions was ../intl/libintl.a).
  362.  
  363.  
  364.     You can safely ignore it. 
  365.  
  366.   o Configure fails to work with cxx V5.0-3 on Digital Unix
  367.     V3.2c.  This is due to a bug in this particular version of cxx. 
  368.     Contact Achim Bohnet <ach@rosat.mpe-garching.mpg.de> for more
  369.     details concerning this problem.
  370.  
  371.   o When trying to compile LyX with DEC cxx and cc (for the .c files
  372.     in intl/), the compilation will break because cc and cxx do not
  373.     have the same idea of how one should declare a function
  374.     inline. According to Hans-Martin Keller <hkeller@gwdg.de>, a
  375.     workaround is
  376.  
  377.     export CC="cc -std -D'inline=__inline'"
  378.     ./configure
  379.     [delete line '#define inline __inline' in src/config.h]
  380.     gmake
  381.  
  382.     so that '__inline' is used for cc and 'inline' for cxx.
  383.