+
+sampledata_rev := $(shell t/configure-sampledata --revision)
+current_sampledata := t/sampledata/var/rev/v$(sampledata_rev)
+
OS:=$(shell uname | sed 's/[-_].*//')
CFLAGS := -Wall -O2 -Werror -Wno-unknown-pragmas $(PYINCLUDE) $(CFLAGS)
CFLAGS := -D_FILE_OFFSET_BITS=64 $(CFLAGS)
bup_deps := bup lib/bup/_version.py lib/bup/_helpers$(SOEXT) cmds
-.PHONY: all
-all: $(bup_deps) Documentation/all
- t/configure-sampledata --setup
+all: $(bup_deps) Documentation/all $(current_sampledata)
bup:
ln -s main.py bup
Documentation/all: $(bup_deps)
+$(current_sampledata):
+ t/configure-sampledata --setup
+
INSTALL=install
PYTHON=python
PREFIX=/usr
sd = os.path.realpath(cd + '/sampledata')
WVPASSEQ(index.realpath(cd + '/sampledata'), sd)
WVPASSEQ(os.path.realpath(cd + '/sampledata/x'), sd + '/x')
- WVPASSEQ(os.path.realpath(cd + '/sampledata/abs-symlink'),
- sd + '/abs-symlink-target')
- WVPASSEQ(index.realpath(cd + '/sampledata/abs-symlink'),
- sd + '/abs-symlink')
+ WVPASSEQ(os.path.realpath(cd + '/sampledata/var/abs-symlink'),
+ sd + '/var/abs-symlink-target')
+ WVPASSEQ(index.realpath(cd + '/sampledata/var/abs-symlink'),
+ sd + '/var/abs-symlink')
@wvtest
set -o pipefail
-top=$(pwd)
+# NOTE: any relevant changes to var/ must be accompanied by an
+# increment to the revision.
+
+revision=0
+readonly revision
+
+top="$(pwd)" || exit $?
usage()
{
- echo 'Usage: t/configure-sampledata [--setup | --clean]'
+ echo 'Usage: t/configure-sampledata [--setup | --clean | --revision]'
}
if test "$#" -ne 1; then
usage 1>&2; exit 1
fi
+clean()
+(
+ cd t/sampledata || exit $?
+ if test -e var; then rm -r var || exit $?; fi
+ # Remove legacy content (before everything moved to var/).
+ # test -e is false for dangling symlinks.
+ if test -h b -o -e b; then rm b || exit $?; fi
+ if test -h c -o -e c; then rm c || exit $?; fi
+ if test -h abs-symlink -o -e abs-symlink; then
+ rm abs-symlink || exit $?
+ fi
+)
+
case "$1" in
- '--setup')
+ --setup)
(
- cd t/sampledata || exit $?
+ clean
+ mkdir -p t/sampledata/var/rev || exit $?
+ cd t/sampledata/var || exit $?
ln -sf a b || exit $?
ln -sf b c || exit $?
ln -sf "$(pwd)/abs-symlink-target" abs-symlink || exit $?
+ # The "v" ensures that if "configure-sampledata
+ # --revision" and/or the setup above fails somehow,
+ # callers like make will be looking for a file that won't
+ # exist.
+ touch rev/v$revision || exit $?
) || exit $?
;;
- '--clean')
- (
- cd t/sampledata || exit $?
- # test -e is false for dangling symlinks.
- if test -h b -o -e b; then rm b || exit $?; fi
- if test -h c -o -e c; then rm c || exit $?; fi
- if test -h abs-symlink -o -e abs-symlink; then
- rm abs-symlink || exit $?
- fi
- )
+ --clean)
+ clean
+ ;;
+ --revision)
+ echo "$revision" || exit $?
;;
*)
usage 1>&2; exit 1