fix Xrn init
[sfa.git] / Makefile
index fbd2a0e..2446adc 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,19 +1,19 @@
 #
-## (Re)builds Python metafile (__init__.py) and documentation
+## (Re)builds Python metafile (__init__.py) 
 # 
 # overwritten by the specfile
 DESTDIR="/"
 
 ##########
-all: python wsdl
+all: python wsdl 
 
-install: python-install wsdl-install xmlbuilder-install 
+install: python-install wsdl-install xmlbuilder-install tests-install
 
-clean: python-clean wsdl-clean
+clean: python-clean wsdl-clean 
 
-uninstall: python-uninstall
+uninstall: python-uninstall tests-uninstall
 
-.PHONY: all install clean 
+.PHONY: all install clean uninstall
 
 ##########
 python: 
@@ -42,13 +42,48 @@ wsdl-clean:
        $(MAKE) -C wsdl clean
 
 .PHONY: wsdl wsdl-install wsdl-clean
+
+
 ##########
+tests-install:
+       mkdir -p $(DESTDIR)/usr/share/sfa/tests
+       install -m 755 tests/*.py $(DESTDIR)/usr/share/sfa/tests/
+
+tests-uninstall:
+       rm -rf $(DESTDIR)/usr/share/sfa/tests
+
+.PHONY: tests-install tests-uninstall
+
+########## refreshing methods package metafile
+# Metafiles - manage Legacy/ and Accessors by hand
+init := sfa/methods/__init__.py 
+
+index: $(init)
+
+index-clean:
+       rm $(init)
+
+methods_now := $(sort $(shell fgrep -v '"' sfa/methods/__init__.py 2>/dev/null))
+# what should be declared
+methods_paths := $(filter-out %/__init__.py, $(wildcard sfa/methods/*.py))
+methods_files := $(sort $(notdir $(methods_paths:.py=)))
+
+ifneq ($(methods_now),$(methods_files))
+sfa/methods/__init__.py: force
+endif
+sfa/methods/__init__.py: 
+       (echo '## Please use make index to update this file' ; echo 'all = """' ; cd sfa/methods; ls -1 *.py | grep -v __init__ | sed -e 's,.py$$,,' ; echo '""".split()') > $@
 
-# are the .java files used ?
+force:
+
+##########
 tags:  
-       find . -type f | egrep -v '/\.git/|/\.svn/|TAGS|\.py[co]$$|\.doc$$|\.html$$|\.pdf$$' | xargs etags
+       find . -type f | egrep -v '/\.git/|/\.svn/|TAGS|\.py[co]$$|\.doc$$|\.html$$|\.pdf$$|~$$' | xargs etags
 .PHONY: tags
 
+signatures:
+       (cd sfa/methods; grep 'def.*call' *.py > SIGNATURES)
+.PHONY: signatures
 
 ########## sync
 # 2 forms are supported
@@ -57,6 +92,8 @@ tags:
 # (*) otherwise, entering through the root context
 # make sync PLCHOST=testbox1.inria.fr GUEST=vplc03.inria.fr
 
+PLCHOST ?= testplc.onelab.eu
+
 ifdef GUEST
 ifdef PLCHOST
 SSHURL:=root@$(PLCHOST):/vservers/$(GUEST)
@@ -85,7 +122,8 @@ ifeq (,$(SSHURL))
        @echo "  or   make sync PLCHOST=testbox1.inria.fr GUEST=vplc03.inria.fr"
        @exit 1
 else
-       +$(RSYNC) ./sfa/ $(SSHURL)/usr/lib/python2.5/site-packages/sfa/
+       +$(RSYNC) ./sfa/ $(SSHURL)/usr/lib\*/python2.\*/site-packages/sfa/
+       +$(RSYNC) ./tests/ $(SSHURL)/root/tests-sfa
        +$(RSYNC)  $(BINS) $(SSHURL)/usr/bin
        $(SSHCOMMAND) exec service sfa restart
 endif