aboutsummaryrefslogtreecommitdiffstats
path: root/README-hacking
blob: 60abd890f4d4061da9140778dff4b307615e9b41 (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
81
82
83
84
85
86
87
88
89
90
91
92
93
Copyright (C) 2017-2021 Luca Saiu
Written by Luca Saiu

This file is part of GNU Jitter.

GNU Jitter is free software: you can redistribute and/or modify it under the
terms of the GNU General Public License as published by the Free Software
Foundation, either version 3 of the License, or (at your option) any later
version.

GNU Jitter is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.  See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with
this software.  If not, see <http://www.gnu.org/licenses/>.


Obtaining the latest version
============================

GNU Jitter is developed on a public git repository, accessible by anybody over
HTTP at
  http://git.ageinghacker.net/jitter
, and over ssh by developers.


How to compile from a git copy
==============================

You need an Internet connection, git, GNU Autoconf, GNU Automake, GNU Libtool,
GNU Bison, Flex, GNU Texinfo, GNU help2man, plus the usual build tools.  The GNU
Binutils are needed for disassembly support, and advanced dispatches rely
on GCC; a non-GCC modern C compiler suffices to build VMs, but their performance
will be suboptimal.

Running
  ./bootstrap
from the source directory will download Gnulib and copy some files needed at
configuration time, or to be included in source distributions.

From that point on you can configure, compile and install as per the standard
GNU conventions; see the generic INSTALL file and the Jitter manual for more
information.

Building in a separate directory is supported and encouraged.  Jitter supports
cross-compilation.


Package version name and git
============================

This section is only relevant if you work on a git version of Jitter.

Jitter uses build-aux/git-version-gen , from Gnulib.  It is a compromise between
the conflicting needs of automatically tracking commit numbers from the git
history, and not regenerating configure too often.

It is quite easy to get a version string older than it should be, when not
forcing an update.  It is important to get this right when generating tarballs
for others with make dist , and for releases.


Updating PACKAGE_VERSION in the source tree
-------------------------------------------

A comment in git-version-gen says one should delete .version before running
autoconf, or risk missing version changes.
I almost always run autoreconf, which runs autoconf, through the bootstrap
script coming from Gnulib.  I have added an rm line to Jitter's bootstrap.conf ,
taking care of removing .version .

Therefore running
  ./bootstrap
in the source directory *seems* to be enough.  This regenerates the configure
script with the version string correctly updated, and any make target in a build
directory after that point will trigger a reconfiguration.
Tarballs will have .version and .tarball-version , both correctly updated.

Without this kind of explicit updates any expansion of PACKAGE_VERSION or
JITTER_PACKAGE_VERSION may be stale and refer to an older version; this is
particularly relevant for bug reports mentioning a version number, which should
not be taken at face value; this kind of distraction can easily happen even to
experienced users knowing about the issue.


Release checklist
=================

This information is for the maintainer only, and not relevant for other users.

FIXME: write.
[FIXME: git tag]
Generated by cgit on ageinghacker.net.
I am Luca Saiu. If you have reason to request commit access to one of these repositories please contact me. You may also send me patches by email.