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 9.84 KB
Newer Older
1
#
Leigh B. Stoller's avatar
Leigh B. Stoller committed
2
# EMULAB-COPYRIGHT
3
# Copyright (c) 2000-2007 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
ISMAINSITE	= @TBMAINSITE@
14
SYSTEM         := $(shell uname -s)
15

16
include $(OBJDIR)/Makeconf
17

18
SUBDIRS		= checkpass ns2ir nsverify nseparse checkup template_cvsroot
Leigh B. Stoller's avatar
Leigh B. Stoller committed
19

Chad Barb's avatar
 
Chad Barb committed
20
BIN_STUFF	= power snmpit tbend tbprerun tbreport \
21
		  os_load endexp batchexp swapexp \
22
		  node_reboot nscheck node_update savelogs node_control \
Chad Barb's avatar
 
Chad Barb committed
23
		  portstats checkports eventsys_control os_select tbrestart \
Kirk Webb's avatar
 
Kirk Webb committed
24
		  tbswap nseswap tarfiles_setup node_history tbrsync \
25
		  archive_control template_create \
26
		  template_swapin template_swapout template_graph \
27
		  template_exprun template_delete template_metadata \
28
		  template_export template_control template_commit \
29
		  template_analyze template_linkgraph template_instantiate \
30
		  template_revise template_checkout
31

32
SBIN_STUFF	= resetvlans console_setup.proxy sched_reload named_setup \
33
		  batch_daemon exports_setup reload_daemon sched_reserve \
34
		  console_reset db2ns bwconfig frisbeelauncher \
35
		  frisbeeimage rmgroup mkgroup setgroups mkproj modgroups \
36
		  exports_setup.proxy vnode_setup eventsys_start \
37
		  sfskey_update sfskey_update.proxy rmuser idleswap \
38
		  newnode_reboot savelogs.proxy eventsys.proxy \
39
		  elabinelab snmpit.proxy panic node_attributes \
40 41
		  nfstrace plabinelab smbpasswd_setup smbpasswd_setup.proxy \
		  rmproj
42 43 44
ifeq ($(ISMAINSITE),1)
SBIN_STUFF     += repos_daemon
endif
45

46
CTRLSBIN_STUFF  = console_setup.proxy sfskey_update.proxy \
47
		  savelogs.proxy eventsys.proxy
48

49 50
CTRLBIN_STUFF	= fetchtar.proxy

51
FSBIN_STUFF	= exports_setup.proxy smbpasswd_setup.proxy
52

53 54
WEB_SBIN_SCRIPTS= webrmproj webpanic webrmgroup \
                  webmkgroup websetgroups webmkproj \
Leigh B. Stoller's avatar
Leigh B. Stoller committed
55 56
                  webrmuser webmodgroups webidleswap webnode_attributes

57 58 59
WEB_BIN_SCRIPTS = webnscheck webendexp webtbreport webbatchexp \
		  webnode_history webswapexp webeventsys_control \
		  webnode_reboot webtarfiles_setup webarchive_control \
60
		  webnode_control webnode_update webtemplate_create \
61
		  webtemplate_swapin webtemplate_swapout webtemplate_exprun \
62
		  webtemplate_graph webtemplate_metadata webtemplate_export \
63
		  webtemplate_control webtemplate_commit webtemplate_analyze \
64
		  webtemplate_linkgraph webtemplate_instantiate \
65
		  webtemplate_delete webtemplate_revise
66

67 68 69 70 71 72 73 74
LIBEXEC_STUFF	= wanlinksolve wanlinkinfo os_setup mkexpdir console_setup \
		  assign_wrapper assign_wrapper2 \
		  assign_prepass ptopgen \
		  spewlogfile staticroutes routecalc wanassign \
		  switchmac \
		  spewrpmtar webfrisbeekiller gentopofile \
                  $(WEB_BIN_SCRIPTS) $(WEB_SBIN_SCRIPTS)

75
LIB_STUFF       = libtbsetup.pm exitonwarn.pm libtestbed.pm snmpit_intel.pm \
76
                  snmpit_cisco.pm snmpit_lib.pm snmpit_apc.pm power_rpc27.pm \
77
		  snmpit_cisco_stack.pm snmpit_intel_stack.pm power_sgmote.pm \
78
		  snmpit_foundry.pm snmpit_stack.pm snmpit_remote.pm \
79
		  snmpit_nortel.pm \
Timothy Stack's avatar
 
Timothy Stack committed
80
		  libaudit.pm libreboot.pm libosload.pm libtestbed.py \
Kevin Atkinson's avatar
 
Kevin Atkinson committed
81
		  libadminmfs.pm libtblog.pm libtblog_simple.pm libArchive.pm \
82
		  power_mail.pm power_whol.pm Template.pm power_rmcp.pm
83

84 85 86 87 88 89
# These scripts installed setuid, with sudo. 
SETUID_BIN_SCRIPTS   = node_reboot eventsys_control tarfiles_setup savelogs \
			tbrsync
SETUID_SBIN_SCRIPTS  = mkproj rmgroup mkgroup frisbeelauncher frisbeeimage \
			rmuser idleswap named_setup exports_setup \
			sfskey_update setgroups newnode_reboot vnode_setup \
90 91
			elabinelab nfstrace rmproj
SETUID_LIBX_SCRIPTS  = console_setup spewlogfile
92

93 94
ifeq ($(SYSTEM),FreeBSD)
FBSDVERSION   := $(shell uname -v | sed -e 's/FreeBSD \([0-9]\).*/FreeBSD\1/')
95
ifeq ($(FBSDVERSION),FreeBSD4)
96 97 98 99
SUBDIRS  += ipassign
IPASSIGN  = Yes
endif
endif
100

101
#
102 103 104 105 106 107 108
# 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

109
CXXFLAGS += -Wall -O2 -g
Chad Barb's avatar
 
Chad Barb committed
110

111
wanlinksolve: wanlinksolve.cc
112
	${CXX} $< ${CXXFLAGS} -o $@ ${LIBS} -lm -lstdc++ ${LDFLAGS}
113 114

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

117
.PHONY:	checkpass ns2ir nsverify plab ipassign checkup template_cvsroot
118 119
checkpass:
	@$(MAKE) -C checkpass all
Leigh B. Stoller's avatar
Leigh B. Stoller committed
120

121 122
ns2ir:
	@$(MAKE) -C ns2ir all
123

Timothy Stack's avatar
 
Timothy Stack committed
124 125 126
nsverify:
	@$(MAKE) -C nsverify all

127 128 129
nseparse:
	@$(MAKE) -C nseparse all

130 131 132
plab:
	@$(MAKE) -C plab all

133 134 135
ipassign:
	@$(MAKE) -C ipassign all

Timothy Stack's avatar
 
Timothy Stack committed
136 137 138
checkup:
	@$(MAKE) -C checkup all

139 140 141
template_cvsroot:
	@$(MAKE) -C template_cvsroot all

142
install: all script-install subdir-install
143 144
	@echo "Don't forget to do a post-install as root"

Leigh B. Stoller's avatar
Leigh B. Stoller committed
145 146
boss-install: install

147 148 149 150 151 152 153 154 155 156 157
#
# 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
158 159 160 161 162
#
# Automate this part at some point.
# 
subdir-install:
	@$(MAKE) -C checkpass install	
Leigh B. Stoller's avatar
Leigh B. Stoller committed
163
	@$(MAKE) -C ns2ir install
164
	@$(MAKE) -C template_cvsroot install
Timothy Stack's avatar
 
Timothy Stack committed
165
	@$(MAKE) -C nsverify install
166
	@$(MAKE) -C nseparse install
167
	$(PLAB_INSTALL)
168
ifeq ($(IPASSIGN),Yes)
169
	@$(MAKE) -C ipassign install
170
endif
Timothy Stack's avatar
 
Timothy Stack committed
171
	@$(MAKE) -C checkup install
Leigh B. Stoller's avatar
Leigh B. Stoller committed
172

173 174 175
script-install:	$(addprefix $(INSTALL_BINDIR)/, $(BIN_STUFF)) \
	 $(addprefix $(INSTALL_SBINDIR)/, $(SBIN_STUFF)) \
	 $(addprefix $(INSTALL_LIBDIR)/, $(LIB_STUFF)) \
176
	 $(addprefix $(INSTALL_LIBEXECDIR)/, $(LIBEXEC_STUFF)) \
177
	 $(addprefix $(INSTALL_DIR)/opsdir/lib/, libtestbed.pm) \
David Johnson's avatar
David Johnson committed
178
	 $(addprefix $(INSTALL_DIR)/opsdir/lib/, libtestbed.py) \
179 180
	 $(addprefix $(INSTALL_DIR)/opsdir/bin/, $(CTRLBIN_STUFF)) \
	 $(addprefix $(INSTALL_DIR)/opsdir/sbin/, $(CTRLSBIN_STUFF))\
181
	 $(addprefix $(INSTALL_DIR)/opsdir/sbin/, $(FSBIN_STUFF))
182 183

post-install: 
184
	@$(MAKE) -C ns2ir post-install
Timothy Stack's avatar
 
Timothy Stack committed
185
	@$(MAKE) -C nsverify post-install
186
	@$(MAKE) -C nseparse post-install
187
	$(PLAB_POST_INSTALL)
188
ifeq ($(IPASSIGN),Yes)
189
	@$(MAKE) -C ipassign post-install
190
endif
191 192 193 194
	chmod 775 $(INSTALL_BINDIR)
	chmod 775 $(INSTALL_SBINDIR)
	chmod 775 $(INSTALL_LIBDIR)
	chmod 775 $(INSTALL_LIBEXECDIR)
195 196
	chown root $(INSTALL_SBINDIR)/mkproj
	chmod u+s $(INSTALL_SBINDIR)/mkproj
Leigh B. Stoller's avatar
Leigh B. Stoller committed
197 198
	chown root $(INSTALL_SBINDIR)/rmproj
	chmod u+s $(INSTALL_SBINDIR)/rmproj
Leigh B. Stoller's avatar
Leigh B. Stoller committed
199 200
	chown root $(INSTALL_SBINDIR)/rmgroup
	chmod u+s $(INSTALL_SBINDIR)/rmgroup
201 202
	chown root $(INSTALL_SBINDIR)/mkgroup
	chmod u+s $(INSTALL_SBINDIR)/mkgroup
203 204
	chown root $(INSTALL_SBINDIR)/frisbeelauncher
	chmod u+s $(INSTALL_SBINDIR)/frisbeelauncher
205 206
	chown root $(INSTALL_SBINDIR)/frisbeeimage
	chmod u+s $(INSTALL_SBINDIR)/frisbeeimage
207 208
	chown root $(INSTALL_SBINDIR)/rmuser
	chmod u+s $(INSTALL_SBINDIR)/rmuser
209 210
	chown root $(INSTALL_SBINDIR)/idleswap
	chmod u+s $(INSTALL_SBINDIR)/idleswap
211 212
	chown root $(INSTALL_SBINDIR)/named_setup
	chmod u+s $(INSTALL_SBINDIR)/named_setup
213 214
	chown root $(INSTALL_SBINDIR)/exports_setup
	chmod u+s $(INSTALL_SBINDIR)/exports_setup
215 216
	chown root $(INSTALL_SBINDIR)/sfskey_update
	chmod u+s $(INSTALL_SBINDIR)/sfskey_update
217 218
	chown root $(INSTALL_SBINDIR)/setgroups
	chmod u+s $(INSTALL_SBINDIR)/setgroups
219 220
	chown root $(INSTALL_LIBEXECDIR)/console_setup
	chmod u+s $(INSTALL_LIBEXECDIR)/console_setup
221 222
	chown root $(INSTALL_LIBEXECDIR)/spewlogfile
	chmod u+s $(INSTALL_LIBEXECDIR)/spewlogfile
223 224
	chown root $(INSTALL_BINDIR)/node_reboot
	chmod u+s $(INSTALL_BINDIR)/node_reboot
225 226
	chown root $(INSTALL_SBINDIR)/newnode_reboot
	chmod u+s $(INSTALL_SBINDIR)/newnode_reboot
227 228
	chown root $(INSTALL_SBINDIR)/vnode_setup
	chmod u+s $(INSTALL_SBINDIR)/vnode_setup
229 230
	chown root $(INSTALL_BINDIR)/eventsys_control
	chmod u+s $(INSTALL_BINDIR)/eventsys_control
231 232
	chown root $(INSTALL_BINDIR)/tarfiles_setup
	chmod u+s $(INSTALL_BINDIR)/tarfiles_setup
233 234
	chown root $(INSTALL_BINDIR)/savelogs
	chmod u+s $(INSTALL_BINDIR)/savelogs
235 236
	chown root $(INSTALL_SBINDIR)/elabinelab
	chmod u+s $(INSTALL_SBINDIR)/elabinelab
Kirk Webb's avatar
 
Kirk Webb committed
237 238
	chown root $(INSTALL_BINDIR)/tbrsync
	chmod u+s $(INSTALL_BINDIR)/tbrsync
239 240
	chown root $(INSTALL_SBINDIR)/nfstrace
	chmod u+s $(INSTALL_SBINDIR)/nfstrace
241

242 243 244
#
# Control node installation (okay, plastic)
#
245 246
control-install:	$(addprefix $(INSTALL_SBINDIR)/, $(CTRLSBIN_STUFF)) \
			$(addprefix $(INSTALL_BINDIR)/, $(CTRLBIN_STUFF)) \
247
			$(addprefix $(INSTALL_LIBDIR)/, libtestbed.pm)
248
	@$(MAKE) -C ns2ir control-install
Timothy Stack's avatar
 
Timothy Stack committed
249
	@$(MAKE) -C nsverify control-install
250
	@$(MAKE) -C nseparse control-install
251

252 253 254 255 256 257
#
# FS install
#
fs-install:	$(addprefix $(INSTALL_SBINDIR)/, $(FSBIN_STUFF)) \
		$(addprefix $(INSTALL_LIBDIR)/, libtestbed.pm)

258 259 260 261 262
#
# Tip servers get very little
#
tipserv-install:	$(addprefix $(INSTALL_SBINDIR)/, console_setup.proxy)

Mike Hibler's avatar
Mike Hibler committed
263

264
clean:	subdir-clean
Mike Hibler's avatar
Mike Hibler committed
265
	rm -f *.o core routecalc wanlinksolve
266 267 268 269

subdir-clean:
	@$(MAKE) -C checkpass clean
	@$(MAKE) -C ns2ir clean
Timothy Stack's avatar
 
Timothy Stack committed
270
	@$(MAKE) -C nsverify clean
271
	@$(MAKE) -C nseparse clean
Mike Hibler's avatar
Mike Hibler committed
272
	@$(MAKE) -C plab clean
273
	@$(MAKE) -C ipassign clean
Timothy Stack's avatar
 
Timothy Stack committed
274
	@$(MAKE) -C checkup clean
275 276 277 278 279 280

distclean:	subdir-distclean

subdir-distclean:
	@$(MAKE) -C checkpass distclean
	@$(MAKE) -C ns2ir distclean
Timothy Stack's avatar
 
Timothy Stack committed
281
	@$(MAKE) -C nsverify distclean
282
	@$(MAKE) -C nseparse distclean
283
	@$(MAKE) -C plab distclean
284
	@$(MAKE) -C ipassign distclean
Timothy Stack's avatar
 
Timothy Stack committed
285
	@$(MAKE) -C checkup distclean
286 287 288 289 290 291
#
# XXX Create non .tcl files.
#
%: %.tcl
	cp -p $< $@

292 293 294 295 296 297 298 299 300 301 302 303
# This rule says what web* script depends on which installed binary directory.
$(WEB_SBIN_SCRIPTS): $(INSTALL_SBINDIR)
$(WEB_BIN_SCRIPTS):  $(INSTALL_BINDIR)

# Just in case the dirs are not yet created,
$(INSTALL_SBINDIR) $(INSTALL_BINDIR):

# And then how to turn the template into the actual script. 
$(WEB_SBIN_SCRIPTS) $(WEB_BIN_SCRIPTS): $(TESTBED_SRCDIR)/WEBtemplate.in
	@echo "Generating $@"
	cat $< | sed -e 's,@PROGTOINVOKE@,$(word 2,$^)/$(subst web,,$@),' > $@

304 305 306 307
$(INSTALL_DIR)/opsdir/lib/%: %
	@echo "Installing $<"
	-mkdir -p $(INSTALL_DIR)/opsdir/lib
	$(INSTALL) $< $@
308

309 310 311 312 313
$(INSTALL_DIR)/opsdir/bin/%: %
	@echo "Installing $<"
	-mkdir -p $(INSTALL_DIR)/opsdir/bin
	$(INSTALL) $< $@

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