SYSTEMPYTHON = `which python2 python | head -n 1` VIRTUALENV = virtualenv --python=$(SYSTEMPYTHON) ENV = ./local TOOLS := $(addprefix $(ENV)/bin/,flake8 nosetests) # Hackety-hack around OSX system python bustage. # The need for this should go away with a future osx/xcode update. ARCHFLAGS = -Wno-error=unused-command-line-argument-hard-error-in-future INSTALL = ARCHFLAGS=$(ARCHFLAGS) $(ENV)/bin/pip install .PHONY: all all: build .PHONY: build build: | $(ENV) $(ENV): requirements.txt $(VIRTUALENV) --no-site-packages $(ENV) $(INSTALL) -r requirements.txt $(ENV)/bin/python ./setup.py develop touch $(ENV) .PHONY: test test: | $(TOOLS) $(ENV)/bin/flake8 ./syncserver $(ENV)/bin/nosetests -s syncstorage.tests # Tokenserver tests currently broken due to incorrect file paths # $(ENV)/bin/nosetests -s tokenserver.tests # Test against a running server $(ENV)/bin/pserve syncserver/tests.ini 2> /dev/null & SERVER_PID=$$!; \ sleep 2; \ $(ENV)/bin/python -m syncstorage.tests.functional.test_storage \ --use-token-server http://localhost:5000/token/1.0/sync/1.5; \ kill $$SERVER_PID $(TOOLS): | $(ENV) $(INSTALL) nose flake8 .PHONY: serve serve: | $(ENV) $(ENV)/bin/pserve ./syncserver.ini .PHONY: clean clean: rm -rf $(ENV)