All new accounts created on Gitlab now require administrator approval. If you invite any collaborators, please let Flux staff know so they can approve the accounts.

GNUmakefile.in 6.65 KB
Newer Older
1
#
Leigh B. Stoller's avatar
Leigh B. Stoller committed
2
# EMULAB-COPYRIGHT
3
# Copyright (c) 2000-2005 University of Utah and the Flux Group.
Leigh B. Stoller's avatar
Leigh B. Stoller committed
4
# All rights reserved.
5
#
Leigh B. Stoller's avatar
Leigh B. Stoller committed
6

7 8 9 10
SRCDIR		= @srcdir@
TESTBED_SRCDIR	= @top_srcdir@
OBJDIR		= ..
SUBDIR		= tbsetup
11
UNIFIED         = @UNIFIED_BOSS_AND_OPS@
12
PLABSUPPORT     = @PLABSUPPORT@
13

14
include $(OBJDIR)/Makeconf
15

16
SUBDIRS		= checkpass ns2ir ipassign nseparse
Leigh B. Stoller's avatar
Leigh B. Stoller committed
17

Chad Barb's avatar
 
Chad Barb committed
18
BIN_STUFF	= power snmpit tbend tbprerun tbreport \
19
		  os_load endexp batchexp swapexp \
20
		  node_reboot nscheck node_update savelogs node_control \
Chad Barb's avatar
 
Chad Barb committed
21
		  portstats checkports eventsys_control os_select tbrestart \
Kirk Webb's avatar
 
Kirk Webb committed
22
		  tbswap nseswap tarfiles_setup node_history tbrsync
23

24
SBIN_STUFF	= resetvlans console_setup.proxy sched_reload named_setup \
25
		  batch_daemon exports_setup reload_daemon sched_reserve \
26
		  console_reset db2ns bwconfig frisbeelauncher \
27
		  frisbeeimage rmgroup mkgroup setgroups mkproj \
28
		  exports_setup.proxy vnode_setup eventsys_start \
29
		  sfskey_update sfskey_update.proxy rmuser idleswap \
30
		  newnode_reboot savelogs.proxy eventsys.proxy \
Timothy Stack's avatar
 
Timothy Stack committed
31
		  elabinelab snmpit.proxy panic repos_daemon
32 33 34

CTRLBIN_STUFF   = console_setup.proxy exports_setup.proxy sfskey_update.proxy \
		  savelogs.proxy eventsys.proxy
35

36
LIBEXEC_STUFF	= rmproj wanlinksolve wanlinkinfo \
37
		  os_setup mkexpdir console_setup webnscheck webreport \
Leigh B. Stoller's avatar
Leigh B. Stoller committed
38
		  webendexp webbatchexp webpanic \
39
		  assign_wrapper assign_prepass ptopgen webnodeupdate \
40
		  webdelay_config webnodehistory \
41
		  webrmgroup webswapexp webnodecontrol webeventsys_control \
42
		  webmkgroup websetgroups webmkproj \
43
		  spewlogfile staticroutes routecalc wanassign \
44
		  webnodereboot webrmuser webidleswap switchmac \
45
		  spewrpmtar webtarfiles_setup webfrisbeekiller gentopofile
46

47
LIB_STUFF       = libtbsetup.pm exitonwarn.pm libtestbed.pm snmpit_intel.pm \
48
                  snmpit_cisco.pm snmpit_lib.pm snmpit_apc.pm power_rpc27.pm \
49
		  snmpit_cisco_stack.pm snmpit_intel_stack.pm power_sgmote.pm \
50
		  snmpit_foundry.pm snmpit_stack.pm snmpit_remote.pm \
51
		  snmpit_nortel.pm \
Timothy Stack's avatar
 
Timothy Stack committed
52
		  libaudit.pm libreboot.pm libosload.pm libtestbed.py \
53
		  power_mail.pm power_whol.pm
54

55
#
56 57 58 59 60 61 62
# Force dependencies on the scripts so that they will be rerun through
# configure if the .in file is changed.
# 
all:	$(BIN_STUFF) $(SBIN_STUFF) $(LIBEXEC_STUFF) $(LIB_STUFF) $(SUBDIRS)

include $(TESTBED_SRCDIR)/GNUmakerules

63
CXXFLAGS += -Wall -O2 -g
Chad Barb's avatar
 
Chad Barb committed
64

65
wanlinksolve: wanlinksolve.cc
66
	${CXX} $< ${CXXFLAGS} -o $@ ${LIBS} -lm -lstdc++ ${LDFLAGS}
67 68

routecalc: routecalc.cc
69
	${CXX} $< ${CXXFLAGS} -o $@ ${LIBS} -lm -lstdc++ ${LDFLAGS}
Chad Barb's avatar
 
Chad Barb committed
70

71
.PHONY:	checkpass ns2ir plab ipassign
72 73
checkpass:
	@$(MAKE) -C checkpass all
Leigh B. Stoller's avatar
Leigh B. Stoller committed
74

75 76
ns2ir:
	@$(MAKE) -C ns2ir all
77

78 79 80
nseparse:
	@$(MAKE) -C nseparse all

81 82 83
plab:
	@$(MAKE) -C plab all

84 85 86
ipassign:
	@$(MAKE) -C ipassign all

87
install: all script-install subdir-install
88 89
	@echo "Don't forget to do a post-install as root"

Leigh B. Stoller's avatar
Leigh B. Stoller committed
90 91
boss-install: install

92 93 94 95 96 97 98 99 100 101 102
#
# Only install the planetlab support if enabled in the defs file
#
ifeq ($(PLABSUPPORT),1)
PLAB_INSTALL      = @$(MAKE) -C plab install
PLAB_POST_INSTALL = @$(MAKE) -C plab post-install 
else
PLAB_INSTALL      =
PLAB_POST_INSTALL =
endif

Leigh B. Stoller's avatar
Leigh B. Stoller committed
103 104 105 106 107
#
# Automate this part at some point.
# 
subdir-install:
	@$(MAKE) -C checkpass install	
Leigh B. Stoller's avatar
Leigh B. Stoller committed
108
	@$(MAKE) -C ns2ir install
109
	@$(MAKE) -C nseparse install
110
	$(PLAB_INSTALL)
111
	@$(MAKE) -C ipassign install
Leigh B. Stoller's avatar
Leigh B. Stoller committed
112

113 114 115
script-install:	$(addprefix $(INSTALL_BINDIR)/, $(BIN_STUFF)) \
	 $(addprefix $(INSTALL_SBINDIR)/, $(SBIN_STUFF)) \
	 $(addprefix $(INSTALL_LIBDIR)/, $(LIB_STUFF)) \
116
	 $(addprefix $(INSTALL_LIBEXECDIR)/, $(LIBEXEC_STUFF)) \
117 118
	 $(addprefix $(INSTALL_DIR)/opsdir/lib/, libtestbed.pm) \
	 $(addprefix $(INSTALL_DIR)/opsdir/sbin/, $(CTRLBIN_STUFF))
119 120

post-install: 
121
	@$(MAKE) -C ns2ir post-install
122
	@$(MAKE) -C nseparse post-install
123
	$(PLAB_POST_INSTALL)
124
	@$(MAKE) -C ipassign post-install
125 126 127 128
	chmod 775 $(INSTALL_BINDIR)
	chmod 775 $(INSTALL_SBINDIR)
	chmod 775 $(INSTALL_LIBDIR)
	chmod 775 $(INSTALL_LIBEXECDIR)
129 130
	chown root $(INSTALL_SBINDIR)/mkproj
	chmod u+s $(INSTALL_SBINDIR)/mkproj
131 132
	chown root $(INSTALL_LIBEXECDIR)/rmproj
	chmod u+s $(INSTALL_LIBEXECDIR)/rmproj
Leigh B. Stoller's avatar
Leigh B. Stoller committed
133 134
	chown root $(INSTALL_SBINDIR)/rmgroup
	chmod u+s $(INSTALL_SBINDIR)/rmgroup
135 136
	chown root $(INSTALL_SBINDIR)/mkgroup
	chmod u+s $(INSTALL_SBINDIR)/mkgroup
137 138
	chown root $(INSTALL_SBINDIR)/frisbeelauncher
	chmod u+s $(INSTALL_SBINDIR)/frisbeelauncher
139 140
	chown root $(INSTALL_SBINDIR)/frisbeeimage
	chmod u+s $(INSTALL_SBINDIR)/frisbeeimage
141 142
	chown root $(INSTALL_SBINDIR)/rmuser
	chmod u+s $(INSTALL_SBINDIR)/rmuser
143 144
	chown root $(INSTALL_SBINDIR)/idleswap
	chmod u+s $(INSTALL_SBINDIR)/idleswap
145 146
	chown root $(INSTALL_SBINDIR)/named_setup
	chmod u+s $(INSTALL_SBINDIR)/named_setup
147 148
	chown root $(INSTALL_SBINDIR)/exports_setup
	chmod u+s $(INSTALL_SBINDIR)/exports_setup
149 150
	chown root $(INSTALL_SBINDIR)/sfskey_update
	chmod u+s $(INSTALL_SBINDIR)/sfskey_update
151 152
	chown root $(INSTALL_SBINDIR)/setgroups
	chmod u+s $(INSTALL_SBINDIR)/setgroups
153 154
	chown root $(INSTALL_LIBEXECDIR)/console_setup
	chmod u+s $(INSTALL_LIBEXECDIR)/console_setup
155 156
	chown root $(INSTALL_LIBEXECDIR)/spewlogfile
	chmod u+s $(INSTALL_LIBEXECDIR)/spewlogfile
157 158
	chown root $(INSTALL_BINDIR)/node_reboot
	chmod u+s $(INSTALL_BINDIR)/node_reboot
159 160
	chown root $(INSTALL_SBINDIR)/newnode_reboot
	chmod u+s $(INSTALL_SBINDIR)/newnode_reboot
161 162
	chown root $(INSTALL_SBINDIR)/vnode_setup
	chmod u+s $(INSTALL_SBINDIR)/vnode_setup
163 164
	chown root $(INSTALL_BINDIR)/eventsys_control
	chmod u+s $(INSTALL_BINDIR)/eventsys_control
165 166
	chown root $(INSTALL_BINDIR)/tarfiles_setup
	chmod u+s $(INSTALL_BINDIR)/tarfiles_setup
167 168
	chown root $(INSTALL_BINDIR)/savelogs
	chmod u+s $(INSTALL_BINDIR)/savelogs
169 170
	chown root $(INSTALL_SBINDIR)/elabinelab
	chmod u+s $(INSTALL_SBINDIR)/elabinelab
Kirk Webb's avatar
 
Kirk Webb committed
171 172
	chown root $(INSTALL_BINDIR)/tbrsync
	chmod u+s $(INSTALL_BINDIR)/tbrsync
173

174 175 176
#
# Control node installation (okay, plastic)
#
177
control-install:	$(addprefix $(INSTALL_SBINDIR)/, $(CTRLBIN_STUFF)) \
178
			$(addprefix $(INSTALL_BINDIR)/, fetchtar.proxy) \
179
			$(addprefix $(INSTALL_LIBDIR)/, libtestbed.pm)
180
	@$(MAKE) -C ns2ir control-install
181
	@$(MAKE) -C nseparse control-install
182

183 184 185 186 187
#
# Tip servers get very little
#
tipserv-install:	$(addprefix $(INSTALL_SBINDIR)/, console_setup.proxy)

Mike Hibler's avatar
Mike Hibler committed
188

189
clean:	subdir-clean
Mike Hibler's avatar
Mike Hibler committed
190
	rm -f *.o core routecalc wanlinksolve
191 192 193 194

subdir-clean:
	@$(MAKE) -C checkpass clean
	@$(MAKE) -C ns2ir clean
195
	@$(MAKE) -C nseparse clean
Mike Hibler's avatar
Mike Hibler committed
196
	@$(MAKE) -C plab clean
197
	@$(MAKE) -C ipassign clean
198 199 200 201 202 203

distclean:	subdir-distclean

subdir-distclean:
	@$(MAKE) -C checkpass distclean
	@$(MAKE) -C ns2ir distclean
204
	@$(MAKE) -C nseparse distclean
205
	@$(MAKE) -C plab distclean
206
	@$(MAKE) -C ipassign distclean
207 208 209 210 211 212
#
# XXX Create non .tcl files.
#
%: %.tcl
	cp -p $< $@

213 214 215 216
$(INSTALL_DIR)/opsdir/lib/%: %
	@echo "Installing $<"
	-mkdir -p $(INSTALL_DIR)/opsdir/lib
	$(INSTALL) $< $@
217 218 219 220 221

$(INSTALL_DIR)/opsdir/sbin/%: %
	@echo "Installing $<"
	-mkdir -p $(INSTALL_DIR)/opsdir/sbin
	$(INSTALL) $< $@