cleanup rockspec; add luarocks installation to README
[luagraph.git] / README
blobcaaaa9506f61d1e3c834c8c8b203c746a5c1555b
1 LuaGRAPH
2 ========
5 * LuaGRAPH
6   --------
7   
8   LuaGRAPH is a binding to the graphviz library.
10   LuaGRAPH requires the graphviz library version 2.26 or later, which
11   can be downloaded from 
12         
13         http://www.graphviz.org/
16   You must have Lua version 5.1, 5.2 or 5.3. Lua can be downloaded 
17   from its home page:
18           http://www.tecgraf.puc-rio.br/lua/
21 * Documentation
22   -------------
24   Documentation of LuaGRAPH comes with the LuaGRAPH distribution. I recommend also to
25   read the graphviz documentation, which can be found here:
27         http://www.graphviz.org/Documentation.php
28         
30 * Legal matters
31   -------------
33   See the license agreement in the file LICENSE.
35 * Download
36   --------
37   LuaGRAPH can be downloaded from github at
38         
39         https://github.com/hleuwer/luagraph
41   or install with luarocks. See below under "Installation".
43 * Configuration
44   -------------
46   Before building LuaGRAPH you have to adopt the config file by
47   adjusting various constants to the installed Lua and Graphviz version.
49 * Status
50   ------
51   Newest version is LuaGRAPH 2.0 now supports the `cgraph´ library and all
52   Lua versions from Lua 5.1 to Lua 5.3. Lua 5.0 is no longer supported.
53   It has been tested on MacOS Sierra version 10.12.13, Linux Debian and
54   Windows 10 running as guest in a Virtual Box virtual machine under MacOS.
56   Under MacOS and Linux all regression tests pass without any error. Under
57   Windows a couple of functions do not work. See below for explanation.
59   Since it runs perfectly und MacOS and Linux I decided to publish LuaGRAPH 2.0.
61   The library itself runs also under Windows, but the program crashes with
62   an access violation when it comes to more deep interworking with the Windows
63   kernel during reading graphs from files, loading of plugins (both preloaded
64   and on-demand loading). This may be caused by the fact that the binary
65   version of Graphviz 2.38 was compiled (VC 2010?) with a different version
66   than the Luagraph library (VC2015) and the Lua interpreter (VC2008 or MingGW),
67   which leads to loading of multiple version of the Microsoft C runtime
68   libraries. I didn't spend too much effort to make Graphviz compile on
69   my platform using MingGW, MSYS2 or VC2015.
71   Any help on this issue is welcome. 
73 * Installation
74   ------------
75   
76   Install via Luarocks
77   - - - - - - - - - -
78   Simply type the following:
80      $ sudo luarocks GRAPHVIZ_DIR=/opt/local install luagraph
82   You may have to change the value for the GRAPHVIZ_DIR variable to ensure
83   that luarocks finds your GRAPHVIZ installation. On MacOS it is typically
84   installed in /opt/local.
86   Manual Installation
87   - - - - - - - - - - 
88   In order to build LuaGRAPH on a Linux, Unix or Cygwin/Mingw based
89   POSIX like system:
91   1. Make sure you have Lua 5.1 to 5.3. 
92      The file test.lua in the test subdirectory uses lualogging which 
93      can be installed via Luarocks at http://www.luarocks.org.
95   2. With graphviz version 2.12 you might have to use the `ltdl' library 
96      that comes with graphviz in order to have the rendering plugins to 
97      work properly. Version 2.40 is currently the last graphviz version
98      that is supported.
100   3. LuaGRAPH comes with a makefile and a simple config file to adopt
101      the make process to your target system.
103   4. Adopt build configuration to your platform by editing the file
104      config according to you needs.
106   5. Compile the package
108      Type 
109         make
111      If make succeeds you get:
113      * a Lua extension library "graph.so.x.0" in the src sub-directory.
114      * a copy "core.so" of the same Lua extension library in ./graph
116   6. Type "make install" as user root in order to install all relevant
117      files in standard places. The directory /usr/local is the default
118      install prefix.
120      
122 * Environment Variables
123   ---------------------
125   None.
128 * Comments and bug reports
129   ------------------------
131   Please send your comments and bug reports to the Lua mailing list.
133 December 2006 (January 2017)
135 Have fun.