--- /dev/null
+default: build
+
+BASE=$(shell pwd)
+PYTHON=python
+INSTDIR=$(BASE)/instdir
+
+UNAME=$(shell uname)
+ifeq ($(findstring CYGWIN,$(UNAME)),CYGWIN)
+EXTRA_SETUP_ARGS=build -c mingw32
+PATHDIR := $(shell cygpath -m $(INSTDIR))
+INSTDIR := $(shell cygpath -w $(INSTDIR))
+TRIAL=$(PYTHON) `cygpath -m \`type -p trial\` `
+ifneq ($(PYTHONPATH),)
+PYTHONPATH := $(shell cygpath -m $(PYTHONPATH))
+endif
+else
+EXTRA_SETUP_ARGS=
+PATHDIR := $(INSTDIR)
+TRIAL=trial
+endif
+
+show-instdir:
+ @echo $(INSTDIR)
+
+PATHSEP=$(shell python -c 'import os; print os.pathsep')
+ifneq ($(PYTHONPATH),)
+PP=PYTHONPATH=$(PYTHONPATH)$(PATHSEP)$(PATHDIR)
+else
+PP=PYTHONPATH=$(PATHDIR)
+endif
+
+.PHONY: build
+build: build-pyfec build-Crypto
+ $(PYTHON) setup.py $(EXTRA_SETUP_ARGS) install --install-lib="$(INSTDIR)" --install-scripts="$(INSTDIR)/scripts"
+
+build-pyfec:
+ cd src/pyfec && $(PYTHON) ./setup.py $(EXTRA_SETUP_ARGS) install --install-lib="$(INSTDIR)" --install-scripts="$(INSTDIR)/scripts"
+
+test-pyfec:
+ $(PP) $(PYTHON) src/pyfec/fec/test/test_pyfec.py
+
+clean-pyfec:
+ cd src/pyfec && python ./setup.py clean
+
+
+build-Crypto:
+ cd src/Crypto && $(PYTHON) ./setup.py $(EXTRA_SETUP_ARGS) install --install-lib="$(INSTDIR)" --install-scripts="$(INSTDIR)/scripts"
+
+clean-Crypto:
+ cd src/Crypto && python ./setup.py clean
+
+
+.PHONY: run-queen run-client test
+
+run-queen:
+ cd queen-basedir && PYTHONPATH=.. twistd -noy ../queen.tac
+
+run-client: build
+ cd client-basedir && $(PP) twistd -noy ../client.tac
+
+run-client2:
+ cd client-basedir2 && PYTHONPATH=.. twistd -noy ../client.tac
+run-client3:
+ cd client-basedir3 && PYTHONPATH=.. twistd -noy ../client.tac
+
+
+TEST=allmydata
+REPORTER=
+
+# use 'make test REPORTER=--reporter=bwverbose' from buildbot, to supress the
+# ansi color sequences
+test: build
+ $(PP) $(TRIAL) $(REPORTER) $(TEST)
+
+test-figleaf: build
+ rm -f .figleaf
+ $(PP) $(TRIAL) --reporter=bwverbose-figleaf $(TEST)
+
+figleaf-output:
+ $(PP) $(PYTHON) misc/figleaf2html -d coverage-html -r $(INSTDIR)
+ @echo "now point your browser at coverage-html/index.html"
+# after doing test-figleaf and figleaf-output, point your browser at
+# coverage-html/index.html
+
+# this command is meant to be run with an
+ifdef UPLOAD_TARGET
+upload-figleaf:
+ rsync -a coverage-html/ $(UPLOAD_TARGET)
+else
+upload-figleaf:
+ echo "this target is meant to be run with UPLOAD_TARGET=host:/path/"
+ /bin/false
+endif
+
+.figleaf.el: .figleaf
+ $(PP) $(PYTHON) misc/figleaf2el.py .figleaf $(INSTDIR)
+
+pyflakes:
+ pyflakes src/allmydata
+
+count-lines:
+ @echo -n "files: "
+ @find src -name '*.py' |grep -v /build/ |wc --lines
+ @echo -n "lines: "
+ @cat `find src -name '*.py' |grep -v /build/` |wc --lines
+ @echo -n "TODO: "
+ @grep TODO `find src -name '*.py' |grep -v /build/` | wc --lines
+
+check-memory:
+ $(PP) $(PYTHON) src/allmydata/test/check_memory.py
+
+clean: clean-pyfec clean-Crypto
+ rm -rf build
+ rm -f debian
+ rm -rf instdir
+
+create_dirs:
+ mkdir -p queen-basedir
+ mkdir -p client-basedir
+ mkdir -p client-basedir2
+ mkdir -p client-basedir/storage
+ mkdir -p client-basedir2/storage
+
+DEBVER=`head -1 debian/changelog | sed -e 's/^[^(]*(\([^)]*\)).*$$/\1/' | sed -e 's/^\([0-9]\+\.[0-9]\+\.[0-9]\+\).*$$/\1/'`
+DEBSTRING=$(DEBVER)-T`date +%s`
+DEBCOMMENTS="'make deb' build"
+
+show:
+ echo $(DEBVER)
+ echo $(DEBSTRING)
+
+.PHONY: setup-dapper setup-sid setup-feisty
+.PHONY: deb-dapper deb-sid deb-feisty
+.PHONY: increment-deb-version
+.PHONY: deb-dapper-head deb-sid-head deb-feisty-head
+
+setup-dapper:
+ rm -f debian
+ ln -s dapper/debian debian
+ chmod a+x debian/rules
+
+setup-sid:
+ rm -f debian
+ ln -s sid/debian debian
+ chmod a+x debian/rules
+
+setup-feisty:
+ rm -f debian
+ ln -s feisty/debian debian
+ chmod a+x debian/rules
+
+
+deb-dapper: setup-dapper
+ fakeroot debian/rules binary
+deb-sid: setup-sid
+ fakeroot debian/rules binary
+deb-feisty: setup-feisty
+ fakeroot debian/rules binary
+
+increment-deb-version:
+ debchange --newversion $(DEBSTRING) $(DEBCOMMENTS)
+deb-dapper-head: setup-dapper increment-deb-version
+ fakeroot debian/rules binary
+deb-sid-head: setup-sid increment-deb-version
+ fakeroot debian/rules binary
+deb-feisty-head: setup-feisty increment-deb-version
+ fakeroot debian/rules binary
+
+++ /dev/null
-
-default: build
-
-BASE=$(shell pwd)
-PYTHON=python
-
-INSTDIR=$(BASE)/instdir/lib/python$(shell $(PYTHON) -c 'import sys;print sys.version_info[0]').$(shell $(PYTHON) -c 'import sys;print sys.version_info[1]')/site-packages
-
-show-instdir:
- @echo $(INSTDIR)
-
-ifneq ($(PYTHONPATH),)
-PP=PYTHONPATH=${PYTHONPATH}:$(INSTDIR)
-else
-PP=PYTHONPATH=$(INSTDIR)
-endif
-
-.PHONY: build
-build: build-pyfec build-Crypto
- $(PYTHON) setup.py install --prefix=$(BASE)/instdir
-
-build-pyfec:
- cd src/pyfec && $(PYTHON) ./setup.py install --prefix=$(BASE)/instdir
-
-test-pyfec:
- $(PP) $(PYTHON) src/pyfec/fec/test/test_pyfec.py
-
-clean-pyfec:
- cd src/pyfec && python ./setup.py clean
-
-
-build-Crypto:
- cd src/Crypto && $(PYTHON) ./setup.py install --prefix=$(BASE)/instdir
-
-clean-Crypto:
- cd src/Crypto && python ./setup.py clean
-
-
-.PHONY: run-queen run-client test
-
-run-queen:
- cd queen-basedir && PYTHONPATH=.. twistd -noy ../queen.tac
-
-run-client: build
- cd client-basedir && $(PP) twistd -noy ../client.tac
-
-run-client2:
- cd client-basedir2 && PYTHONPATH=.. twistd -noy ../client.tac
-run-client3:
- cd client-basedir3 && PYTHONPATH=.. twistd -noy ../client.tac
-
-
-TRIAL=trial
-TEST=allmydata
-REPORTER=
-
-# use 'make test REPORTER=--reporter=bwverbose' from buildbot, to supress the
-# ansi color sequences
-test: build
- $(PP) $(TRIAL) $(REPORTER) $(TEST)
-
-test-figleaf: build
- rm -f .figleaf
- $(PP) $(TRIAL) --reporter=bwverbose-figleaf $(TEST)
-
-figleaf-output:
- $(PP) $(PYTHON) misc/figleaf2html -d coverage-html -r $(INSTDIR)
- @echo "now point your browser at coverage-html/index.html"
-# after doing test-figleaf and figleaf-output, point your browser at
-# coverage-html/index.html
-
-# this command is meant to be run with an
-ifdef UPLOAD_TARGET
-upload-figleaf:
- rsync -a coverage-html/ $(UPLOAD_TARGET)
-else
-upload-figleaf:
- echo "this target is meant to be run with UPLOAD_TARGET=host:/path/"
- /bin/false
-endif
-
-.figleaf.el: .figleaf
- $(PP) $(PYTHON) misc/figleaf2el.py .figleaf $(INSTDIR)
-
-pyflakes:
- pyflakes src/allmydata
-
-count-lines:
- @echo -n "files: "
- @find src -name '*.py' |grep -v /build/ |wc --lines
- @echo -n "lines: "
- @cat `find src -name '*.py' |grep -v /build/` |wc --lines
- @echo -n "TODO: "
- @grep TODO `find src -name '*.py' |grep -v /build/` | wc --lines
-
-check-memory:
- $(PP) $(PYTHON) src/allmydata/test/check_memory.py
-
-clean: clean-pyfec clean-Crypto
- rm -rf build
- rm -f debian
- rm -rf instdir
-
-create_dirs:
- mkdir -p queen-basedir
- mkdir -p client-basedir
- mkdir -p client-basedir2
- mkdir -p client-basedir/storage
- mkdir -p client-basedir2/storage
-
-DEBVER=`head -1 debian/changelog | sed -e 's/^[^(]*(\([^)]*\)).*$$/\1/' | sed -e 's/^\([0-9]\+\.[0-9]\+\.[0-9]\+\).*$$/\1/'`
-DEBSTRING=$(DEBVER)-T`date +%s`
-DEBCOMMENTS="'make deb' build"
-
-show:
- echo $(DEBVER)
- echo $(DEBSTRING)
-
-.PHONY: setup-dapper setup-sid setup-feisty
-.PHONY: deb-dapper deb-sid deb-feisty
-.PHONY: increment-deb-version
-.PHONY: deb-dapper-head deb-sid-head deb-feisty-head
-
-setup-dapper:
- rm -f debian
- ln -s dapper/debian debian
- chmod a+x debian/rules
-
-setup-sid:
- rm -f debian
- ln -s sid/debian debian
- chmod a+x debian/rules
-
-setup-feisty:
- rm -f debian
- ln -s feisty/debian debian
- chmod a+x debian/rules
-
-
-deb-dapper: setup-dapper
- fakeroot debian/rules binary
-deb-sid: setup-sid
- fakeroot debian/rules binary
-deb-feisty: setup-feisty
- fakeroot debian/rules binary
-
-increment-deb-version:
- debchange --newversion $(DEBSTRING) $(DEBCOMMENTS)
-deb-dapper-head: setup-dapper increment-deb-version
- fakeroot debian/rules binary
-deb-sid-head: setup-sid increment-deb-version
- fakeroot debian/rules binary
-deb-feisty-head: setup-feisty increment-deb-version
- fakeroot debian/rules binary
-
PyOpenSSL (0.6 or later)
http://pyopenssl.sourceforge.net
+ a C compiler (if building on Windows, cygwin gcc with mingw32 support)
+ http://gcc.gnu.org/
+ http://www.cygwin.com/
+ GNU make
+
BUILDING:
- Just type 'make'. If the desired version of 'python' is not already on your
- $PATH, then type 'make PYTHON=/path/to/your/preferred/python'.
+ Just type 'make'. This works on Windows too, provided that you have the
+ dependencies mentioned above. If the desired version of 'python' is not
+ already on your PATH, then type 'make PYTHON=/path/to/your/preferred/python'.
'make test' runs the unit test suite.
RUNNING:
- The installed package creates an 'allmydata-tahoe' executable, usually in
- /usr/bin . This tool is used to create, start, and stop nodes.
+ If you installed one of the debian packages constructed by "make deb-*" then
+ it creates an 'allmydata-tahoe' executable, usually in /usr/bin . If you
+ didn't install a package you can find allmydata-tahoe in instdir/scripts.
+ This tool is used to create, start, and stop nodes.
Somewhere in your mesh there must be a central 'queen' node. This is
constructed by running 'allmydata-tahoe create-queen --basedir WHERE'. Once