From 771485dc94558446613660e4f423c20604150d9e Mon Sep 17 00:00:00 2001 From: Zooko O'Whielacronx Date: Thu, 13 Sep 2007 18:20:35 -0700 Subject: [PATCH] re-port Makefile to Windows and remove a bunch of no-longer-needed hacks --- Makefile | 105 +++++++++++------------------------------- misc/find-dep-eggs.py | 11 +++-- 2 files changed, 34 insertions(+), 82 deletions(-) diff --git a/Makefile b/Makefile index 0c47ea95..ecbe7958 100644 --- a/Makefile +++ b/Makefile @@ -16,9 +16,7 @@ default: build -BASE=$(shell pwd) PYTHON=python -INSTDIR=$(BASE)/instdir PATHSEP=$(shell python -c 'import os ; print os.pathsep') TRIALPATH=$(shell which trial.py 2>/dev/null) ifeq ($(TRIALPATH),) @@ -31,62 +29,45 @@ ifeq ($(TRIALPATH),) TRIALPATH=$(shell $(PYTHON) -c "import os, sys; print repr(os.path.join(sys.prefix, \"Scripts\", \"trial\"))") endif -EXTRA_SETUP_ARGS= -REACTOR=poll +REACTOR= PLAT = $(strip $(shell python -c "import sys ; print sys.platform")) -ifeq ($(PLAT),cygwin) - # The platform is Windows with cygwin build tools and the cygwin Python interpreter. - INSTDIR := $(shell cygpath -u $(INSTDIR)) +ifeq ($(PLAT),win32) + # The platform is Windows with cygwin build tools and the native Python interpreter. + TRIALPATH := $(shell cygpath -w $(TRIALPATH)) + SUPPORT = $(shell cygpath -w $(shell pwd))\support + SUPPORTLIB := $(SUPPORT)\Lib\site-packages else - ifeq ($(PLAT),win32) - # The platform is Windows with cygwin build tools and the native Python interpreter. - EXTRA_SETUP_ARGS=build -c mingw32 - REACTOR=select - INSTDIR := $(shell cygpath -w $(INSTDIR)) - TRIALPATH := $(shell cygpath -w $(TRIALPATH)) - ifneq ($(PYTHONPATH),) - PYTHONPATH := $(shell cygpath -w $(PYTHONPATH)) - endif - endif + PYVER=$(shell $(PYTHON) misc/pyver.py) + SUPPORT = $(shell pwd)/support + SUPPORTLIB = $(SUPPORT)/lib/$(PYVER)/site-packages endif -ORIGPYTHONPATH=$(PYTHONPATH) - -# Append instdir/lib instead of prepending it so that people can override -# things from lib with alternate packages of their choosing by setting their -# PYTHONPATH. - -ifneq ($(PYTHONPATH),) -PYTHONPATH := "$(PYTHONPATH)$(PATHSEP)$(INSTDIR)/lib" +ifneq ($(REACTOR),) + REACTOROPT := --reactor=$(REACTOR) else -PYTHONPATH := "$(INSTDIR)/lib" + REACTOROPT := endif -TRIAL=$(PYTHON) -u "$(TRIALPATH)" --rterrors --reactor=$(REACTOR) +TRIAL=$(PYTHON) -u "$(TRIALPATH)" --rterrors $(REACTOROPT) -show-instdir: - @echo $(INSTDIR)/lib - -PYVER=$(shell $(PYTHON) misc/pyver.py) -SUPPORT = $(BASE)/support -SUPPORTLIB = $(SUPPORT)/lib/$(PYVER)/site-packages build-deps: - mkdir -p $(SUPPORTLIB) - PYTHONPATH=$(PYTHONPATH)$(PATHSEP)$(SUPPORTLIB) $(PYTHON) setup.py install \ - --prefix=$(SUPPORT) + mkdir -p "$(SUPPORTLIB)" + PYTHONPATH="$(PYTHONPATH)$(PATHSEP)$(SUPPORTLIB)" $(PYTHON) setup.py install \ + --prefix="$(SUPPORT)" + EGGSPATH = $(shell $(PYTHON) misc/find-dep-eggs.py) show-eggspath: @echo $(EGGSPATH) -PP=PYTHONPATH=$(EGGSPATH)$(PATHSEP)$(PYTHONPATH) +PP=PYTHONPATH="$(EGGSPATH)$(PATHSEP)$(PYTHONPATH)" .PHONY: make-version build make-version: - $(PP) $(PYTHON) misc/make-version.py "allmydata-tahoe" "src/allmydata/_version.py" + $(PYTHON) misc/make-version.py "allmydata-tahoe" "src/allmydata/_version.py" build: make-version - $(PP) $(PYTHON) ./setup.py build_ext -i + $(PYTHON) ./setup.py build_ext -i # 'make install' will do the following: # build+install tahoe (probably to /usr/lib/pythonN.N/site-packages) @@ -106,56 +87,27 @@ else endif -# RUNNING -# -# these targets let you create a client node in the current directory and -# start/stop it. - -.PHONY: create-client start-client stop-client run-client -.PHONY: create-introducer start-introducer stop-introducer - -create-client: build - $(PP) $(PYTHON) bin/allmydata-tahoe create-client -C CLIENTDIR -start-client: build - $(PP) $(PYTHON) bin/allmydata-tahoe start -C CLIENTDIR -stop-client: build - $(PP) $(PYTHON) bin/allmydata-tahoe stop -C CLIENTDIR - -create-introducer: build - $(PP) $(PYTHON) bin/allmydata-tahoe create-introducer -C INTRODUCERDIR -start-introducer: build - $(PP) $(PYTHON) bin/allmydata-tahoe start -C INTRODUCERDIR -stop-introducer: build - $(PP) $(PYTHON) bin/allmydata-tahoe stop -C INTRODUCERDIR - - - # TESTING -.PHONY: test-all test test-figleaf figleaf-output +.PHONY: test test-figleaf figleaf-output # you can use 'make test TEST=allmydata.test.test_introducer' to run just # test_introducer. TEST=allmydata.test.test_client.Basic.test_permute works # too. TEST=allmydata -REPORTER= -test-all: test - -# use 'make test REPORTER=--reporter=bwverbose' from buildbot, to supress the -# ansi color sequences +# use 'make test REPORTER=--reporter=bwverbose' from buildbot, to +# suppress the ansi color sequences test: build $(PP) $(TRIAL) $(REPORTER) $(TEST) - test-figleaf: build - find $(INSTDIR) -name '*.pyc' |xargs rm rm -f .figleaf $(PP) $(TRIAL) --reporter=bwverbose-figleaf $(TEST) figleaf-output: - $(PP) $(PYTHON) misc/figleaf2html -d coverage-html -r $(INSTDIR)/lib -x misc/figleaf.excludes + $(PP) $(PYTHON) misc/figleaf2html -d coverage-html -r src -x misc/figleaf.excludes @echo "now point your browser at coverage-html/index.html" # after doing test-figleaf and figleaf-output, point your browser at @@ -184,10 +136,10 @@ upload-figleaf: endif .figleaf.el: .figleaf - $(PP) $(PYTHON) misc/figleaf2el.py .figleaf $(INSTDIR)/lib + $(PYTHON) misc/figleaf2el.py .figleaf src pyflakes: - $(PP) $(PYTHON) -OOu `which pyflakes` src/allmydata + $(PYTHON) -OOu `which pyflakes` src/allmydata count-lines: @echo -n "files: " @@ -220,9 +172,9 @@ test-clean: clean: rm -rf build rm -f debian - rm -rf instdir rm -f `find src/allmydata -name '*.so' -or -name '*.pyc'` rm -rf allmydata_tahoe.egg-info + rm -rf support @@ -306,6 +258,3 @@ deb-etch-head: $(MAKE) setup-deb ARCH=etch TAHOE_ARCH=feisty $(MAKE) increment-deb-version fakeroot debian/rules binary - -build_ext: - $(PYTHON) setup.py build_ext -i diff --git a/misc/find-dep-eggs.py b/misc/find-dep-eggs.py index ebd8129d..97bfc3d8 100644 --- a/misc/find-dep-eggs.py +++ b/misc/find-dep-eggs.py @@ -2,13 +2,16 @@ import os.path, sys -pyver = "python%d.%d" % (sys.version_info[:2]) - path = [] -support_lib = "support/lib/%s/site-packages" % pyver +if sys.platform == 'win32': + support_lib = "support/Lib/site-packages" +else: + pyver = "python%d.%d" % (sys.version_info[:2]) + support_lib = "support/lib/%s/site-packages" % pyver + if os.path.exists(support_lib): for fn in os.listdir(support_lib): if fn.endswith(".egg"): path.append(os.path.abspath(os.path.join(support_lib, fn))) -print ":".join(path) +print os.pathsep.join(path) -- 2.45.2