port the makefile to Windows and update the README
authorZooko O'Whielacronx <zooko@allmydata.com>
Wed, 4 Apr 2007 18:18:38 +0000 (11:18 -0700)
committerZooko O'Whielacronx <zooko@allmydata.com>
Wed, 4 Apr 2007 18:18:38 +0000 (11:18 -0700)
GNUmakefile [new file with mode: 0644]
Makefile [deleted file]
README

diff --git a/GNUmakefile b/GNUmakefile
new file mode 100644 (file)
index 0000000..b1e2526
--- /dev/null
@@ -0,0 +1,168 @@
+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
+
diff --git a/Makefile b/Makefile
deleted file mode 100644 (file)
index b1d97b1..0000000
--- a/Makefile
+++ /dev/null
@@ -1,155 +0,0 @@
-
-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
-
diff --git a/README b/README
index 2c5d4eac2ee08af701d2e879cf42fa8880bac804..48624ab3bbdd5548644ab88141ea10ce0c598c27 100644 (file)
--- a/README
+++ b/README
@@ -31,10 +31,16 @@ DEPENDENCIES:
  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.
 
@@ -43,8 +49,10 @@ BUILDING:
 
 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