-methods_now := $(sort $(shell fgrep -v '"' geni/methods/__init__.py 2>/dev/null))
-# what should be declared
-method_paths := $(filter-out %/__init__.py, $(wildcard geni/methods/*.py))
-method_files := $(sort $(notdir $(method_paths:.py=)))
-ifneq ($(methods_now), $(methods_files))
-geni/methods/__init__.py: force
+tags:
+ $(MAKE) git-files | xargs etags
+
+.PHONY: files tags
+
+signatures:
+ (cd sfa/methods; grep 'def.*call' *.py > SIGNATURES)
+.PHONY: signatures
+
+########## for uploading onto pypi
+# use pypitest instead for tests (both entries need to be defined in your .pypirc)
+PYPI_TARGET=pypi
+PYPI_TARBALL_HOST=root@build.onelab.eu
+PYPI_TARBALL_TOPDIR=/build/sfa
+
+# a quick attempt on pypitest did not quite work as expected
+# I was hoping to register the project using "setup.py register"
+# but somehow most of my meta data did not make it up there
+# and I could not find out why
+# so I went for the manual method instead
+# there also was a web dialog prompting for a zip file that would
+# be used to initialize the project's home dir but this too
+# did not seem to work the way I was trying to use it, so ...
+
+# this target is still helpful to produce the readme in html from README.md
+index.zip index.html: README.md
+ python readme.py
+
+# I need to run this on my mac as my pypi
+# run git pull first as this often comes afet a module-tag
+# we need to re-run make so the version is right
+git_pypi: git pypi
+
+git:
+ git pull
+ $(MAKE) version
+
+# run this only once the sources are in on the right tag
+pypi: index.html
+ setup.py sdist upload -r $(PYPI_TARGET)
+ ssh $(PYPI_TARBALL_HOST) mkdir -p $(PYPI_TARBALL_TOPDIR)/$(VERSIONTAG)
+ rsync -av dist/sfa-$(VERSIONTAG).tar.gz $(PYPI_TARBALL_HOST):$(PYPI_TARBALL_TOPDIR)/$(VERSIONTAG)
+
+# cleanup
+clean: readme-clean
+
+readme-clean:
+ rm -f index.html index.zip
+
+########## sync
+# 2 forms are supported
+# (*) if your plc root context has direct ssh access:
+# make sync PLC=private.one-lab.org
+# (*) otherwise, for test deployments, use on your testmaster
+# $ run export
+# and cut'n paste the export lines before you run make sync
+
+ifdef PLC
+SSHURL:=root@$(PLC):/
+SSHCOMMAND:=ssh root@$(PLC)
+else
+ifdef PLCHOSTLXC
+SSHURL:=root@$(PLCHOSTLXC):/vservers/$(GUESTNAME)
+SSHCOMMAND:=ssh root@$(PLCHOSTLXC) virsh -c lxc:/// lxc-enter-namespace $(GUESTNAME) -- /usr/bin/env
+else
+ifdef PLCHOSTVS
+SSHURL:=root@$(PLCHOSTVS):/vservers/$(GUESTNAME)
+SSHCOMMAND:=ssh root@$(PLCHOSTVS) vserver $(GUESTNAME) exec
+endif
+endif