-
Notifications
You must be signed in to change notification settings - Fork 3
/
README.CVS
118 lines (88 loc) · 4.72 KB
/
README.CVS
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
"README.CVS"
$Id: README.CVS,v 1.15 2010/01/21 19:49:56 fang Exp $
-------------------------------------------------------------------------------
You've just checked out HACKT from <strike>CVS</strike> git,
what do you need to need to work?
"It's not so hard to lift yourself by your bootstraps
once you're off the ground."
-- Daniel B. Luten
-------------------------------------------------------------------------------
Getting started:
If you've checked out this project from git as opposed to a distribution
tarball (.tar.gz, .tar.bz2), then you'll need the following GNU autotools
installed on your system:
GNUmake-3.79+ is recommended
automake-1.9+ (OK: 1.10)
autoconf-2.59+ (OK: 2.60, 2.61)
libtool-2.2+ (also works, recommended)
These may be obtained from gnu.org.
TODO: provide a download script for the truly lazy...
The first thing to do is run:
./bootstrap
which runs the GNU autotool commands to create a configure script
(from configure.ac) and configurable Makefile.in's (from Makefile.am's).
(If your autotools are installed in non-standard locations/names, consult the
script to override default variables.)
This does a little bit more than the standard "autoreconf -i",
which is conventionally used to regenerate the same set of files.
With a tarball distribution, you won't need to run bootstrap unless
you modify the Makefile.am's or configure.ac.
If your autotools are installed across different prefixes, you may need to
help the bootstrap (aclocal) by passing ACLOCAL_FLAGS = -I path.
Even when the auto* sources are modified, the Makefiles are built with
maintainer-mode off, so the autotools will automatically regenerate files
as necessary. (You shouldn't have to run bootstrap more than once
per checkout.) To clobber the files generated by the bootstrap process, run:
scripts/maintainerclobber
which should be the equivalent of a cvs-clean, fresh checkout.
Mac OS X Fink users:
May wish to look at pkg/README and pkg/*.info for convenient packages
with hackt's build-dependencies.
FreeBSD ports users:
If your GNU autotools are installed under non-default program names,
try "./scripts/bootstrap.freebsd" to bootstrap.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Other tools needed:
Currently, built documentation is NOT distributed with the source,
so both users and developers need to have the documentation generators.
GNU TexInfo is required for documentation generation.
TexInfo 4.8,4.10,4.11,4.13 are known to work.
TexInfo 4.6 is known to not support the following commands:
@float, @caption, @LaTeX{}, @sansserif, @headitem
TexInfo 4.0 is known to not support the following commands:
@copying, @insertcopying
LaTeX and pdfLaTeX are still recommended for building PostScripts and PDFs.
Recommended version teTeX-3.0 distribution.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
For building HACKT, now refer to "README".
For more on the git tags and make conventions, mostly for maintainers,
refer to "README.maintainer".
-------------------------------------------------------------------------------
Updating from git:
Occasionally, header files are removed from git as they become replaced
or deprecated. You see a message like:
file-xyz.h is no longer in the repository
Unfortunately, this can occasionally leave stale dependencies (in src/)
that are used for header-validation, a feature I've added to the build
machinery for this project. If you see an error message like the following:
cc1plus: blah.h: No such file or directory
make[1]: *** [blah.hchk] Error 1
This means that the source header was removed. The recommend course of
action is the following:
cd src; make clean-header-deps clean-header-tests
and then return to 'make' or whatever you were doing.
This resets all the dependencies and cleans the validation results, which
will be automatically regenerated upon make.
This will never be a problem for those who use source distribution tarballs.
-------------------------------------------------------------------------------
Patch creation relative to git:
For those contributing patches, the easiest way to create a patch is to run:
'make cvsdiffs' from anywhere in the build directory, which can be the same
as the source directory for non-VPATH builds. (This is a global target in
all Makefiles, so you can run in most subdirectories.) If you don't have
commit privileges or prior approval, send the resulting file to the
developer(s).
update: the 'cvsdiffs' target produces gitdiffs-staged and gitdiffs-cached.
If you've properly git-added modified files, gitdiffs-staged should be
empty and gitdiffs-cached contains the patch of interest.
===============================================================================