# # EMULAB-COPYRIGHT # Copyright (c) 2000-2005 University of Utah and the Flux Group. # All rights reserved. # SRCDIR = @srcdir@ TESTBED_SRCDIR = @top_srcdir@ OBJDIR = .. SUBDIR = tbsetup UNIFIED = @UNIFIED_BOSS_AND_OPS@ PLABSUPPORT = @PLABSUPPORT@ include $(OBJDIR)/Makeconf SUBDIRS = checkpass ns2ir ipassign nseparse BIN_STUFF = power snmpit tbend tbprerun tbreport \ os_load endexp batchexp swapexp \ node_reboot nscheck node_update savelogs node_control \ portstats checkports eventsys_control os_select tbrestart \ tbswap nseswap tarfiles_setup node_history tbrsync \ node_attributes SBIN_STUFF = resetvlans console_setup.proxy sched_reload named_setup \ batch_daemon exports_setup reload_daemon sched_reserve \ console_reset db2ns bwconfig frisbeelauncher \ frisbeeimage rmgroup mkgroup setgroups mkproj modgroups \ exports_setup.proxy vnode_setup eventsys_start \ sfskey_update sfskey_update.proxy rmuser idleswap \ newnode_reboot savelogs.proxy eventsys.proxy \ elabinelab snmpit.proxy panic repos_daemon node_attributes CTRLBIN_STUFF = console_setup.proxy sfskey_update.proxy \ savelogs.proxy eventsys.proxy FSBIN_STUFF = exports_setup.proxy LIBEXEC_STUFF = rmproj wanlinksolve wanlinkinfo \ os_setup mkexpdir console_setup webnscheck webreport \ webendexp webbatchexp webpanic \ assign_wrapper assign_prepass ptopgen webnodeupdate \ webdelay_config webnodehistory \ webrmgroup webswapexp webnodecontrol webeventsys_control \ webmkgroup websetgroups webmkproj webmodgroups \ spewlogfile staticroutes routecalc wanassign \ webnodereboot webrmuser webidleswap switchmac \ spewrpmtar webtarfiles_setup webfrisbeekiller gentopofile \ webnodeattributes LIB_STUFF = libtbsetup.pm exitonwarn.pm libtestbed.pm snmpit_intel.pm \ snmpit_cisco.pm snmpit_lib.pm snmpit_apc.pm power_rpc27.pm \ snmpit_cisco_stack.pm snmpit_intel_stack.pm power_sgmote.pm \ snmpit_foundry.pm snmpit_stack.pm snmpit_remote.pm \ snmpit_nortel.pm \ libaudit.pm libreboot.pm libosload.pm libtestbed.py \ power_mail.pm power_whol.pm \ libtblog.pm # # 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 CXXFLAGS += -Wall -O2 -g wanlinksolve: wanlinksolve.cc ${CXX} $< ${CXXFLAGS} -o $@ ${LIBS} -lm -lstdc++ ${LDFLAGS} routecalc: routecalc.cc ${CXX} $< ${CXXFLAGS} -o $@ ${LIBS} -lm -lstdc++ ${LDFLAGS} .PHONY: checkpass ns2ir plab ipassign checkpass: @$(MAKE) -C checkpass all ns2ir: @$(MAKE) -C ns2ir all nseparse: @$(MAKE) -C nseparse all plab: @$(MAKE) -C plab all ipassign: @$(MAKE) -C ipassign all install: all script-install subdir-install @echo "Don't forget to do a post-install as root" boss-install: install # # 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 # # Automate this part at some point. # subdir-install: @$(MAKE) -C checkpass install @$(MAKE) -C ns2ir install @$(MAKE) -C nseparse install $(PLAB_INSTALL) @$(MAKE) -C ipassign install script-install: $(addprefix $(INSTALL_BINDIR)/, $(BIN_STUFF)) \ $(addprefix $(INSTALL_SBINDIR)/, $(SBIN_STUFF)) \ $(addprefix $(INSTALL_LIBDIR)/, $(LIB_STUFF)) \ $(addprefix $(INSTALL_LIBEXECDIR)/, $(LIBEXEC_STUFF)) \ $(addprefix $(INSTALL_DIR)/opsdir/lib/, libtestbed.pm) \ $(addprefix $(INSTALL_DIR)/opsdir/sbin/, $(CTRLBIN_STUFF)) post-install: @$(MAKE) -C ns2ir post-install @$(MAKE) -C nseparse post-install $(PLAB_POST_INSTALL) @$(MAKE) -C ipassign post-install chmod 775 $(INSTALL_BINDIR) chmod 775 $(INSTALL_SBINDIR) chmod 775 $(INSTALL_LIBDIR) chmod 775 $(INSTALL_LIBEXECDIR) chown root $(INSTALL_SBINDIR)/mkproj chmod u+s $(INSTALL_SBINDIR)/mkproj chown root $(INSTALL_LIBEXECDIR)/rmproj chmod u+s $(INSTALL_LIBEXECDIR)/rmproj chown root $(INSTALL_SBINDIR)/rmgroup chmod u+s $(INSTALL_SBINDIR)/rmgroup chown root $(INSTALL_SBINDIR)/mkgroup chmod u+s $(INSTALL_SBINDIR)/mkgroup chown root $(INSTALL_SBINDIR)/frisbeelauncher chmod u+s $(INSTALL_SBINDIR)/frisbeelauncher chown root $(INSTALL_SBINDIR)/frisbeeimage chmod u+s $(INSTALL_SBINDIR)/frisbeeimage chown root $(INSTALL_SBINDIR)/rmuser chmod u+s $(INSTALL_SBINDIR)/rmuser chown root $(INSTALL_SBINDIR)/idleswap chmod u+s $(INSTALL_SBINDIR)/idleswap chown root $(INSTALL_SBINDIR)/named_setup chmod u+s $(INSTALL_SBINDIR)/named_setup chown root $(INSTALL_SBINDIR)/exports_setup chmod u+s $(INSTALL_SBINDIR)/exports_setup chown root $(INSTALL_SBINDIR)/sfskey_update chmod u+s $(INSTALL_SBINDIR)/sfskey_update chown root $(INSTALL_SBINDIR)/setgroups chmod u+s $(INSTALL_SBINDIR)/setgroups chown root $(INSTALL_LIBEXECDIR)/console_setup chmod u+s $(INSTALL_LIBEXECDIR)/console_setup chown root $(INSTALL_LIBEXECDIR)/spewlogfile chmod u+s $(INSTALL_LIBEXECDIR)/spewlogfile chown root $(INSTALL_BINDIR)/node_reboot chmod u+s $(INSTALL_BINDIR)/node_reboot chown root $(INSTALL_SBINDIR)/newnode_reboot chmod u+s $(INSTALL_SBINDIR)/newnode_reboot chown root $(INSTALL_SBINDIR)/vnode_setup chmod u+s $(INSTALL_SBINDIR)/vnode_setup chown root $(INSTALL_BINDIR)/eventsys_control chmod u+s $(INSTALL_BINDIR)/eventsys_control chown root $(INSTALL_BINDIR)/tarfiles_setup chmod u+s $(INSTALL_BINDIR)/tarfiles_setup chown root $(INSTALL_BINDIR)/savelogs chmod u+s $(INSTALL_BINDIR)/savelogs chown root $(INSTALL_SBINDIR)/elabinelab chmod u+s $(INSTALL_SBINDIR)/elabinelab chown root $(INSTALL_BINDIR)/tbrsync chmod u+s $(INSTALL_BINDIR)/tbrsync # # Control node installation (okay, plastic) # control-install: $(addprefix $(INSTALL_SBINDIR)/, $(CTRLBIN_STUFF)) \ $(addprefix $(INSTALL_BINDIR)/, fetchtar.proxy) \ $(addprefix $(INSTALL_LIBDIR)/, libtestbed.pm) @$(MAKE) -C ns2ir control-install @$(MAKE) -C nseparse control-install # # FS install # fs-install: $(addprefix $(INSTALL_SBINDIR)/, $(FSBIN_STUFF)) \ $(addprefix $(INSTALL_LIBDIR)/, libtestbed.pm) # # Tip servers get very little # tipserv-install: $(addprefix $(INSTALL_SBINDIR)/, console_setup.proxy) clean: subdir-clean rm -f *.o core routecalc wanlinksolve subdir-clean: @$(MAKE) -C checkpass clean @$(MAKE) -C ns2ir clean @$(MAKE) -C nseparse clean @$(MAKE) -C plab clean @$(MAKE) -C ipassign clean distclean: subdir-distclean subdir-distclean: @$(MAKE) -C checkpass distclean @$(MAKE) -C ns2ir distclean @$(MAKE) -C nseparse distclean @$(MAKE) -C plab distclean @$(MAKE) -C ipassign distclean # # XXX Create non .tcl files. # %: %.tcl cp -p $< $@ $(INSTALL_DIR)/opsdir/lib/%: % @echo "Installing $<" -mkdir -p $(INSTALL_DIR)/opsdir/lib $(INSTALL) $< $@ $(INSTALL_DIR)/opsdir/sbin/%: % @echo "Installing $<" -mkdir -p $(INSTALL_DIR)/opsdir/sbin $(INSTALL) $< $@