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

Leigh B. Stoller's avatar
Leigh B. Stoller committed
16
SUBDIRS		= checkpass ns2ir
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 \
Leigh B. Stoller's avatar
Leigh B. Stoller committed
19
		  os_load startexp 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 \
Shashi Guruprasad's avatar
Shashi Guruprasad committed
22
		  tbswap nseswap
23

24
# Stuff that mere users get on plastic.
25
USERBINS        = os_load node_reboot nscheck node_update savelogs \
Leigh B. Stoller's avatar
Leigh B. Stoller committed
26
		  node_control portstats batchexp eventsys_control
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
		  rmgroup mkgroup setgroups mkproj \
32
		  exports_setup.proxy vnode_setup eventsys_start \
33 34
		  sfskey_update sfskey_update.proxy rmuser idleswap \
		  newnode_reboot
35

36
LIBEXEC_STUFF	= rmproj wanlinksolve wanlinkinfo \
37
		  os_setup mkexpdir console_setup webnscheck webreport \
38
		  webstartexp webendexp webbatchexp \
39
		  assign_wrapper ptopgen webnodeupdate \
40
		  webdelay_config \
41
		  webrmgroup webswapexp webnodecontrol \
42
		  webmkgroup websetgroups webmkproj \
43
		  spewlogfile staticroutes routecalc wanassign \
44 45
		  webnodereboot webrmuser webidleswap switchmac \
		  spewrpmtar
46

47
LIB_STUFF       = libtbsetup.pm exitonwarn.pm libtestbed.pm snmpit_intel.pm \
48
                  snmpit_cisco.pm snmpit_lib.pm snmpit_apc.pm power_rpc27.pm \
49 50
		  snmpit_cisco_stack.pm snmpit_intel_stack.pm \
		  libaudit.pm
51

52
#
53 54 55 56 57 58 59
# 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

60
CXXFLAGS += -Wall -O2 -g
Chad Barb's avatar
 
Chad Barb committed
61

62
wanlinksolve: wanlinksolve.cc
63
	${CXX} $< ${CXXFLAGS} -o $@ ${LIBS} -lm -lstdc++ ${LDFLAGS}
64 65

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

68
.PHONY:	checkpass ns2ir plab
69 70
checkpass:
	@$(MAKE) -C checkpass all
Leigh B. Stoller's avatar
Leigh B. Stoller committed
71

72 73
ns2ir:
	@$(MAKE) -C ns2ir all
74

75 76 77
plab:
	@$(MAKE) -C plab all

78
install: all script-install subdir-install
79 80
	@echo "Don't forget to do a post-install as root"

81 82 83 84 85 86 87 88 89 90 91
#
# 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
92 93 94 95 96
#
# Automate this part at some point.
# 
subdir-install:
	@$(MAKE) -C checkpass install	
Leigh B. Stoller's avatar
Leigh B. Stoller committed
97
	@$(MAKE) -C ns2ir install
98
	$(PLAB_INSTALL)
Leigh B. Stoller's avatar
Leigh B. Stoller committed
99

100 101 102
script-install:	$(addprefix $(INSTALL_BINDIR)/, $(BIN_STUFF)) \
	 $(addprefix $(INSTALL_SBINDIR)/, $(SBIN_STUFF)) \
	 $(addprefix $(INSTALL_LIBDIR)/, $(LIB_STUFF)) \
103 104
	 $(addprefix $(INSTALL_LIBEXECDIR)/, $(LIBEXEC_STUFF)) \
	 $(addprefix $(INSTALL_DIR)/opsdir/lib/, libtestbed.pm)
105 106

post-install: 
107
	@$(MAKE) -C ns2ir post-install
108
	$(PLAB_POST_INSTALL)
109 110 111 112
	chmod 775 $(INSTALL_BINDIR)
	chmod 775 $(INSTALL_SBINDIR)
	chmod 775 $(INSTALL_LIBDIR)
	chmod 775 $(INSTALL_LIBEXECDIR)
113 114
	chown root $(INSTALL_SBINDIR)/mkproj
	chmod u+s $(INSTALL_SBINDIR)/mkproj
115 116
	chown root $(INSTALL_LIBEXECDIR)/rmproj
	chmod u+s $(INSTALL_LIBEXECDIR)/rmproj
Leigh B. Stoller's avatar
Leigh B. Stoller committed
117 118
	chown root $(INSTALL_SBINDIR)/rmgroup
	chmod u+s $(INSTALL_SBINDIR)/rmgroup
119 120
	chown root $(INSTALL_SBINDIR)/mkgroup
	chmod u+s $(INSTALL_SBINDIR)/mkgroup
121 122
	chown root $(INSTALL_SBINDIR)/frisbeelauncher
	chmod u+s $(INSTALL_SBINDIR)/frisbeelauncher
123 124
	chown root $(INSTALL_SBINDIR)/rmuser
	chmod u+s $(INSTALL_SBINDIR)/rmuser
125 126
	chown root $(INSTALL_SBINDIR)/idleswap
	chmod u+s $(INSTALL_SBINDIR)/idleswap
127 128
	chown root $(INSTALL_SBINDIR)/named_setup
	chmod u+s $(INSTALL_SBINDIR)/named_setup
129 130
	chown root $(INSTALL_SBINDIR)/exports_setup
	chmod u+s $(INSTALL_SBINDIR)/exports_setup
131 132
	chown root $(INSTALL_SBINDIR)/sfskey_update
	chmod u+s $(INSTALL_SBINDIR)/sfskey_update
133 134
	chown root $(INSTALL_SBINDIR)/setgroups
	chmod u+s $(INSTALL_SBINDIR)/setgroups
135 136
	chown root $(INSTALL_LIBEXECDIR)/console_setup
	chmod u+s $(INSTALL_LIBEXECDIR)/console_setup
137 138
	chown root $(INSTALL_LIBEXECDIR)/spewlogfile
	chmod u+s $(INSTALL_LIBEXECDIR)/spewlogfile
139 140
	chown root $(INSTALL_BINDIR)/node_reboot
	chmod u+s $(INSTALL_BINDIR)/node_reboot
141 142
	chown root $(INSTALL_SBINDIR)/newnode_reboot
	chmod u+s $(INSTALL_SBINDIR)/newnode_reboot
143 144
	chown root $(INSTALL_SBINDIR)/vnode_setup
	chmod u+s $(INSTALL_SBINDIR)/vnode_setup
145 146
	chown root $(INSTALL_BINDIR)/eventsys_control
	chmod u+s $(INSTALL_BINDIR)/eventsys_control
147

148 149 150
#
# Control node installation (okay, plastic)
#
151 152
ifneq ($(UNIFIED),1)
LINKS=	cd $(INSTALL_BINDIR) && \
153
		list='$(USERBINS)'; for file in $$list; do \
154
			rm -f $$file; \
155 156
			ln -s plasticwrap $$file; \
		done;
157 158 159
endif
control-install:	$(addprefix $(INSTALL_SBINDIR)/, console_setup.proxy) \
			$(addprefix $(INSTALL_SBINDIR)/, exports_setup.proxy) \
160
			$(addprefix $(INSTALL_SBINDIR)/, sfskey_update.proxy) \
161
			$(addprefix $(INSTALL_LIBDIR)/, libtestbed.pm)
162
	@$(MAKE) -C ns2ir control-install
163
	$(LINKS)
164

165 166 167 168 169
#
# Tip servers get very little
#
tipserv-install:	$(addprefix $(INSTALL_SBINDIR)/, console_setup.proxy)

170
clean:	subdir-clean
171
	rm -f *.o core
172 173 174 175

subdir-clean:
	@$(MAKE) -C checkpass clean
	@$(MAKE) -C ns2ir clean
Leigh B. Stoller's avatar
Leigh B. Stoller committed
176
#	@$(MAKE) -C plab clean
177 178 179 180 181 182

distclean:	subdir-distclean

subdir-distclean:
	@$(MAKE) -C checkpass distclean
	@$(MAKE) -C ns2ir distclean
183
	@$(MAKE) -C plab distclean
184 185 186 187 188 189 190

#
# XXX Create non .tcl files.
#
%: %.tcl
	cp -p $< $@

191 192 193 194
$(INSTALL_DIR)/opsdir/lib/%: %
	@echo "Installing $<"
	-mkdir -p $(INSTALL_DIR)/opsdir/lib
	$(INSTALL) $< $@