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 7.44 KB
Newer Older
1
#
Leigh B. Stoller's avatar
Leigh B. Stoller committed
2
# EMULAB-COPYRIGHT
Timothy Stack's avatar
 
Timothy Stack committed
3
# Copyright (c) 2000-2006 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

Timothy Stack's avatar
 
Timothy Stack committed
16
SUBDIRS		= checkpass ns2ir nsverify ipassign nseparse checkup
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
		  node_attributes archive_control
24

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

35
CTRLBIN_STUFF   = console_setup.proxy sfskey_update.proxy \
36
		  savelogs.proxy eventsys.proxy
37

38 39
FSBIN_STUFF	= exports_setup.proxy

40
LIBEXEC_STUFF	= rmproj wanlinksolve wanlinkinfo \
41
		  os_setup mkexpdir console_setup webnscheck webreport \
Leigh B. Stoller's avatar
Leigh B. Stoller committed
42
		  webendexp webbatchexp webpanic \
Kevin Atkinson's avatar
 
Kevin Atkinson committed
43 44
		  assign_wrapper assign_wrapper2 \
		  assign_prepass ptopgen webnodeupdate \
45
		  webdelay_config webnodehistory \
46
		  webrmgroup webswapexp webnodecontrol webeventsys_control \
47
		  webmkgroup websetgroups webmkproj webmodgroups \
48
		  spewlogfile staticroutes routecalc wanassign \
49
		  webnodereboot webrmuser webidleswap switchmac \
Kirk Webb's avatar
 
Kirk Webb committed
50
		  spewrpmtar webtarfiles_setup webfrisbeekiller gentopofile \
51
		  webnodeattributes webarchive_control
52

53
LIB_STUFF       = libtbsetup.pm exitonwarn.pm libtestbed.pm snmpit_intel.pm \
54
                  snmpit_cisco.pm snmpit_lib.pm snmpit_apc.pm power_rpc27.pm \
55
		  snmpit_cisco_stack.pm snmpit_intel_stack.pm power_sgmote.pm \
56
		  snmpit_foundry.pm snmpit_stack.pm snmpit_remote.pm \
57
		  snmpit_nortel.pm \
Timothy Stack's avatar
 
Timothy Stack committed
58
		  libaudit.pm libreboot.pm libosload.pm libtestbed.py \
Kevin Atkinson's avatar
 
Kevin Atkinson committed
59
		  libadminmfs.pm libtblog.pm libtblog_simple.pm libArchive.pm \
60
		  power_mail.pm power_whol.pm 
61

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

70
CXXFLAGS += -Wall -O2 -g
Chad Barb's avatar
 
Chad Barb committed
71

72
wanlinksolve: wanlinksolve.cc
73
	${CXX} $< ${CXXFLAGS} -o $@ ${LIBS} -lm -lstdc++ ${LDFLAGS}
74 75

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

Timothy Stack's avatar
 
Timothy Stack committed
78
.PHONY:	checkpass ns2ir nsverify plab ipassign checkup
79 80
checkpass:
	@$(MAKE) -C checkpass all
Leigh B. Stoller's avatar
Leigh B. Stoller committed
81

82 83
ns2ir:
	@$(MAKE) -C ns2ir all
84

Timothy Stack's avatar
 
Timothy Stack committed
85 86 87
nsverify:
	@$(MAKE) -C nsverify all

88 89 90
nseparse:
	@$(MAKE) -C nseparse all

91 92 93
plab:
	@$(MAKE) -C plab all

94 95 96
ipassign:
	@$(MAKE) -C ipassign all

Timothy Stack's avatar
 
Timothy Stack committed
97 98 99
checkup:
	@$(MAKE) -C checkup all

100
install: all script-install subdir-install
101 102
	@echo "Don't forget to do a post-install as root"

Leigh B. Stoller's avatar
Leigh B. Stoller committed
103 104
boss-install: install

105 106 107 108 109 110 111 112 113 114 115
#
# 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
116 117 118 119 120
#
# Automate this part at some point.
# 
subdir-install:
	@$(MAKE) -C checkpass install	
Leigh B. Stoller's avatar
Leigh B. Stoller committed
121
	@$(MAKE) -C ns2ir install
Timothy Stack's avatar
 
Timothy Stack committed
122
	@$(MAKE) -C nsverify install
123
	@$(MAKE) -C nseparse install
124
	$(PLAB_INSTALL)
125
	@$(MAKE) -C ipassign install
Timothy Stack's avatar
 
Timothy Stack committed
126
	@$(MAKE) -C checkup install
Leigh B. Stoller's avatar
Leigh B. Stoller committed
127

128 129 130
script-install:	$(addprefix $(INSTALL_BINDIR)/, $(BIN_STUFF)) \
	 $(addprefix $(INSTALL_SBINDIR)/, $(SBIN_STUFF)) \
	 $(addprefix $(INSTALL_LIBDIR)/, $(LIB_STUFF)) \
131
	 $(addprefix $(INSTALL_LIBEXECDIR)/, $(LIBEXEC_STUFF)) \
132 133
	 $(addprefix $(INSTALL_DIR)/opsdir/lib/, libtestbed.pm) \
	 $(addprefix $(INSTALL_DIR)/opsdir/sbin/, $(CTRLBIN_STUFF))
134 135

post-install: 
136
	@$(MAKE) -C ns2ir post-install
Timothy Stack's avatar
 
Timothy Stack committed
137
	@$(MAKE) -C nsverify post-install
138
	@$(MAKE) -C nseparse post-install
139
	$(PLAB_POST_INSTALL)
140
	@$(MAKE) -C ipassign post-install
141 142 143 144
	chmod 775 $(INSTALL_BINDIR)
	chmod 775 $(INSTALL_SBINDIR)
	chmod 775 $(INSTALL_LIBDIR)
	chmod 775 $(INSTALL_LIBEXECDIR)
145 146
	chown root $(INSTALL_SBINDIR)/mkproj
	chmod u+s $(INSTALL_SBINDIR)/mkproj
147 148
	chown root $(INSTALL_LIBEXECDIR)/rmproj
	chmod u+s $(INSTALL_LIBEXECDIR)/rmproj
Leigh B. Stoller's avatar
Leigh B. Stoller committed
149 150
	chown root $(INSTALL_SBINDIR)/rmgroup
	chmod u+s $(INSTALL_SBINDIR)/rmgroup
151 152
	chown root $(INSTALL_SBINDIR)/mkgroup
	chmod u+s $(INSTALL_SBINDIR)/mkgroup
153 154
	chown root $(INSTALL_SBINDIR)/frisbeelauncher
	chmod u+s $(INSTALL_SBINDIR)/frisbeelauncher
155 156
	chown root $(INSTALL_SBINDIR)/frisbeeimage
	chmod u+s $(INSTALL_SBINDIR)/frisbeeimage
157 158
	chown root $(INSTALL_SBINDIR)/rmuser
	chmod u+s $(INSTALL_SBINDIR)/rmuser
159 160
	chown root $(INSTALL_SBINDIR)/idleswap
	chmod u+s $(INSTALL_SBINDIR)/idleswap
161 162
	chown root $(INSTALL_SBINDIR)/named_setup
	chmod u+s $(INSTALL_SBINDIR)/named_setup
163 164
	chown root $(INSTALL_SBINDIR)/exports_setup
	chmod u+s $(INSTALL_SBINDIR)/exports_setup
165 166
	chown root $(INSTALL_SBINDIR)/sfskey_update
	chmod u+s $(INSTALL_SBINDIR)/sfskey_update
167 168
	chown root $(INSTALL_SBINDIR)/setgroups
	chmod u+s $(INSTALL_SBINDIR)/setgroups
169 170
	chown root $(INSTALL_LIBEXECDIR)/console_setup
	chmod u+s $(INSTALL_LIBEXECDIR)/console_setup
171 172
	chown root $(INSTALL_LIBEXECDIR)/spewlogfile
	chmod u+s $(INSTALL_LIBEXECDIR)/spewlogfile
173 174
	chown root $(INSTALL_BINDIR)/node_reboot
	chmod u+s $(INSTALL_BINDIR)/node_reboot
175 176
	chown root $(INSTALL_SBINDIR)/newnode_reboot
	chmod u+s $(INSTALL_SBINDIR)/newnode_reboot
177 178
	chown root $(INSTALL_SBINDIR)/vnode_setup
	chmod u+s $(INSTALL_SBINDIR)/vnode_setup
179 180
	chown root $(INSTALL_BINDIR)/eventsys_control
	chmod u+s $(INSTALL_BINDIR)/eventsys_control
181 182
	chown root $(INSTALL_BINDIR)/tarfiles_setup
	chmod u+s $(INSTALL_BINDIR)/tarfiles_setup
183 184
	chown root $(INSTALL_BINDIR)/savelogs
	chmod u+s $(INSTALL_BINDIR)/savelogs
185 186
	chown root $(INSTALL_SBINDIR)/elabinelab
	chmod u+s $(INSTALL_SBINDIR)/elabinelab
Kirk Webb's avatar
 
Kirk Webb committed
187 188
	chown root $(INSTALL_BINDIR)/tbrsync
	chmod u+s $(INSTALL_BINDIR)/tbrsync
189 190
	chown root $(INSTALL_SBINDIR)/nfstrace
	chmod u+s $(INSTALL_SBINDIR)/nfstrace
191

192 193 194
#
# Control node installation (okay, plastic)
#
195
control-install:	$(addprefix $(INSTALL_SBINDIR)/, $(CTRLBIN_STUFF)) \
196
			$(addprefix $(INSTALL_BINDIR)/, fetchtar.proxy) \
197
			$(addprefix $(INSTALL_LIBDIR)/, libtestbed.pm)
198
	@$(MAKE) -C ns2ir control-install
Timothy Stack's avatar
 
Timothy Stack committed
199
	@$(MAKE) -C nsverify control-install
200
	@$(MAKE) -C nseparse control-install
201

202 203 204 205 206 207
#
# FS install
#
fs-install:	$(addprefix $(INSTALL_SBINDIR)/, $(FSBIN_STUFF)) \
		$(addprefix $(INSTALL_LIBDIR)/, libtestbed.pm)

208 209 210 211 212
#
# Tip servers get very little
#
tipserv-install:	$(addprefix $(INSTALL_SBINDIR)/, console_setup.proxy)

Mike Hibler's avatar
Mike Hibler committed
213

214
clean:	subdir-clean
Mike Hibler's avatar
Mike Hibler committed
215
	rm -f *.o core routecalc wanlinksolve
216 217 218 219

subdir-clean:
	@$(MAKE) -C checkpass clean
	@$(MAKE) -C ns2ir clean
Timothy Stack's avatar
 
Timothy Stack committed
220
	@$(MAKE) -C nsverify clean
221
	@$(MAKE) -C nseparse clean
Mike Hibler's avatar
Mike Hibler committed
222
	@$(MAKE) -C plab clean
223
	@$(MAKE) -C ipassign clean
Timothy Stack's avatar
 
Timothy Stack committed
224
	@$(MAKE) -C checkup clean
225 226 227 228 229 230

distclean:	subdir-distclean

subdir-distclean:
	@$(MAKE) -C checkpass distclean
	@$(MAKE) -C ns2ir distclean
Timothy Stack's avatar
 
Timothy Stack committed
231
	@$(MAKE) -C nsverify distclean
232
	@$(MAKE) -C nseparse distclean
233
	@$(MAKE) -C plab distclean
234
	@$(MAKE) -C ipassign distclean
Timothy Stack's avatar
 
Timothy Stack committed
235
	@$(MAKE) -C checkup distclean
236 237 238 239 240 241
#
# XXX Create non .tcl files.
#
%: %.tcl
	cp -p $< $@

242 243 244 245
$(INSTALL_DIR)/opsdir/lib/%: %
	@echo "Installing $<"
	-mkdir -p $(INSTALL_DIR)/opsdir/lib
	$(INSTALL) $< $@
246 247 248 249 250

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