-# All .py files in PLC/Methods/ and PLC/Methods/system/
-METHODS := $(filter-out %/__init__.py, $(wildcard PLC/Methods/*.py PLC/Methods/system/*.py))
-Methods_init := methods = '$(notdir $(subst system/, system., $(METHODS:.py=)))'.split()
-
-PLC/Methods/__init__.py:
- echo "$(Methods_init)" >$@
-
-ifneq ($(sort $(Methods_init)), $(sort $(shell cat PLC/Methods/__init__.py 2>/dev/null)))
-PLC/Methods/__init__.py: force
+LOCAL_RSYNC_EXCLUDES := --exclude '*.pyc' --exclude Accessors_site.py
+RSYNC_EXCLUDES := --exclude .svn --exclude .git --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)
+
+sync:
+ifeq (,$(SSHURL))
+ @echo "sync: I need more info from the command line, e.g."
+ @echo " make sync PLC=boot.planetlab.eu"
+ @echo " make sync PLCHOSTLXC=.. GUESTHOSTNAME=.. GUESTNAME=.."
+ @exit 1
+else
+ +$(RSYNC) plcsh PLC planetlab5.sql migrations $(SSHURL)/usr/share/plc_api/
+ +$(RSYNC) db-config.d/ $(SSHURL)/etc/planetlab/db-config.d/
+ +$(RSYNC) plc.d/ $(SSHURL)/etc/plc.d/
+ +$(RSYNC) apache/plc.wsgi $(SSHURL)/usr/share/plc_api/apache/
+ $(SSHCOMMAND) /etc/plc.d/httpd stop
+ $(SSHCOMMAND) /etc/plc.d/httpd start