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 8.05 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
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
		  node_attributes archive_control template_create \
25
		  template_swapin template_swapout template_graph \
26
		  template_exprun template_delete template_metadata \
27
		  template_export template_control
28

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

39
CTRLBIN_STUFF   = console_setup.proxy sfskey_update.proxy \
40
		  savelogs.proxy eventsys.proxy
41

42 43
FSBIN_STUFF	= exports_setup.proxy

44
LIBEXEC_STUFF	= rmproj wanlinksolve wanlinkinfo \
45
		  os_setup mkexpdir console_setup webnscheck webreport \
Leigh B. Stoller's avatar
Leigh B. Stoller committed
46
		  webendexp webbatchexp webpanic \
Kevin Atkinson's avatar
 
Kevin Atkinson committed
47 48
		  assign_wrapper assign_wrapper2 \
		  assign_prepass ptopgen webnodeupdate \
49
		  webdelay_config webnodehistory \
50
		  webrmgroup webswapexp webnodecontrol webeventsys_control \
51
		  webmkgroup websetgroups webmkproj webmodgroups \
52
		  spewlogfile staticroutes routecalc wanassign \
53
		  webnodereboot webrmuser webidleswap switchmac \
Kirk Webb's avatar
 
Kirk Webb committed
54
		  spewrpmtar webtarfiles_setup webfrisbeekiller gentopofile \
55
		  webnodeattributes webarchive_control webtemplate_create \
56
		  webtemplate_swapin webtemplate_swapout webtemplate_exprun \
57 58
		  webtemplate_graph webtemplate_metadata webtemplate_export \
		  webtemplate_control
59

60
LIB_STUFF       = libtbsetup.pm exitonwarn.pm libtestbed.pm snmpit_intel.pm \
61
                  snmpit_cisco.pm snmpit_lib.pm snmpit_apc.pm power_rpc27.pm \
62
		  snmpit_cisco_stack.pm snmpit_intel_stack.pm power_sgmote.pm \
63
		  snmpit_foundry.pm snmpit_stack.pm snmpit_remote.pm \
64
		  snmpit_nortel.pm \
Timothy Stack's avatar
 
Timothy Stack committed
65
		  libaudit.pm libreboot.pm libosload.pm libtestbed.py \
Kevin Atkinson's avatar
 
Kevin Atkinson committed
66
		  libadminmfs.pm libtblog.pm libtblog_simple.pm libArchive.pm \
67
		  power_mail.pm power_whol.pm Template.pm
68 69 70

ifeq ($(SYSTEM),FreeBSD)
FBSDVERSION   := $(shell uname -v | sed -e 's/FreeBSD \([0-9]\).*/FreeBSD\1/')
71
ifeq ($(FBSDVERSION),FreeBSD4)
72 73 74 75
SUBDIRS  += ipassign
IPASSIGN  = Yes
endif
endif
76

77
#
78 79 80 81 82 83 84
# 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

85
CXXFLAGS += -Wall -O2 -g
Chad Barb's avatar
 
Chad Barb committed
86

87
wanlinksolve: wanlinksolve.cc
88
	${CXX} $< ${CXXFLAGS} -o $@ ${LIBS} -lm -lstdc++ ${LDFLAGS}
89 90

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

Timothy Stack's avatar
 
Timothy Stack committed
93
.PHONY:	checkpass ns2ir nsverify plab ipassign checkup
94 95
checkpass:
	@$(MAKE) -C checkpass all
Leigh B. Stoller's avatar
Leigh B. Stoller committed
96

97 98
ns2ir:
	@$(MAKE) -C ns2ir all
99

Timothy Stack's avatar
 
Timothy Stack committed
100 101 102
nsverify:
	@$(MAKE) -C nsverify all

103 104 105
nseparse:
	@$(MAKE) -C nseparse all

106 107 108
plab:
	@$(MAKE) -C plab all

109 110 111
ipassign:
	@$(MAKE) -C ipassign all

Timothy Stack's avatar
 
Timothy Stack committed
112 113 114
checkup:
	@$(MAKE) -C checkup all

115
install: all script-install subdir-install
116 117
	@echo "Don't forget to do a post-install as root"

Leigh B. Stoller's avatar
Leigh B. Stoller committed
118 119
boss-install: install

120 121 122 123 124 125 126 127 128 129 130
#
# 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
131 132 133 134 135
#
# Automate this part at some point.
# 
subdir-install:
	@$(MAKE) -C checkpass install	
Leigh B. Stoller's avatar
Leigh B. Stoller committed
136
	@$(MAKE) -C ns2ir install
Timothy Stack's avatar
 
Timothy Stack committed
137
	@$(MAKE) -C nsverify install
138
	@$(MAKE) -C nseparse install
139
	$(PLAB_INSTALL)
140
ifeq ($(IPASSIGN),Yes)
141
	@$(MAKE) -C ipassign install
142
endif
Timothy Stack's avatar
 
Timothy Stack committed
143
	@$(MAKE) -C checkup install
Leigh B. Stoller's avatar
Leigh B. Stoller committed
144

145 146 147
script-install:	$(addprefix $(INSTALL_BINDIR)/, $(BIN_STUFF)) \
	 $(addprefix $(INSTALL_SBINDIR)/, $(SBIN_STUFF)) \
	 $(addprefix $(INSTALL_LIBDIR)/, $(LIB_STUFF)) \
148
	 $(addprefix $(INSTALL_LIBEXECDIR)/, $(LIBEXEC_STUFF)) \
149 150
	 $(addprefix $(INSTALL_DIR)/opsdir/lib/, libtestbed.pm) \
	 $(addprefix $(INSTALL_DIR)/opsdir/sbin/, $(CTRLBIN_STUFF))
151 152

post-install: 
153
	@$(MAKE) -C ns2ir post-install
Timothy Stack's avatar
 
Timothy Stack committed
154
	@$(MAKE) -C nsverify post-install
155
	@$(MAKE) -C nseparse post-install
156
	$(PLAB_POST_INSTALL)
157
ifeq ($(IPASSIGN),Yes)
158
	@$(MAKE) -C ipassign post-install
159
endif
160 161 162 163
	chmod 775 $(INSTALL_BINDIR)
	chmod 775 $(INSTALL_SBINDIR)
	chmod 775 $(INSTALL_LIBDIR)
	chmod 775 $(INSTALL_LIBEXECDIR)
164 165
	chown root $(INSTALL_SBINDIR)/mkproj
	chmod u+s $(INSTALL_SBINDIR)/mkproj
166 167
	chown root $(INSTALL_LIBEXECDIR)/rmproj
	chmod u+s $(INSTALL_LIBEXECDIR)/rmproj
Leigh B. Stoller's avatar
Leigh B. Stoller committed
168 169
	chown root $(INSTALL_SBINDIR)/rmgroup
	chmod u+s $(INSTALL_SBINDIR)/rmgroup
170 171
	chown root $(INSTALL_SBINDIR)/mkgroup
	chmod u+s $(INSTALL_SBINDIR)/mkgroup
172 173
	chown root $(INSTALL_SBINDIR)/frisbeelauncher
	chmod u+s $(INSTALL_SBINDIR)/frisbeelauncher
174 175
	chown root $(INSTALL_SBINDIR)/frisbeeimage
	chmod u+s $(INSTALL_SBINDIR)/frisbeeimage
176 177
	chown root $(INSTALL_SBINDIR)/rmuser
	chmod u+s $(INSTALL_SBINDIR)/rmuser
178 179
	chown root $(INSTALL_SBINDIR)/idleswap
	chmod u+s $(INSTALL_SBINDIR)/idleswap
180 181
	chown root $(INSTALL_SBINDIR)/named_setup
	chmod u+s $(INSTALL_SBINDIR)/named_setup
182 183
	chown root $(INSTALL_SBINDIR)/exports_setup
	chmod u+s $(INSTALL_SBINDIR)/exports_setup
184 185
	chown root $(INSTALL_SBINDIR)/sfskey_update
	chmod u+s $(INSTALL_SBINDIR)/sfskey_update
186 187
	chown root $(INSTALL_SBINDIR)/setgroups
	chmod u+s $(INSTALL_SBINDIR)/setgroups
188 189
	chown root $(INSTALL_LIBEXECDIR)/console_setup
	chmod u+s $(INSTALL_LIBEXECDIR)/console_setup
190 191
	chown root $(INSTALL_LIBEXECDIR)/spewlogfile
	chmod u+s $(INSTALL_LIBEXECDIR)/spewlogfile
192 193
	chown root $(INSTALL_BINDIR)/node_reboot
	chmod u+s $(INSTALL_BINDIR)/node_reboot
194 195
	chown root $(INSTALL_SBINDIR)/newnode_reboot
	chmod u+s $(INSTALL_SBINDIR)/newnode_reboot
196 197
	chown root $(INSTALL_SBINDIR)/vnode_setup
	chmod u+s $(INSTALL_SBINDIR)/vnode_setup
198 199
	chown root $(INSTALL_BINDIR)/eventsys_control
	chmod u+s $(INSTALL_BINDIR)/eventsys_control
200 201
	chown root $(INSTALL_BINDIR)/tarfiles_setup
	chmod u+s $(INSTALL_BINDIR)/tarfiles_setup
202 203
	chown root $(INSTALL_BINDIR)/savelogs
	chmod u+s $(INSTALL_BINDIR)/savelogs
204 205
	chown root $(INSTALL_SBINDIR)/elabinelab
	chmod u+s $(INSTALL_SBINDIR)/elabinelab
Kirk Webb's avatar
 
Kirk Webb committed
206 207
	chown root $(INSTALL_BINDIR)/tbrsync
	chmod u+s $(INSTALL_BINDIR)/tbrsync
208 209
	chown root $(INSTALL_SBINDIR)/nfstrace
	chmod u+s $(INSTALL_SBINDIR)/nfstrace
210

211 212 213
#
# Control node installation (okay, plastic)
#
214
control-install:	$(addprefix $(INSTALL_SBINDIR)/, $(CTRLBIN_STUFF)) \
215
			$(addprefix $(INSTALL_BINDIR)/, fetchtar.proxy) \
216
			$(addprefix $(INSTALL_LIBDIR)/, libtestbed.pm)
217
	@$(MAKE) -C ns2ir control-install
Timothy Stack's avatar
 
Timothy Stack committed
218
	@$(MAKE) -C nsverify control-install
219
	@$(MAKE) -C nseparse control-install
220

221 222 223 224 225 226
#
# FS install
#
fs-install:	$(addprefix $(INSTALL_SBINDIR)/, $(FSBIN_STUFF)) \
		$(addprefix $(INSTALL_LIBDIR)/, libtestbed.pm)

227 228 229 230 231
#
# Tip servers get very little
#
tipserv-install:	$(addprefix $(INSTALL_SBINDIR)/, console_setup.proxy)

Mike Hibler's avatar
Mike Hibler committed
232

233
clean:	subdir-clean
Mike Hibler's avatar
Mike Hibler committed
234
	rm -f *.o core routecalc wanlinksolve
235 236 237 238

subdir-clean:
	@$(MAKE) -C checkpass clean
	@$(MAKE) -C ns2ir clean
Timothy Stack's avatar
 
Timothy Stack committed
239
	@$(MAKE) -C nsverify clean
240
	@$(MAKE) -C nseparse clean
Mike Hibler's avatar
Mike Hibler committed
241
	@$(MAKE) -C plab clean
242
	@$(MAKE) -C ipassign clean
Timothy Stack's avatar
 
Timothy Stack committed
243
	@$(MAKE) -C checkup clean
244 245 246 247 248 249

distclean:	subdir-distclean

subdir-distclean:
	@$(MAKE) -C checkpass distclean
	@$(MAKE) -C ns2ir distclean
Timothy Stack's avatar
 
Timothy Stack committed
250
	@$(MAKE) -C nsverify distclean
251
	@$(MAKE) -C nseparse distclean
252
	@$(MAKE) -C plab distclean
253
	@$(MAKE) -C ipassign distclean
Timothy Stack's avatar
 
Timothy Stack committed
254
	@$(MAKE) -C checkup distclean
255 256 257 258 259 260
#
# XXX Create non .tcl files.
#
%: %.tcl
	cp -p $< $@

261 262 263 264
$(INSTALL_DIR)/opsdir/lib/%: %
	@echo "Installing $<"
	-mkdir -p $(INSTALL_DIR)/opsdir/lib
	$(INSTALL) $< $@
265 266 267 268 269

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