Make system.mk logic consistent
[notion/jeffpc.git] / README
blob04b7b3bbaa8b4f887756367538d6778586cc024d
2 Notion
3 ===
5 Copyright (c) the Notion team 2010-2011.
6 Copyright (c) Tuomo Valkonen 1999-2009.
8 http://notion.sf.net
9           
11 Building and installing
12 -----------------------
14 See also: 
16   https://sourceforge.net/apps/mediawiki/notion/index.php?title=Development
18 1. Get the source code.  Make sure all submodules are present and up to date.
19     git clone git://notion.git.sourceforge.net/gitroot/notion/notion
20     cd notion
21     git submodule init
22     git submodule update
24 2. Make sure you have the following tools and libraries installed (along
25    with, of course, standard X11 and libc stuff).
27     * GNU make <http://www.gnu.org/software/make/>
28     * Lua 5.1 <http://www.lua.org/>
29     * gettext <http://www.gnu.org/software/gettext/>
31    On Ubuntu the following packages are required:
32      build-essential lua5.1 liblua5.1-0-dev libx11-dev libxext-dev libsm-dev gettext
33    On Debian:
34      build-essential lua5.2 liblua5.2-dev xorg-dev gettext
36    If you also build the RandR and Xinerama modules, you will need:
37      libxinerama-dev libxrandr-dev
39 3. Edit `system.mk` to suit your system. Most settings should be autodetected.
41 4. If you want to build some extra modules now or do not want to build
42    some of the standard modules, edit `modulelist.mk`.
43    
44 5. Run `make`. Note that `make` here refers to GNU make which is usually
45    named `gmake` on systems with some other implementation of make as 
46    default.
47    
48 6. Run `make install`, as root if you set `$PREFIX` in `system.mk` to a 
49    directory that requires those privileges.
50    
51    YOU SHOULD NOT SKIP THIS STEP unless you know what you are doing. Notion
52    will refuse to start if it can not find all the necessary uncorrupt
53    configuration files either in `$PREFIX/etc/notion/` or in `~/.notion/`.
55 7. How to best set up `startx` or whatever to start Notion instead of your
56    current window manager depends on your system's setup. A good guess
57    is creating or modifying an executable shell script `.xsession` in your
58    home directory to start Notion. This should usually (but not always) work
59    if you're using some X display/login manager. If `~/.xsession` does not 
60    help and you're not using a display manager, modifying `~/.xinitrc` or 
61    creating one based on your system's `xinitrc` (wherever that may be; 
62    use `locate`) may be what you need to do. Note that unlike `.xsession`, 
63    a `.xinitrc` should usually do much more setup than simply start a few
64    programs of your choice.
66 Please see the file `RELNOTES` for additional release-specific installation
67 and configuration notes.
70 Some optional installation steps
71 --------------------------------
73 1. The F5 and F6 keys expect to find the program `run-mailcap` to select
74    a program to view a file based on its guessed MIME type. Unless you are
75    using Debian, most likely you don't have it, but any other similar 
76    program (or just plain old text editor) will do as well -- just modify the
77    bindings in `cfg_notioncore.lua`. Of course, if you don't want to use the 
78    feature at this time or never, you may simply skip this step. If you want
79    to use `run-mailcap`, it can be found from the following address, as a 
80    source tarball as well:
81    
82        <http://www.debian.org/Packages/unstable/net/mime-support.html>
84 2. Notion supports caching known man-pages in a file for faster man-page
85    completion in the F1 man page query. To enable this feature, you must
86    periodically run a cronjob to build this list. To create a system-wide
87    man page cache, run `crontab -e` (might vary depending on platform) as
88    root and enter a line such as follows:
90         15 05 * * * $SHAREDIR/ion-completeman -mksyscache
92    Replace `$SHAREDIR` with the setting from `system.mk`. This example 
93    runs daily at 05:15, but you may modify the  run times to your needs;
94    see the crontab manual. 
95    
96    If you can't or do not want to build a system-wide man page cache, run
97    `crontab -e` as your normal user and replace `-mksyscache` with
98    `-mkusercache` above. The cache file will be `~/.notion/mancache`.
99    
100    It may also be useful to run `ion-completeman` with the suitable
101    `-mk*cache` argument once manually to build the initial cache.
102    
103    If the `MANPATH` environment variable is not set on your system and it
104    does not have the `manpath` command (or it does not print anything 
105    sensible), you may also want to set the `ION_MANPATH` environment
106    variable to the list of paths where the system stores manual pages.
109 Configuration
110 -------------
112 For help on modifying Notion's configuration files, PLEASE READ THE DOCUMENT
113 "Configuring and extending Notion with Lua" available from the Notion web page,
114 listed at the top of this file.
117 Questions, comments, problems?
118 ------------------------------
120 If the available documentation does not answer your question, please
121 post it to the mailing list. Details can be found on the Notion web page
122 listed at the top of this file.
125 Credits
126 -------
128 Notion was written by the Notion team, based on Ion which was written by Tuomo
129 Valkonen.
131 The dock module was written by Tom Payne and Per Olofsson.
133 `utils/ion-completefile/ion-completefile.c` is based on editline, (c)
134 1992 Simmule Turner and Rich Salz. See the file for details.
136 The code that `de/fontset.c` is based on seems to have been originally
137 written by Tomohiro Kubota, but see the file for details.
139 Various (minor) patches have been contributed by other individuals 
140 unlisted  here. See the mailing list archives and the darcs source 
141 repository history at <http://iki.fi/tuomov/repos/>. For translators
142 see the individual `.po` files in `po/`.
144 The code in `de/unicode' (producing `de/precompose.c') is taken from
145 xterm.
147 See `libtu/README` for code by others integrated into libtu.