12da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
22da489cd246702bee5938545b18a6f710ed214bcJamie Gennisprep:
32da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	@echo
42da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	# Install needed packages
52da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	sudo apt-get install subversion fakeroot python-setuptools python-subversion
62da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	#
72da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	@echo
82da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	# Check that the person has .pypirc
92da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	@if [ ! -e ~/.pypirc ]; then \
102da489cd246702bee5938545b18a6f710ed214bcJamie Gennis		echo "Please create a ~/.pypirc with the following contents:"; \
112da489cd246702bee5938545b18a6f710ed214bcJamie Gennis		echo "[server-login]"; \
122da489cd246702bee5938545b18a6f710ed214bcJamie Gennis		echo "username:google_opensource"; \
132da489cd246702bee5938545b18a6f710ed214bcJamie Gennis		echo "password:<see valentine>"; \
142da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	fi
152da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	#
162da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	@echo
172da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	# FIXME(tansell): Check that the person has .dputrc for PPA
182da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
192da489cd246702bee5938545b18a6f710ed214bcJamie Gennisclean:
202da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	# Clean up any build files.
212da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	python setup.py clean --all
222da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	#
232da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	# Clean up the debian stuff
242da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	fakeroot ./debian/rules clean
252da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	#
262da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	# Clean up everything else
272da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	rm MANIFEST || true
282da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	rm -rf build-*
292da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	#
302da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	# Clean up the egg files
312da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	rm -rf *egg*
322da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	#
332da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	# Remove dist
342da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	rm -rf dist
352da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
362da489cd246702bee5938545b18a6f710ed214bcJamie Gennisdist:
372da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	# Generate the tarball based on MANIFEST.in
382da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	python setup.py sdist
392da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	#
402da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	# Build the debian packages
412da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	fakeroot ./debian/rules binary
422da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	mv ../python-gflags*.deb ./dist/
432da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	#
442da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	# Build the python Egg
452da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	python setup.py bdist_egg
462da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	#
472da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	@echo
482da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	@echo "Files to upload:"
492da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	@echo "--------------------------"
502da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	@ls -l ./dist/
512da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
522da489cd246702bee5938545b18a6f710ed214bcJamie Gennispush:
532da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	# Send the updates to svn
542da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	# Upload the source package to code.google.com
552da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	- /home/build/opensource/tools/googlecode_upload.py \
562da489cd246702bee5938545b18a6f710ed214bcJamie Gennis		-p python-gflags ./dist/*
572da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	#
582da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	# Upload the package to PyPi
592da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	- python setup.py sdist upload
602da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	- python setup.py bdist_egg upload
612da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	#
622da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	# Upload the package to the ppa
632da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	# FIXME(tansell): dput should run here
642da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
652da489cd246702bee5938545b18a6f710ed214bcJamie Gennischeck:
662da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	# Run all the tests.
672da489cd246702bee5938545b18a6f710ed214bcJamie Gennis	for test in tests/*.py; do PYTHONPATH=. python $$test || exit 1; done
682da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
692da489cd246702bee5938545b18a6f710ed214bcJamie Gennis.PHONY: prep dist clean push check
70