# # Copyright (c) 2000-2012 University of Utah and the Flux Group. # # {{{EMULAB-LICENSE # # This file is part of the Emulab network testbed software. # # This file is free software: you can redistribute it and/or modify it # under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or (at # your option) any later version. # # This file is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public # License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this file. If not, see . # # }}} # SRCDIR = @srcdir@ TESTBED_SRCDIR = @top_srcdir@ OBJDIR = @top_builddir@ SUBDIR = $(subst $(TESTBED_SRCDIR)/,,$(SRCDIR)) SYSTEM := $(shell uname -s) include $(OBJDIR)/Makeconf SUBDIRS = lib event tools os sensors tmcc ifeq ($(WITH_EMULAB),1) all: all-subdirs install:all boss-install-subdirs else all: client-subdirs install: @echo "Choose an appropriate install target, and make sure you " @echo "you are on a node of that type. Basically, do not do a " @echo "client-install on boss, cause you will be hating life!" endif include $(TESTBED_SRCDIR)/GNUmakerules client: client-subdirs client-install: client client-mkdirs client-install-subdirs control-install: control-install-subdirs subboss: subboss-subdirs subboss-install: client subboss-install-subdirs post-install: post-install-subdirs clean: clean-subdirs distclean: distclean-subdirs mfs: mfs-subdirs mfs-install: client-mkdirs mfs-install-subdirs frisbee-mfs: frisbee-mfs-subdirs frisbee-mfs-install: client-mkdirs frisbee-mfs-install-subdirs newnode-mfs: newnode-mfs-subdirs newnode-mfs-install: client-mkdirs newnode-mfs-install-subdirs TARBALLDESTDIR = /var/tmp/emulab-client client-tarball: @if [ `id -u` -ne 0 ]; then \ echo '*** Must run as root!'; \ false; \ fi @if [ -d "$(TARBALLDESTDIR)" ]; then \ echo "$(TARBALLDESTDIR) already exists."; \ echo "Remove it and try again."; \ false; \ fi echo "Building and installing client-side in $(TARBALLDESTDIR)..." DESTDIR=$(TARBALLDESTDIR) $(MAKE) client-install echo "Creating tarball..." tar czf emulab-client.tar.gz -C $(TARBALLDESTDIR) . client-mkdirs: -mkdir -p $(DESTDIR)$(CLIENT_BINDIR) -mkdir -p $(DESTDIR)$(CLIENT_MANDIR) # How to recursively descend into subdirectories to make general # targets such as `all'. %.MAKE: @$(MAKE) -C $(dir $@) $(basename $(notdir $@)) %-subdirs: $(addsuffix /%.MAKE,$(SUBDIRS)) ; .PHONY: $(SUBDIRS)