Thomas's fix about calling mkfs.btrfs with the -f option
[bootmanager.git] / Makefile
1 #
2
3 ########## sync
4 # 2 forms are supported
5 # (*) if your plc root context has direct ssh access:
6 # make sync PLC=private.one-lab.org
7 # (*) otherwise, for test deployments, use on your testmaster
8 # $ run export
9 # and cut'n paste the export lines before you run make sync
10
11 PLCHOSTLXC ?= lxc64-1.pl.sophia.inria.fr
12
13 ifdef PLC
14 SSHURL:=root@$(PLC):/
15 SSHCOMMAND:=ssh root@$(PLC)
16 else
17 ifdef PLCHOSTLXC
18 SSHURL:=root@$(PLCHOSTLXC):/var/lib/lxc/$(GUESTNAME)/rootfs
19 SSHCOMMAND:=ssh root@$(PLCHOSTLXC) ssh $(GUESTHOSTNAME)
20 else
21 ifdef PLCHOSTVS
22 SSHURL:=root@$(PLCHOSTVS):/vservers/$(GUESTNAME)
23 SSHCOMMAND:=ssh root@$(PLCHOSTVS) vserver $(GUESTNAME) exec
24 endif
25 endif
26 endif
27
28 LOCAL_RSYNC_EXCLUDES    := --exclude '*.pyc' 
29 RSYNC_EXCLUDES          := --exclude .svn --exclude .git --exclude '*~' --exclude TAGS $(LOCAL_RSYNC_EXCLUDES)
30 RSYNC_COND_DRY_RUN      := $(if $(findstring n,$(MAKEFLAGS)),--dry-run,)
31 RSYNC                   := rsync -a -v $(RSYNC_COND_DRY_RUN) $(RSYNC_EXCLUDES)
32
33 DEPLOYMENT ?= regular
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         $(SSHCOMMAND) mkdir -p /usr/share/bootmanager/$(DEPLOYMENT)
44         +$(RSYNC) build.sh source $(SSHURL)/usr/share/bootmanager/$(DEPLOYMENT)
45         $(SSHCOMMAND) service plc start bootmanager
46 endif
47
48 ##########
49 tags:
50         find . -type f | egrep -v 'TAGS|DIFF|/\.svn/|\.git/|~$$' | xargs etags
51
52 .PHONY: tags