summaryrefslogtreecommitdiffabout
path: root/README-hacking
blob: 453e702ea04d835c9f3d7df5fc3bfbe616f6fe61 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
* Overview

This file provides instructions on how to build and hack on the rex sources
obtained from Git repository.

For generic information about Rex and its purposes, please see the file
README.

* Prerequisites

The rex toolchain consists of the following tools:

- GNU Make <http://www.gnu.org/software/make/>
- GNU AWK <http://www.gnu.org/software/gawk/>
- GNU tar <http://www.gnu.org/software/tar/>
- Expect <http://expect.sourceforge.net>

For normal functioning of rex only the latter is required.

* Workflow

No special bootstrapping is needed, the sources are ready for
running and installing.  The main script, rex, can be run
without installing, although some defaults can be confusing.

The file GNUmakefile contains Make rules for building the
distribution.  Normally, typing

    make dist 

will do the job.

Some rules depend on GNU AWK.  If it is available under a different
name or in another directory, use the AWK variable to indicate it,
e.g.:  make AWK=gawk dist. 

* Make commands

 make dist         Create distribution tarball.
 make ChangeLog    Create ChangeLog from git log.
 make help         Displays this document.

* The install tool

All job on creating distribution tarballs and installing the package
is done by the "install" script.  See the file README for generic
instructions.  The invocation syntax is:

  install [OPTIONS] [ASGN]

The options are:  

    -n, --dry-run     do nothing, print what would have been done
    -k, --keep-going  continue working after encountering an error
    -v, --verbose     verbosely pring what is being done
    --dist            create distribution tarball and terminate
    --prefix=DIR      set installation prefix (default /usr)
    --sysconfdir=DIR  set configuration directory (/etc/rex)
    --bindir=DIR      set directory for user executables ($prefix/bin)
    --mandir=DIR      set man documentation root directory ($prefix/share/man)
    --tclpackagedir=DIR
	              directory for installing TCL packages
    --extras          install extra packages

ASGN are environment variable assignments in the form NAME=VALUE.  The
only meaningful variable is DESTDIR, which changes the topmost
directory from / to the given value.  E.g. the effect of

    ./install DESTDIR=/tmp --prefix=/usr/local

is that rex will create the necessary directory structure and install
files under /tmp/usr/local, so that the main executable will be
located in /tmp/usr/local/bin, etc.  Use this for packaging purposes.


Local Variables:
mode: outline
paragraph-separate: "[ 	]*$"
version-control: never
End:

Return to:

Send suggestions and report system problems to the System administrator.