convenience script for coupling with the OMF Experiment Controller
[myplc.git] / Makefile
1 ##########
2 tags:
3         find . -type f | egrep -v '\.git/|~$$' | xargs etags
4
5 .PHONY: tags
6
7 ########## sync
8 # 2 forms are supported
9 # (*) if your plc root context has direct ssh access:
10 # make sync PLC=private.one-lab.org
11 # (*) otherwise, for test deployments, use on your testmaster
12 # $ run export
13 # and cut'n paste the export lines before you run make sync
14
15 ifdef PLC
16 SSHURL:=root@$(PLC):/
17 SSHCOMMAND:=ssh root@$(PLC)
18 else
19 ifdef PLCHOSTLXC
20 SSHURL:=root@$(PLCHOSTLXC):/var/lib/lxc/$(GUESTNAME)/rootfs
21 SSHCOMMAND:=ssh root@$(PLCHOSTLXC) ssh $(GUESTHOSTNAME)
22 else
23 ifdef PLCHOSTVS
24 SSHURL:=root@$(PLCHOSTVS):/vservers/$(GUESTNAME)
25 SSHCOMMAND:=ssh root@$(PLCHOSTVS) vserver $(GUESTNAME) exec
26 endif
27 endif
28 endif
29
30 LOCAL_RSYNC_EXCLUDES    := --exclude '*.pyc' 
31 RSYNC_EXCLUDES          := --exclude .svn --exclude CVS --exclude '*~' --exclude TAGS $(LOCAL_RSYNC_EXCLUDES)
32 RSYNC_COND_DRY_RUN      := $(if $(findstring n,$(MAKEFLAGS)),--dry-run,)
33 RSYNC                   := rsync -a -v $(RSYNC_COND_DRY_RUN) $(RSYNC_EXCLUDES)
34
35 sync:
36 ifeq (,$(SSHURL))
37         @echo "sync: I need more info from the command line, e.g."
38         @echo "  make sync PLC=boot.planetlab.eu"
39         @echo "  make sync PLCHOSTVS=.. GUESTNAME=.."
40         @echo "  make sync PLCHOSTLXC=.. GUESTNAME=.. GUESTHOSTNAME=.."
41         @exit 1
42 else
43         +$(RSYNC) plc.init $(SSHURL)/etc/init.d/plc
44         +$(RSYNC) bin/ $(SSHURL)/usr/bin/
45         +$(RSYNC) plc.d/ $(SSHURL)/etc/plc.d/
46         +$(RSYNC) db-config.d/ $(SSHURL)/etc/planetlab/db-config.d/
47         +$(RSYNC) plc_config.py $(SSHURL)/usr/lib/python2.\*/site-packages/plc_config.py
48         +$(RSYNC) default_config.xml $(SSHURL)/etc/planetlab/default_config.xml
49         @echo XXXXXXXX you might need to run ssh root@$(PLC) service plc start 
50 endif
51
52 #################### convenience, for debugging only
53 # make +foo : prints the value of $(foo)
54 # make ++foo : idem but verbose, i.e. foo=$(foo)
55 ++%: varname=$(subst +,,$@)
56 ++%:
57         @echo "$(varname)=$($(varname))"
58 +%: varname=$(subst +,,$@)
59 +%:
60         @echo "$($(varname))"
61