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.53 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
SYSTEM         := $(shell uname -s)
14

15
include $(OBJDIR)/Makeconf
16

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

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

30
SBIN_STUFF	= resetvlans console_setup.proxy sched_reload named_setup \
31
		  batch_daemon exports_setup reload_daemon sched_reserve \
32
		  console_reset db2ns bwconfig frisbeelauncher \
33
		  frisbeeimage rmgroup mkgroup setgroups mkproj modgroups \
34
		  exports_setup.proxy vnode_setup eventsys_start \
35
		  sfskey_update sfskey_update.proxy rmuser idleswap \
36
		  newnode_reboot savelogs.proxy eventsys.proxy \
37
		  elabinelab snmpit.proxy panic repos_daemon node_attributes \
38 39
		  nfstrace plabinelab smbpasswd_setup smbpasswd_setup.proxy \
		  rmproj
40

41
CTRLSBIN_STUFF  = console_setup.proxy sfskey_update.proxy \
42
		  savelogs.proxy eventsys.proxy
43

44 45
CTRLBIN_STUFF	= fetchtar.proxy

46
FSBIN_STUFF	= exports_setup.proxy smbpasswd_setup.proxy
47

48 49
WEB_SBIN_SCRIPTS= webrmproj webpanic webrmgroup \
                  webmkgroup websetgroups webmkproj \
Leigh B. Stoller's avatar
Leigh B. Stoller committed
50 51
                  webrmuser webmodgroups webidleswap webnode_attributes

52 53 54
WEB_BIN_SCRIPTS = webnscheck webendexp webtbreport webbatchexp \
		  webnode_history webswapexp webeventsys_control \
		  webnode_reboot webtarfiles_setup webarchive_control \
55
		  webnode_control webnode_update webtemplate_create \
56
		  webtemplate_swapin webtemplate_swapout webtemplate_exprun \
57
		  webtemplate_graph webtemplate_metadata webtemplate_export \
58
		  webtemplate_control webtemplate_commit webtemplate_analyze \
59 60
		  webtemplate_linkgraph webtemplate_instantiate \
		  webtemplate_delete
61

62 63 64 65 66 67 68 69
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)

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

79 80 81 82 83 84
# 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 \
85 86
			elabinelab nfstrace rmproj
SETUID_LIBX_SCRIPTS  = console_setup spewlogfile
87

88 89
ifeq ($(SYSTEM),FreeBSD)
FBSDVERSION   := $(shell uname -v | sed -e 's/FreeBSD \([0-9]\).*/FreeBSD\1/')
90
ifeq ($(FBSDVERSION),FreeBSD4)
91 92 93 94
SUBDIRS  += ipassign
IPASSIGN  = Yes
endif
endif
95

96
#
97 98 99 100 101 102 103
# 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

104
CXXFLAGS += -Wall -O2 -g
Chad Barb's avatar
 
Chad Barb committed
105

106
wanlinksolve: wanlinksolve.cc
107
	${CXX} $< ${CXXFLAGS} -o $@ ${LIBS} -lm -lstdc++ ${LDFLAGS}
108 109

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

Timothy Stack's avatar
 
Timothy Stack committed
112
.PHONY:	checkpass ns2ir nsverify plab ipassign checkup
113 114
checkpass:
	@$(MAKE) -C checkpass all
Leigh B. Stoller's avatar
Leigh B. Stoller committed
115

116 117
ns2ir:
	@$(MAKE) -C ns2ir all
118

Timothy Stack's avatar
 
Timothy Stack committed
119 120 121
nsverify:
	@$(MAKE) -C nsverify all

122 123 124
nseparse:
	@$(MAKE) -C nseparse all

125 126 127
plab:
	@$(MAKE) -C plab all

128 129 130
ipassign:
	@$(MAKE) -C ipassign all

Timothy Stack's avatar
 
Timothy Stack committed
131 132 133
checkup:
	@$(MAKE) -C checkup all

134
install: all script-install subdir-install
135 136
	@echo "Don't forget to do a post-install as root"

Leigh B. Stoller's avatar
Leigh B. Stoller committed
137 138
boss-install: install

139 140 141 142 143 144 145 146 147 148 149
#
# 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
150 151 152 153 154
#
# Automate this part at some point.
# 
subdir-install:
	@$(MAKE) -C checkpass install	
Leigh B. Stoller's avatar
Leigh B. Stoller committed
155
	@$(MAKE) -C ns2ir install
Timothy Stack's avatar
 
Timothy Stack committed
156
	@$(MAKE) -C nsverify install
157
	@$(MAKE) -C nseparse install
158
	$(PLAB_INSTALL)
159
ifeq ($(IPASSIGN),Yes)
160
	@$(MAKE) -C ipassign install
161
endif
Timothy Stack's avatar
 
Timothy Stack committed
162
	@$(MAKE) -C checkup install
Leigh B. Stoller's avatar
Leigh B. Stoller committed
163

164 165 166
script-install:	$(addprefix $(INSTALL_BINDIR)/, $(BIN_STUFF)) \
	 $(addprefix $(INSTALL_SBINDIR)/, $(SBIN_STUFF)) \
	 $(addprefix $(INSTALL_LIBDIR)/, $(LIB_STUFF)) \
167
	 $(addprefix $(INSTALL_LIBEXECDIR)/, $(LIBEXEC_STUFF)) \
168
	 $(addprefix $(INSTALL_DIR)/opsdir/lib/, libtestbed.pm) \
169 170
	 $(addprefix $(INSTALL_DIR)/opsdir/bin/, $(CTRLBIN_STUFF)) \
	 $(addprefix $(INSTALL_DIR)/opsdir/sbin/, $(CTRLSBIN_STUFF))\
171
	 $(addprefix $(INSTALL_DIR)/opsdir/sbin/, $(FSBIN_STUFF))
172 173

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

232 233 234
#
# Control node installation (okay, plastic)
#
235 236
control-install:	$(addprefix $(INSTALL_SBINDIR)/, $(CTRLSBIN_STUFF)) \
			$(addprefix $(INSTALL_BINDIR)/, $(CTRLBIN_STUFF)) \
237
			$(addprefix $(INSTALL_LIBDIR)/, libtestbed.pm)
238
	@$(MAKE) -C ns2ir control-install
Timothy Stack's avatar
 
Timothy Stack committed
239
	@$(MAKE) -C nsverify control-install
240
	@$(MAKE) -C nseparse control-install
241

242 243 244 245 246 247
#
# FS install
#
fs-install:	$(addprefix $(INSTALL_SBINDIR)/, $(FSBIN_STUFF)) \
		$(addprefix $(INSTALL_LIBDIR)/, libtestbed.pm)

248 249 250 251 252
#
# Tip servers get very little
#
tipserv-install:	$(addprefix $(INSTALL_SBINDIR)/, console_setup.proxy)

Mike Hibler's avatar
Mike Hibler committed
253

254
clean:	subdir-clean
Mike Hibler's avatar
Mike Hibler committed
255
	rm -f *.o core routecalc wanlinksolve
256 257 258 259

subdir-clean:
	@$(MAKE) -C checkpass clean
	@$(MAKE) -C ns2ir clean
Timothy Stack's avatar
 
Timothy Stack committed
260
	@$(MAKE) -C nsverify clean
261
	@$(MAKE) -C nseparse clean
Mike Hibler's avatar
Mike Hibler committed
262
	@$(MAKE) -C plab clean
263
	@$(MAKE) -C ipassign clean
Timothy Stack's avatar
 
Timothy Stack committed
264
	@$(MAKE) -C checkup clean
265 266 267 268 269 270

distclean:	subdir-distclean

subdir-distclean:
	@$(MAKE) -C checkpass distclean
	@$(MAKE) -C ns2ir distclean
Timothy Stack's avatar
 
Timothy Stack committed
271
	@$(MAKE) -C nsverify distclean
272
	@$(MAKE) -C nseparse distclean
273
	@$(MAKE) -C plab distclean
274
	@$(MAKE) -C ipassign distclean
Timothy Stack's avatar
 
Timothy Stack committed
275
	@$(MAKE) -C checkup distclean
276 277 278 279 280 281
#
# XXX Create non .tcl files.
#
%: %.tcl
	cp -p $< $@

282 283 284 285 286 287 288 289 290 291 292 293
# 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,,$@),' > $@

294 295 296 297
$(INSTALL_DIR)/opsdir/lib/%: %
	@echo "Installing $<"
	-mkdir -p $(INSTALL_DIR)/opsdir/lib
	$(INSTALL) $< $@
298

299 300 301 302 303
$(INSTALL_DIR)/opsdir/bin/%: %
	@echo "Installing $<"
	-mkdir -p $(INSTALL_DIR)/opsdir/bin
	$(INSTALL) $< $@

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