.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).