# -*- Makefile -*- configuration file sample
#
# Adapt to your local setting and copy to Makefile.cfg
#
# ----------------------------------------------------------------------------
# Python Installations (select with `python=` on the `make` command line)

python.23 =
python.24 =
python.25 = C:/Dev/Python254
python.ap25 = C:/Dev/ActivePython254
python.26 = C:/Dev/Python261
python.27 =

# default Python version (if not defined, pick the one from the path)
.python =

# ----------------------------------------------------------------------------
# Database Backends (select with `db=` on the `make` command line)

# db URIs
sqlite.uri = sqlite:test.db
mysql.uri = mysql://tracuser:tracpassword@localhost/trac
postgres.uri = postgres://tracuser:tracpassword@localhost:5432/trac?schema=tractest

# default db backend (if not defined, use in-memory sqlite)
.uri =

# default Python versions to use when `db` is specified
mysql.python = 25
postgres.python = 26

# ----------------------------------------------------------------------------
# Settings for the test server

env = ~/tracenvs
auth = *,~/tracenvs/htdigest.realm,realm

# ----------------------------------------------------------------------------
# Settings for the documentation

dotpath = /usr/local/bin/dot

# ----------------------------------------------------------------------------
# Custom rules

.PHONY: bigtest

bigtest:
	make python=24 test
	make db=postgres test
	make db=mysql test

.PHONY: frup frcomp

frup: stats-pot extraction update-fr stats-fr

frcomp: check-fr compile-fr stats-fr stats-pot
