PostgreSQL depends on some environment variables and directories which are easiest to have via a .bashrc like this: export PG_PREFIX=/home/shackle/tip export PGDATA=$PG_PREFIX/data export PATH=$PG_PREFIX/bin:$PATH export PGPORT=2225 export PGUSER=shackle export PGDATABASE=postgres When you want to work on CVS TIP (aka git master) of PostgreSQL, you'd source this file first. If you want to change to another PostgreSQL, do: make maintainer-clean . /path/to/new/.bashrc.whatever When compiling PostgreSQL, here's a handy-ish configure invocation: ./configure \ --prefix=$PG_PREFIX \ --with-pgport=$PGPORT \ --with-perl \ --with-libxml \ --enable-debug \ --enable-cassert If you have ccache installed, you may also want to do CC="ccache gcc" ./configure ... To avoid confusion, you also might want to un-symlink plparrot from beneath the other source tree and symlink it under contrib/ in the source tree you want to use.