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.89 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 26
		  template_swapin template_swapout template_graph \
		  template_exprun
27

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

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

41 42
FSBIN_STUFF	= exports_setup.proxy

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

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

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

74
#
75 76 77 78 79 80 81
# 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

82
CXXFLAGS += -Wall -O2 -g
Chad Barb's avatar
 
Chad Barb committed
83

84
wanlinksolve: wanlinksolve.cc
85
	${CXX} $< ${CXXFLAGS} -o $@ ${LIBS} -lm -lstdc++ ${LDFLAGS}
86 87

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

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

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

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

100 101 102
nseparse:
	@$(MAKE) -C nseparse all

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

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

Timothy Stack's avatar
 
Timothy Stack committed
109 110 111
checkup:
	@$(MAKE) -C checkup all

112
install: all script-install subdir-install
113 114
	@echo "Don't forget to do a post-install as root"

Leigh B. Stoller's avatar
Leigh B. Stoller committed
115 116
boss-install: install

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

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

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

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

218 219 220 221 222 223
#
# FS install
#
fs-install:	$(addprefix $(INSTALL_SBINDIR)/, $(FSBIN_STUFF)) \
		$(addprefix $(INSTALL_LIBDIR)/, libtestbed.pm)

224 225 226 227 228
#
# Tip servers get very little
#
tipserv-install:	$(addprefix $(INSTALL_SBINDIR)/, console_setup.proxy)

Mike Hibler's avatar
Mike Hibler committed
229

230
clean:	subdir-clean
Mike Hibler's avatar
Mike Hibler committed
231
	rm -f *.o core routecalc wanlinksolve
232 233 234 235

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

distclean:	subdir-distclean

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

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

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