# -*- makefile -*- # # The master makefile sets up the follosing customizable (double-colon) targtets. # # debdepends:: # This optional target may be used by the user to install the necessary # system requirements via 'aptitude'. Must be called as root # # setup:: # Called for basic setup. Executed before installing the basic eggs # # eggs:: # Called to install eggs # # buildout:: # Called to install the buildout (e.g. call paster create) # # init-hook:: # Called after the buildout is installed but BEFORE bootstraping # # update-hook:: # Called BEFORE updating the buildout (e.g. before calling bin/buildout) # # bootstrap:: # Called to bootstrap the buildout. Here you can add actions to be # performed AFTER bootstraping the project whenever a bootstrap is performed # # update:: # Called to update the buildout (calls bin/buildout). Here you can add # commands to call AFTER bin/buildout returns. # # .gitignore:: # Called to populate the .gitignore file. Use '@$(gitignore) ' to # add a pattern # # .env:: # Called to add environment variables to be set when executing a shell # Use @$(env) to add a variable settings. may be # PATH Add to PATH # PYTHONPATH Add to PYTHONPATH # Set variable to # # clean:: # Called to clean up all generated files # ########################################################################### BASEDIR=$(shell pwd) default: update-nonet .PHONY: default ########################################################################### # Customization targets debdepends:: .PHONY: debdepends setup:: .PHONY: setup eggs:: .PHONY: eggs buildout:: .PHONY: buildout init-hook:: .PHONY: init-hook update-hook:: .PHONY: update-hook bootstrap:: sed -i -e '1s/^#!.*\/python/#!$(subst /,\/,$(PYTHON))/' $(PYTHON_DIR)/bin/* # $(PYTHON) bootstrap.py $(PYTHON) -c 'from zc.buildout.buildout import main; main(["bootstrap"])' update:: update-hook bin/buildout $(BUILDOUT_OPTS) define gitignore _gitignore () { \ [ -r .gitignore ] || touch .gitignore; \ grep -qxF "$$1" .gitignore || echo "$$1" >>.gitignore; \ }; \ _gitignore endef .gitignore:: @echo "Updating .gitignore" @$(gitignore) "*.pyc" @$(gitignore) "*.egg-info/" @$(gitignore) "/.env" define env _env () { \ [ -r .env ] || touch .env; \ case "$$1" in \ PATH|PYTHONPATH) line="export $$1=\"$$2:\$$$$1\"" ;; \ *) line="export $$1=\"$$2\"" ;; \ esac; \ grep -qxF "$$line" .env || echo "$$line" >>.env; \ }; \ _env endef .env:: @echo "Updating .env" clean:: rm -f .gitignore .env .PHONY: clean ########################################################################### # internal targets ########################################################################### # user targets init: setup eggs buildout init-hook update-hook bootstrap update .gitignore .env versions: @echo "# Add the following lines to [versions] in buildout.cfg to pin all packages" @bin/buildout -Novvvvv | sed -ne 's/^Picked: //p' | sort | uniq shell: @eval "`cat .env`"; $$SHELL update-nonet: BUILDOUT_OPTS=-No update-nonet: update