-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
98 lines (78 loc) · 2.51 KB
/
Makefile
File metadata and controls
98 lines (78 loc) · 2.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#
# Node Manager Makefile
#
# David Eisenstat <deisenst@cs.princeton.edu>
# Mark Huang <mlhuang@cs.princeton.edu>
# Copyright (C) 2006 The Trustees of Princeton University
#
# $Id: Makefile,v 1.2 2006/11/13 20:04:44 mlhuang Exp $
#
# autoconf compatible variables
datadir := /usr/share
bindir := /usr/bin
all: forward_api_calls
python setup.py build
forward_api_calls: forward_api_calls.c
$(CC) -Wall -Os -o $@ $?
strip $@
install:
python setup.py install \
--install-purelib=$(DESTDIR)/$(datadir)/NodeManager \
--install-platlib=$(DESTDIR)/$(datadir)/NodeManager \
--install-scripts=$(DESTDIR)/$(bindir)
install -m 444 README $(DESTDIR)/$(datadir)/NodeManager
clean:
python setup.py clean
rm -f forward_api_calls *.pyc build
.PHONY: all install clean
##########
tags:
(find . '(' -name '*.py' -o -name '*.c' -o -name '*.spec' ')' ; ls initscripts/*) | xargs etags
.PHONY: tags
########## sync
# for use with the test framework; push local stuff on a test node
# make sync NODE=vnode01.inria.fr
# specify TESTMASTER and BUILD if the key is not available yet
LOCAL_RSYNC_EXCLUDES := --exclude '*.pyc'
RSYNC_EXCLUDES := --exclude .git --exclude .svn --exclude '*~' --exclude TAGS $(LOCAL_RSYNC_EXCLUDES)
RSYNC_COND_DRY_RUN := $(if $(findstring n,$(MAKEFLAGS)),--dry-run,)
RSYNC := rsync -e "ssh -i $(NODE).key.rsa" -a -v $(RSYNC_COND_DRY_RUN) $(RSYNC_EXCLUDES)
ifdef NODE
NODEURL:=root@$(NODE):/
endif
sync: $(NODE).key.rsa
ifeq (,$(NODEURL))
@echo "sync: You must define NODE on the command line"
@echo " e.g. make sync NODE=vnode01.inria.fr"
@exit 1
else
+$(RSYNC) ./ $(NODEURL)/usr/share/NodeManager/
+$(RSYNC) ./initscripts/nm $(NODEURL)/etc/init.d/nm
ssh -i $(NODE).key.rsa root@$(NODE) service nm restart
endif
### fetching the key
TESTMASTER ?= testmaster.onelab.eu
ifdef BUILD
KEYURL:=root@$(TESTMASTER):$(BUILD)/keys/key1.rsa
endif
key: $(NODE).key.rsa
$(NODE).key.rsa:
ifeq (,$(KEYURL))
@echo "sync: fetching $@ - You must define TESTMASTER, BUILD and NODE on the command line"
@echo " e.g. make sync TESTMASTER=testmaster.onelab.eu BUILD=2010.01.22--1l-f8-32 NODE=vnode01.inria.fr"
@echo " note that for now all test builds use the same key, so any BUILD would do"
@exit 1
else
@echo "FETCHING key"
+scp $(KEYURL) $@
endif
### utility - find out the node name for a given BUILD
ifdef BUILD
NODEIPCOMMAND:=ssh root@$(TESTMASTER) cat $(BUILD)/arg-ips-node
endif
nodename:
ifeq (,$(NODEIPCOMMAND))
@echo "nodename: You must define TESTMASTER and BUILD on the command line"
else
$(NODEIPCOMMAND)
endif