From e77a888e4aa7d113c0a7beca52d36701ae429eac Mon Sep 17 00:00:00 2001 From: Hans Ulrich Niedermann Date: Tue, 6 Nov 2007 02:55:36 +0100 Subject: Add git-amb --version param, README-alpha --- README-alpha | 2 + configure.ac | 5 +- git-amb/Makefile-files | 2 +- git-amb/git-amb | 216 ----------------------------------------------- git-amb/git-amb.in | 223 +++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 229 insertions(+), 219 deletions(-) create mode 100644 README-alpha delete mode 100755 git-amb/git-amb create mode 100755 git-amb/git-amb.in diff --git a/README-alpha b/README-alpha new file mode 100644 index 0000000..2fbb621 --- /dev/null +++ b/README-alpha @@ -0,0 +1,2 @@ +x.y versions are official releases +x.y.z versions are intermediate (alpha) versions diff --git a/configure.ac b/configure.ac index 347feed..83f0a9f 100644 --- a/configure.ac +++ b/configure.ac @@ -1,16 +1,17 @@ AC_PREREQ(2.61) AC_INIT([ndims git utilities], - [1.6], + [1.6.3], [hun@n-dimensional.de], [ndim-git-utils]) AC_CONFIG_SRCDIR([git-amb/git-amb.1.in]) AC_CONFIG_AUX_DIR([auto-aux]) AC_CONFIG_MACRO_DIR([m4]) -AM_INIT_AUTOMAKE([-Wall foreign 1.10 dist-bzip2]) +AM_INIT_AUTOMAKE([-Wall foreign 1.10 dist-bzip2 readme-alpha std-options]) m4_pattern_forbid([NDIM_DETECT_MAN2TXT])dnl NDIM_DETECT_MAN2TXT()dnl AC_CONFIG_FILES([Makefile]) AC_CONFIG_FILES([git-amb/git-amb.1]) +AC_CONFIG_FILES([git-amb/git-amb]) AC_OUTPUT diff --git a/git-amb/Makefile-files b/git-amb/Makefile-files index 7113d91..2aa4aeb 100644 --- a/git-amb/Makefile-files +++ b/git-amb/Makefile-files @@ -1,6 +1,6 @@ # -*- makefile -*- bin_SCRIPTS += git-amb/git-amb -EXTRA_DIST += git-amb/git-amb +EXTRA_DIST += git-amb/git-amb.in UPLOAD_FILES += git-amb/git-amb man_MANS += git-amb/git-amb.1 diff --git a/git-amb/git-amb b/git-amb/git-amb deleted file mode 100755 index 433667a..0000000 --- a/git-amb/git-amb +++ /dev/null @@ -1,216 +0,0 @@ -#!/bin/sh -# git-amb - git automake build utility -# Copyright (C) 2007 Hans Ulrich Niedermann -# -# Build automake based git checkout in branch specific build and install trees. -# That makes it easy to compare build results from different branches. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program 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 program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - -# Known to work and tested with -# - git 1.5.3.4 - -USAGE=" [params...]" - -LONG_USAGE="\ -Build automake based git checkout in branch specific build and install trees. -For more details, see the git-amb(1) man page." -. git-sh-setup - -require_work_tree - -self="$(basename "$0")" - -amb_detect_configure() { - for configure_ac in \ - "${top_srcdir}/configure.ac" \ - "${top_srcdir}/configure.in" - do - if test -s "${configure_ac}"; then - break - fi - configure_ac="" - done - test -z "${configure_ac}" && die "configure.{ac,in} not found" - configure="$top_srcdir/configure" -} - -cond_cat_path() { - path="." - for dir - do - if echo "$dir" | grep '^/' > /dev/null; then - path="$dir" - else - path="$path/$dir" - fi - done - echo "$path" -} - -amb_init() { - if test "x$1" = "x"; then - git_branch="$(git branch | sed -n 's/^* //p')" - elif git branch | sed 's/^[ *] //' | grep "$1" > /dev/null; then - git_branch="${1}" - else - die "Invalid branch \"$1\" given." - fi - test "x.git" = "x$(basename "$GIT_DIR")" || die "GIT_DIR=$GIT_DIR is not foo/.git" - top_srcdir="$(cd_to_toplevel && pwd)" - - tmp="$(git-config amb.builddir)" || tmp="$GIT_DIR/amb/build" - top_builddir="$(cond_cat_path "${top_srcdir}" "$tmp" "${git_branch}")" - - tmp="$(git-config amb.installdir)" || tmp="$GIT_DIR/amb/install" - top_installdir="$(cond_cat_path "${top_srcdir}" "$tmp" "$git_branch")" - - amb_detect_configure -} - -amb_autoreconf() { - echo "$self: Running autoreconf for branch ${git_branch}" - autoreconf -vis "$@" "$top_srcdir" -} - -amb_cond_autoreconf() { - if test ! -s "$configure" || test "$configure_ac" -nt "$configure"; then - amb_autoreconf - fi -} - -amb_configure() { - amb_cond_autoreconf - echo "$self: Running configure for branch ${git_branch}" - mkdir -p "$top_builddir" - cd "$top_builddir" - "$top_srcdir/configure" --prefix="$top_installdir" --enable-maintainer-mode "$@" -} - -amb_cond_configure() { - test -s "$top_builddir/Makefile" || amb_configure -} - -amb_make() { - amb_cond_configure - echo "$self: Running make for branch ${git_branch}" - cd "$top_builddir" - make "$@" -} - -amb_printvars() { - echo "$self: Settings for branch ${git_branch}" - echo "$self: source dir $top_srcdir" - echo "$self: build dir $top_builddir" - echo "$self: install dir $top_installdir" -} - -amb_purge() { - echo "$self: Purging branch ${git_branch} build and install" - echo "$self: Purging $top_builddir..." - rm -rf "$top_builddir" - echo "$self: Purging $top_installdir..." - rm -rf "$top_installdir" - echo "$self: Finished." -} - -amb_uninstall() { - echo "$self: Uninstalling branch ${git_branch}" - echo "$self: Purging $top_builddir..." - rm -rf "$top_installdir" - echo "$self: Finished." -} - -amb_shell() { - if test -d "$top_builddir"; then :; else - die "Build directory does not exist yet: ${top_builddir}" - fi - echo "$self: Starting shell for branch ${git_branch}" - export git_amb_srcdir="top_srcdir" - export git_amb_builddir="top_builddir" - export git_amb_installdir="top_installdir" - amb_printvars - export PS1="\ -[Ctrl-D or 'exit' to quit $self shell for branch ${git_branch}]\n\ -[<$self> \w]\n\ -[<$(echo "$self" | sed 's/./-/g')> \u@\h \W]\$ \ -" - cd "$top_builddir" && ${SHELL} "$@" -} - -# Abort on error -set -e - -# The great command case -command="$1" -if shift; then - case "$command" in - builddir) - amb_init "$@" - echo "$top_builddir" - ;; - installdir) - amb_init "$@" - echo "$top_installdir" - ;; - autoreconf) - amb_init - amb_autoreconf "$@" - amb_printvars - ;; - configure) - amb_init - amb_configure "$@" - amb_printvars - ;; - make) - amb_init - amb_make "$@" - amb_printvars - ;; - clean) - amb_init "$@" - amb_make clean - amb_printvars - ;; - distclean) - amb_init "$@" - amb_make distclean - amb_printvars - ;; - purge) - amb_init "$@" - amb_purge - ;; - uninstall) - amb_init "$@" - amb_uninstall - ;; - sh) - amb_init - amb_shell "$@" - amb_printvars - ;; - *) - die "Invalid command line parameter: \"$command\"" - ;; - esac -else - amb_init - amb_printvars -fi - -# End of file. diff --git a/git-amb/git-amb.in b/git-amb/git-amb.in new file mode 100755 index 0000000..0cd9ee6 --- /dev/null +++ b/git-amb/git-amb.in @@ -0,0 +1,223 @@ +#!/bin/sh +# git-amb - git automake build utility +# Copyright (C) 2007 Hans Ulrich Niedermann +# +# Build automake based git checkout in branch specific build and install trees. +# That makes it easy to compare build results from different branches. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program 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 program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + +# Known to work and tested with +# - git 1.5.3.4 + +case "$1" in + -V|--version) + echo "$self (@PACKAGE_NAME@) @PACKAGE_VERSION@" + exit 0 + ;; +esac + +USAGE=" [params...]" + +LONG_USAGE="\ +Build automake based git checkout in branch specific build and install trees. +For more details, see the git-amb(1) man page." +. git-sh-setup + +require_work_tree + +self="$(basename "$0")" + +amb_detect_configure() { + for configure_ac in \ + "${top_srcdir}/configure.ac" \ + "${top_srcdir}/configure.in" + do + if test -s "${configure_ac}"; then + break + fi + configure_ac="" + done + test -z "${configure_ac}" && die "configure.{ac,in} not found" + configure="$top_srcdir/configure" +} + +cond_cat_path() { + path="." + for dir + do + if echo "$dir" | grep '^/' > /dev/null; then + path="$dir" + else + path="$path/$dir" + fi + done + echo "$path" +} + +amb_init() { + if test "x$1" = "x"; then + git_branch="$(git branch | sed -n 's/^* //p')" + elif git branch | sed 's/^[ *] //' | grep "$1" > /dev/null; then + git_branch="${1}" + else + die "Invalid branch \"$1\" given." + fi + test "x.git" = "x$(basename "$GIT_DIR")" || die "GIT_DIR=$GIT_DIR is not foo/.git" + top_srcdir="$(cd_to_toplevel && pwd)" + + tmp="$(git-config amb.builddir)" || tmp="$GIT_DIR/amb/build" + top_builddir="$(cond_cat_path "${top_srcdir}" "$tmp" "${git_branch}")" + + tmp="$(git-config amb.installdir)" || tmp="$GIT_DIR/amb/install" + top_installdir="$(cond_cat_path "${top_srcdir}" "$tmp" "$git_branch")" + + amb_detect_configure +} + +amb_autoreconf() { + echo "$self: Running autoreconf for branch ${git_branch}" + autoreconf -vis "$@" "$top_srcdir" +} + +amb_cond_autoreconf() { + if test ! -s "$configure" || test "$configure_ac" -nt "$configure"; then + amb_autoreconf + fi +} + +amb_configure() { + amb_cond_autoreconf + echo "$self: Running configure for branch ${git_branch}" + mkdir -p "$top_builddir" + cd "$top_builddir" + "$top_srcdir/configure" --prefix="$top_installdir" --enable-maintainer-mode "$@" +} + +amb_cond_configure() { + test -s "$top_builddir/Makefile" || amb_configure +} + +amb_make() { + amb_cond_configure + echo "$self: Running make for branch ${git_branch}" + cd "$top_builddir" + make "$@" +} + +amb_printvars() { + echo "$self: Settings for branch ${git_branch}" + echo "$self: source dir $top_srcdir" + echo "$self: build dir $top_builddir" + echo "$self: install dir $top_installdir" +} + +amb_purge() { + echo "$self: Purging branch ${git_branch} build and install" + echo "$self: Purging $top_builddir..." + rm -rf "$top_builddir" + echo "$self: Purging $top_installdir..." + rm -rf "$top_installdir" + echo "$self: Finished." +} + +amb_uninstall() { + echo "$self: Uninstalling branch ${git_branch}" + echo "$self: Purging $top_builddir..." + rm -rf "$top_installdir" + echo "$self: Finished." +} + +amb_shell() { + if test -d "$top_builddir"; then :; else + die "Build directory does not exist yet: ${top_builddir}" + fi + echo "$self: Starting shell for branch ${git_branch}" + export git_amb_srcdir="top_srcdir" + export git_amb_builddir="top_builddir" + export git_amb_installdir="top_installdir" + amb_printvars + export PS1="\ +[Ctrl-D or 'exit' to quit $self shell for branch ${git_branch}]\n\ +[<$self> \w]\n\ +[<$(echo "$self" | sed 's/./-/g')> \u@\h \W]\$ \ +" + cd "$top_builddir" && ${SHELL} "$@" +} + +# Abort on error +set -e + +# The great command case +command="$1" +if shift; then + case "$command" in + builddir) + amb_init "$@" + echo "$top_builddir" + ;; + installdir) + amb_init "$@" + echo "$top_installdir" + ;; + autoreconf) + amb_init + amb_autoreconf "$@" + amb_printvars + ;; + configure) + amb_init + amb_configure "$@" + amb_printvars + ;; + make) + amb_init + amb_make "$@" + amb_printvars + ;; + clean) + amb_init "$@" + amb_make clean + amb_printvars + ;; + distclean) + amb_init "$@" + amb_make distclean + amb_printvars + ;; + purge) + amb_init "$@" + amb_purge + ;; + uninstall) + amb_init "$@" + amb_uninstall + ;; + sh) + amb_init + amb_shell "$@" + amb_printvars + ;; + *) + die "Invalid command line parameter: \"$command\"" + ;; + esac +else + amb_init + amb_printvars +fi + +# End of file. -- cgit