summaryrefslogtreecommitdiffstats
path: root/git-amb/git-amb.man.in
blob: 8a1595217c3f78444febf48908ec4b6d02041418 (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
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
120
121
122
123
124
125
.TH GIT-AMB 1 "@PACKAGE_TARNAME@ @PACKAGE_VERSION@" "2007\-11\-02" "@PACKAGE_NAME@ @PACKAGE_VERSION@"
.SH NAME
git-amb \- git automake build utitilty
.SH SYNOPSIS
.B "git\-amb"
.RB "command"
.RI [ params ]
.SH DESCRIPTION
Build automake based git checkout in branch specific build and install trees.
That makes it easy to compare build results from different branches.
.SH "COMMAND OVERVIEW"
.TP
.B "git\-amb autoreconf [params...]"
Run autoreconf on ${top_srcdir}.
Optional params will be passed on to autoreconf.
.TP
.B "git\-amb configure [params...]"
Run configure in ${top_builddir}.
Optional params will be passed on to configure.
.TP
.B "git\-amb make [params...]"
Run make in ${top_builddir}.
Optional params will be passed on to make.
.TP
.B "git\-amb sh [params...]"
Start shell in ${top_builddir}.
Optional params will be passed on to the shell.
.TP
.B "git\-amb clean [branch]"
Run 'make clean' in ${top_builddir}.
The optional branch is the branch to clean up.
.TP
.B "git\-amb distclean [branch]"
Run 'make distclean' in ${top_builddir}.
The optional branch is the branch to clean up.
.TP
.B "git\-amb purge [branch]"
Remove both build and install tree.
The optional branch is the branch to purge.
.TP
.B "git\-amb uninstall [branch]"
Remove ${installdir}.
The optional branch is the branch to uninstall.
.TP
.B "git\-amb builddir [branch]"
Print ${builddir}.
The optional branch is the branch to print the builddir for.
.TP
.B "git\-amb installdir [branch]"
Print ${installdir}.
The optional branch is the branch to print the installdir for.
.SH CONFIGURATION
Use
.B git\-config
to get and set the config values.
If a config value is not set,
.B git\-amb
uses a built\-in default, which is not documented. Always run the
.B git\-amb
commands
.I builddir
and
.I installdir
to determine the respective directory.
.SS amb.builddir
Location of build tree, relative to top checkout (source) dir, or absolute.
The branch name will be appended to it.
.SS amb.installdir
Location of installation, relative to top checkout (source) dir, or absolute.
The branch name will be appended to it.
.SH EXAMPLES
.nf
  $ git config amb.builddir _builds
  $ git config amb.installdir _installs
.fi
.PP
.nf
  $ git checkout master
  $ git\-amb make install
  $ git checkout foo/bar
  $ git\-amb make dist install
  $ diff \-ru $(git\-amb installdir) $(git\-amb installdir master)
  $ git\-amb sh
  <\-\-\-\-> [...] $ ls *.tar.gz
.fi
.SH "BUGS"
.TP
.B "Access to build results"
Could be better.
.TP
.B "User Interface"
Should be more consistent, smaller.
.TP
.B "Concurrent Usage"
Exhibits problems, e.g. starting
.B "git\-amb sh"
and then running
.B "git checkout other\-branch"
from another terminal.
.TP
.B "Why just git?"
The idea behind
.B "git\-amb"
would work equally well for many other SCMs.
.TP
.B "Why just automake?"
Any build system which works in similar stages should work:
Create BS (autoreconf), configure BS (configure), run build (make).
.SH "NON-BUGS"
.TP
.B "autogen.sh scripts"
It is a feature that
.B git\-amb
does not support
.I "autgen.sh"
 scripts.
Custom autogen.sh script are almost always broken in multiple aspects:
They duplicate the functionality of autoreconf(1), they make two
independent steps into one (running both automake &
Co. and ./configure), they do not allow srcdir != builddir builds.
.SH AUTHORS
.B "git\-amb"
was written by Hans Ulrich Niedermann.
.SH "SEE ALSO"
autoreconf(1), git\-branch(1), git\-checkout(1), git\-config(1).