-util_now := $(sort $(shell fgrep -v '"' geni/util/__init__.py 2>/dev/null))
-# what should be declared
-util_paths := $(filter-out %/__init__.py, $(wildcard geni/util/*.py))
-util_files := $(sort $(notdir $(util_paths:.py=)))
-ifneq ($(util_now), $(util_files))
-geni/util/__init__.py: force
+LOCAL_RSYNC_EXCLUDES := --exclude '*.pyc'
+RSYNC_EXCLUDES := --exclude .svn --exclude CVS --exclude '*~' --exclude TAGS $(LOCAL_RSYNC_EXCLUDES)
+RSYNC_COND_DRY_RUN := $(if $(findstring n,$(MAKEFLAGS)),--dry-run,)
+RSYNC := rsync -a -v $(RSYNC_COND_DRY_RUN) $(RSYNC_EXCLUDES)
+
+BINS = ./config/sfa-config-tty ./sfa/plc/sfa-import-plc.py ./sfa/plc/sfa-nuke-plc.py \
+ ./sfa/server/sfa-server.py \
+ ./sfa/client/sfi.py ./sfa/client/getNodes.py ./sfa/client/getRecord.py \
+ ./sfa/client/setRecord.py ./sfa/client/genidump.py
+
+sync:
+ifeq (,$(SSHURL))
+ @echo "sync: You must define, either PLC, or PLCHOST & GUEST, on the command line"
+ @echo " e.g. make sync PLC=private.one-lab.org"
+ @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) $(BINS) $(SSHURL)/usr/bin
+ $(SSHCOMMAND) exec service sfa restart