# # EMULAB-COPYRIGHT # Copyright (c) 2000-2005 University of Utah and the Flux Group. # All rights reserved. # SRCDIR = @srcdir@ TESTBED_SRCDIR = @top_srcdir@ OBJDIR = ../.. SUBDIR = event/linktest LIBTBDIR = $(OBJDIR)/lib/libtb LIBEVENTDIR = ../lib NSTOIRDIR = $(TESTBED_SRCDIR)/tbsetup/ns2ir DAEMON = linktest LTEVENT = ltevent SCRIPT = linktest.pl SCRIPT_RUN = run_linktest.pl SCRIPT_PROXY = linktest.proxy SCRIPT_CONTROL = linktest_control SCRIPT_TBCOMPAT = tb_compat.tcl SCRIPT_NSTB_COMPAT = nstb_compat.tcl SYSTEM := $(patsubst CYGWIN%,CYGWIN,$(shell uname -s)) include $(OBJDIR)/Makeconf all: binaries $(SCRIPT) $(SCRIPT_RUN) $(SCRIPT_PROXY) \ weblinktest linktest_control include $(TESTBED_SRCDIR)/GNUmakerules CFLAGS += -DDEBUG -DCLIENT_BINDIR='"$(CLIENT_BINDIR)"' CFLAGS += -O -g -Wall CFLAGS += -I. -I${OBJDIR} -I$(SRCDIR)/../lib -I$(TESTBED_SRCDIR)/lib/libtb CFLAGS += `$(ELVIN_CONFIG) --cflags vin4c` LDFLAGS += -L../lib -L${OBJDIR}/lib/libtb LIBS += -levent -lcrypto -lssl LIBS += `$(ELVIN_CONFIG) --libs vin4c` ifeq ($(host_cpu),arm) else LDFLAGS += -static ifeq ($(SYSTEM),Linux) NEEDKERB := $(shell nm /usr/lib/libssl.a | grep -q krb; echo $$?) ifeq ($(NEEDKERB),0) CFLAGS += `/usr/kerberos/bin/krb5-config --cflags` LIBS += `/usr/kerberos/bin/krb5-config --libs krb5` endif endif endif ifeq ($(SYSTEM),Linux) LIBS += -ldl LOCAL_BINDIR = linux endif ifeq ($(SYSTEM),FreeBSD) LOCAL_BINDIR = fbsd endif ifeq ($(SYSTEM),CYGWIN) LOCAL_BINDIR = windows endif LIBTB_OBJS = $(LIBTBDIR)/log.o $(LIBTBDIR)/tbdefs.o DAEMON_OBJS = linktest.o LTEVENT_OBJS = ltevent.o # Rules to make sure that some libraries we need from other directories get # built first $(LIBTBDIR)/%.o: @$(MAKE) -C $(LIBTBDIR) $(@F) $(LIBEVENTDIR)/%.a: @$(MAKE) -C $(LIBEVENTDIR) $(@F) $(LOCAL_BINDIR): -mkdir -p $(LOCAL_BINDIR) binaries: $(LOCAL_BINDIR) $(LOCAL_BINDIR)/$(DAEMON) $(LOCAL_BINDIR)/$(LTEVENT) $(LOCAL_BINDIR)/$(DAEMON)-debug: $(LOCAL_BINDIR) $(DAEMON_OBJS) $(LIBTB_OBJS) $(CC) $(LDFLAGS) $(DAEMON_OBJS) $(LIBTB_OBJS) $(LIBS) -o $@ $(LOCAL_BINDIR)/$(LTEVENT)-debug: $(LOCAL_BINDIR) $(LTEVENT_OBJS) $(LIBTB_OBJS) $(CC) $(LDFLAGS) $(LTEVENT_OBJS) $(LIBTB_OBJS) $(LIBS) -o $@ $(DAEMON_OBJS): linktest.h ../lib/libevent.a ../lib/event.h $(LTEVENT_OBJS): ../lib/libevent.a ../lib/event.h # We install just enough to fire off the test from boss and wait. install: weblinktest $(SCRIPT_CONTROL) $(SCRIPT_RUN) $(SCRIPT_PROXY) $(LOCAL_BINDIR)/$(LTEVENT) $(INSTALL_PROGRAM) weblinktest $(INSTALL_LIBEXECDIR) $(INSTALL_PROGRAM) $(SCRIPT_CONTROL) $(INSTALL_SBINDIR) $(INSTALL_DATA) $(SRCDIR)/linktest.html $(INSTALL_WWWDIR)/doc -mkdir -p $(INSTALL_DIR)/opsdir/bin -mkdir -p $(INSTALL_DIR)/opsdir/sbin -mkdir -p $(INSTALL_DIR)/opsdir/libexec $(INSTALL_PROGRAM) $(SCRIPT_RUN) \ $(INSTALL_DIR)/opsdir/bin/$(SCRIPT_RUN) $(INSTALL_PROGRAM) $(SCRIPT_PROXY) \ $(INSTALL_DIR)/opsdir/sbin/$(SCRIPT_PROXY) $(INSTALL_PROGRAM) $(LOCAL_BINDIR)/$(LTEVENT) \ $(INSTALL_DIR)/opsdir/libexec/$(LTEVENT) @echo "Don't forget to do a post-install as root" post-install: chown root $(INSTALL_SBINDIR)/$(SCRIPT_CONTROL) chmod u+s $(INSTALL_SBINDIR)/$(SCRIPT_CONTROL) control-install: binaries $(INSTALL_PROGRAM) $(LOCAL_BINDIR)/$(LTEVENT) $(INSTALL_LIBEXECDIR) $(INSTALL_PROGRAM) $(SCRIPT_RUN) $(INSTALL_BINDIR) $(INSTALL_PROGRAM) $(SCRIPT_PROXY) $(INSTALL_BINDIR) client: all client-install: client $(INSTALL_PROGRAM) $(LOCAL_BINDIR)/$(DAEMON) $(DESTDIR)$(CLIENT_BINDIR)/$(DAEMON) $(INSTALL_PROGRAM) $(LOCAL_BINDIR)/$(LTEVENT) $(DESTDIR)$(CLIENT_BINDIR)/$(LTEVENT) $(INSTALL_PROGRAM) $(SCRIPT) $(DESTDIR)$(CLIENT_BINDIR)/$(SCRIPT) $(INSTALL_PROGRAM) $(SCRIPT_RUN) $(DESTDIR)$(CLIENT_BINDIR)/$(SCRIPT_RUN) $(INSTALL_PROGRAM) $(SRCDIR)/$(SCRIPT_TBCOMPAT) $(DESTDIR)$(CLIENT_BINDIR)/$(SCRIPT_TBCOMPAT) $(INSTALL_PROGRAM) $(NSTOIRDIR)/$(SCRIPT_NSTB_COMPAT) $(DESTDIR)$(CLIENT_BINDIR)/$(SCRIPT_NSTB_COMPAT) lt-install: $(INSTALL_PROGRAM) $(SCRIPT) $(DESTDIR)$(CLIENT_BINDIR)/$(SCRIPT) clean: rm -f *.o $(TESTS) $(SCRIPT) $(SCRIPT_RUN) weblinktest linktest_control rm -rf $(LOCAL_BINDIR)