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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
Installation of libretools is pretty straight-forward. The only
tricky thing is the weird dependence on the devtools-par source code.
The build system will by default look at `$(topdir)/../devtools-par`
for the devtools-par source code. This can be changed by adjusting
the `devtoolsdir` configuration variable, see "Configuration" below.
Once you have the devtools source taken care of, you can have the
default everything-included install by running:
$ make
# make install
Dependencies
------------
Unlike a lot of software, run-time dependencies are not required at
build-time.
Libretools is mostly shell scripts. It very specifically targets
Parabola GNU/Linux-libre; there are a lot of dependencies, most of
which are undocumented. Switching away from a GNU user-land is bound
to cause issues.
## Build dependencies
The "unusual" build-time dependencies are:
- GNU Make -- other `make`s will not work.
- GNU sed -- must support `-r` for ERE; BSD sed uses `-E` for this purpose.
- Emacs -- `emacs --batch` is used use Emacs Lisp to process some text.
- ronn -- A markdown-to-manpage converter
At this time, the build system dos not support not building the
documentation; ronn is required.
Additionally, other usual "core utilities" are required:
cat, chmod, cp, echo, false, find, install, ln, msguniq, rm, tr,
xgettext
Also, `/bin/sh` must support `{brace,expansion}`. If it doesn't, find
a shell that does, and configure `make` to use it. Though, because
libretools is mostly shell scripts, if you deviate too much from a GNU
command-line environment, I suspect that you will run into more
issues. If I were targeting anything other than Parabola, this would
be a bigger issue.
## Test suite dependencies
If you wish to run the test suite, you will need the "roundup" shell
unit testing program. On Parabola GNU/Linux-libre it is called
"sh-roundup". If your operating system doesn't have it, it is
available at <http://bmizerany.github.io/roundup/>.
## Run-time dependencies
Being mostly shell scripts, many external program are used. Anything
that is included when installing the `base` package group on Parabola
GNU/Linux, I consider an implicit dependency. If something isn't used
now, that doesn't mean it won't be in the future.
On top of that, the following dependencies are also needed:
librelib subpackage:
- wget
gitget subpackage:
- librelib (provided)
- git
main libretools subpackage:
- librelib (provided)
- gitget (provided, only needed for `createworkdir`)
- arch-install-scripts
- ssh client (OpenSSH, only needed for `librerelease`
- rsync
- subversion
- tokyocabinet
libretools-mips64el subpackage:
- libretools (provided)
- git
Configuration
-------------
This is not a GNU package, there is no `./configure` script.
There are two ways to set configuration variables:
1. Edit config.mk
2. Pass `VARIABLE=VALUE` to `make`
The configuration variables mostly match GNU packages, but default
values differ; libretools installs to `prefix=/usr` by default instead
of GNU's `prefix=/usr/local`.
Building and installing subpackages
-----------------------------------
There are several subpackages you can build and install. This is done
by running:
$ make build-${package}
# make install-${package}
respectively. In addition to `build` and `install`, the activities
you can do are:
- `copy` -- copy necessary files from the devtools-par source code
- `build` -- build all programs and files
- `install` -- install everything
- `clean` -- remove generated files
- `pot` -- generate gettext portable object template files.
The subpackages you can run these on are:
- doc -- The non-manpage documentation
- libretools -- The main libretools package
- libretools-mips64el -- Programs useful for porting to mips64el
- librelib -- generic libraries included
- gitget -- A git downloader
|