HERE := $(PWD) DOWNLOAD_ROOT := http://ftp.postgresql.org/pub/source/ PG_PORT := 25432 PG_VERSION := 9.1.4 PYTHON3 := $(shell which python3) TARBALL_BASENAME := postgresql-$(PG_VERSION) TARBALL_URL := $(DOWNLOAD_ROOT)/v$(PG_VERSION)/$(TARBALL_BASENAME).tar.bz2 all: $(HERE)/bin/pg_ctl $(HERE)/data $(HERE)/log $(HERE)/data/postgresql.conf start: $(HERE)/bin/pg_ctl $(HERE)/data $(HERE)/log $(HERE)/bin/pg_ctl start -D $(HERE)/data -l $(HERE)/log/postgres.log stop: $(HERE)/bin/pg_ctl $(HERE)/data $(HERE)/log $(HERE)/bin/pg_ctl stop -D $(HERE)/data # pg_ctl restart isn't quite what I want... restart: $(HERE)/bin/pg_ctl $(HERE)/data $(HERE)/log $(MAKE) stop && $(MAKE) start $(TARBALL_BASENAME).tar.bz2: curl -L -O $(TARBALL_URL) $(TARBALL_BASENAME)/configure: $(TARBALL_BASENAME).tar.bz2 tar xjvf $< && touch $@ $(HERE)/bin/pg_ctl: $(TARBALL_BASENAME)/configure cd $(TARBALL_BASENAME) && \ PYTHON=$(PYTHON3) ./configure \ --prefix=$(HERE) \ --with-python \ --with-perl \ --with-tcl \ --with-tclconfig=/usr/lib/tcl8.5 \ --with-openssl \ --with-libxml \ --with-libxslt \ --with-pgport=$(PG_PORT) && \ make && \ make install $(HERE)/data: mkdir -p $@ $(HERE)/log: mkdir -p $@ $(HERE)/data/postgresql.conf: $(HERE)/postgresql.conf $(HERE)/data cp -v $< $@