#! /bin/sh

# Build tags files.
trap 'rm -f tags' 0 1 2 3 13 15

# Skip this when building release packages
test -n "$WT_RELEASE_BUILD" && exit 0

# We have to be in the dist directory to run.
test -f s_tags || {
	echo "s_tags requires dist be the current working directory"
	exit 1
}

# We require ctags which may not be installed.
type ctags > /dev/null 2>&1 || {
	echo 'skipped: ctags not found'
	exit 0
}

# Test to see what flags this ctags binary supports.
flags=""
for i in -d -t -w --language-force=C; do
	if ctags $i ../src/conn/api_strerror.c 2>/dev/null; then
		flags="$i $flags"
	fi
done

# Generate a tags file for the standard build directory.
(cd ../build_posix &&
rm -f tags &&
ctags $flags ../src/include/*.in `find ../src -name '*.[chi]'` 2>/dev/null)

# Generate a tags file for the src/include directory.
(cd ../src/include &&
rm -f tags &&
ctags $flags ../include/*.in `find .. -name '*.[chi]'` 2>/dev/null)

# Link the tags file into place in the standard source directories, if we're
# at the right level.
link_tag()
{
	if test -e ../include/tags; then
		rm -f tags && ln -s ../include/tags .
	fi
}

# Link to the tags file from standard build and source directories.
dirs="`python -c 'import dist; dist.print_source_dirs()'` ../src/os_win"
for i in $dirs; do
	expr "$i" : ".*/include" > /dev/null && continue

	(cd $i && link_tag)
done

exit 0
