#------------------------------------------------------------------------------
# Copyright (c) 1992 Regents of the University of Michigan.
# All rights reserved.
#
# Redistribution and use in source and binary forms are permitted
# provided that this notice is preserved and that due credit is given
# to the University of Michigan at Ann Arbor. The name of the University
# may not be used to endorse or promote products derived from this
# software without specific prior written permission. This software
# is provided ``as is'' without express or implied warranty.
#
# Internet Rover Distribution
#
#------------------------------------------------------------------------------

#
# Edit the following variables to have appropriate values for your system
#
#	ALSO - BE SURE TO SET YOUR $PINGKYDIR ENVIRONMENTAL VARIABLE TO
#	POINT TO WHERE THE DATA FILES (hostfile, PROBLEM.FILE) are.
#	( In this distribution that would be the etc dir within this tree )
#
# LIBDIR - where to install the libraries
# BINDIR - where to install the binaries
#
LIBDIR	= /u2/wbn/src/rovers/lib
BINDIR	= /u2/wbn/src/rovers/bin
BINDIR	= /usr/private/rovers/bin

#
# ACFLAGS  - added to every CFLAGS
# ALDFLAGS - always passed to 'ld'
#
#	For FREEBSD 
#		1) add the -DFREEBSD to ACFLAGS		@Rodney Volz
#		2) uncomment the MACH=freebsd line	@Rodney Volz
#					(rodney@tyrell.s.bawue.de)
#MACH=freebsd
ACFLAGS		= -g
ALDFLAGS	= -g

#
# Leave the following two UNcommented for AIX BEV
#	comment on SUN
#REGEXLIB	= -lPW
#BSDLIB		= -lbsd
#
TERMLIB		= -ltermcap
CURSESLIB	= -lcurses

MAKE		= make
CC		= cc

#------------------------------------------------------------------------------
#  You should not need to change anything below here
#------------------------------------------------------------------------------

SDIRS	= Ctools HostfileManager ProblemManager Linkfileio  LinkWidthfileio
OTHERS	= Display InetRover pingd fastsnmpapi Discovery
ADVANCED	=	Discovery 

all:	${SDIRS} ${OTHERS}

version:
	(f="rover.v"`cat VERSION`".tar" ; \
	cd .. ; tar cFFf $${f} rovers ; compress $${f})

Ctools:
	@echo "cd src/Ctools; $(MAKE) all"
	@(cd src/Ctools; $(MAKE) ACFLAGS="$(ACFLAGS)" ALDFLAGS="$(ALDFLAGS)" \
		LIBDIR="$(LIBDIR)" CC=$(CC) all)

HostfileManager:
	@echo "cd src/HostfileManager; $(MAKE) all"
	@(cd src/HostfileManager; $(MAKE) ACFLAGS="$(ACFLAGS)" \
		LIBDIR="$(LIBDIR)" ALDFLAGS="$(ALDFLAGS)" CC=$(CC) all)

ProblemManager:
	@echo "cd src/ProblemManager; $(MAKE) all"
	@(cd src/ProblemManager; $(MAKE) ACFLAGS="$(ACFLAGS)" \
		LIBDIR="$(LIBDIR)" ALDFLAGS="$(ALDFLAGS)" CC=$(CC) all)

Linkfileio:
	@echo "cd src/Linkfileio; $(MAKE) all"
	@(cd src/Linkfileio; $(MAKE) ACFLAGS="$(ACFLAGS)" \
		LIBDIR="$(LIBDIR)" ALDFLAGS="$(ALDFLAGS)" CC=$(CC) all)

LinkWidthfileio:
	@echo "cd src/LinkWidthfileio; $(MAKE) all"
	@(cd src/LinkWidthfileio; $(MAKE) ACFLAGS="$(ACFLAGS)" \
		LIBDIR="$(LIBDIR)" ALDFLAGS="$(ALDFLAGS)" CC=$(CC) all)

Display:
	@echo "cd src/Display; $(MAKE) all"
	@(cd src/Display; $(MAKE) ACFLAGS="$(ACFLAGS)" ALDFLAGS="$(ALDFLAGS)" \
		LIBDIR="${LIBDIR}" REGEXLIB="${REGEXLIB}" \
		TERMLIB="${TERMLIB}" CURSESLIB="${CURSESLIB}" \
		CC=$(CC) all)

InetRover:
	@echo "cd src/InetRover; $(MAKE) all"
	@(cd src/InetRover; $(MAKE) ACFLAGS="$(ACFLAGS)" \
		ALDFLAGS="$(ALDFLAGS)" LIBDIR="${LIBDIR}" \
		BSDLIB="${BSDLIB}" CC=$(CC) all)

pingd:
	@echo "cd src/pingd; $(MAKE) all"
	@(cd src/pingd; $(MAKE) ACFLAGS="$(ACFLAGS)" \
		ALDFLAGS="$(ALDFLAGS)" LIBDIR="${LIBDIR}" \
		BSDLIB="${BSDLIB}" CC=$(CC) all)

RoverServer:
	@echo "cd src/RoverServer; $(MAKE) all"
	@(cd src/RoverServer; $(MAKE) ACFLAGS="$(ACFLAGS)" \
		ALDFLAGS="$(ALDFLAGS)" LIBDIR="${LIBDIR}" \
		BSDLIB="${BSDLIB}" CC=$(CC) all)

ping-install:
	@echo "cd src/pingd; $(MAKE) ping-install"
	@(cd src/pingd; $(MAKE) ACFLAGS="$(ACFLAGS)" \
		ALDFLAGS="$(ALDFLAGS)" LIBDIR="${LIBDIR}" \
		BINDIR="${BINDIR}" CC=$(CC) ping-install)

root-install:
	@echo "cd src/pingd; $(MAKE) root-ping"
	@(cd src/pingd; $(MAKE) ACFLAGS="$(ACFLAGS)" \
		ALDFLAGS="$(ALDFLAGS)" LIBDIR="${LIBDIR}" \
		BINDIR="${BINDIR}" CC=$(CC) root-ping)

fastsnmpapi:
	@echo "cd src/fastsnmpapi; $(MAKE) all"
	@(cd src/fastsnmpapi; $(MAKE) ACFLAGS="$(ACFLAGS)" \
		ALDFLAGS="$(ALDFLAGS)" LIBDIR="${LIBDIR}" \
		BSDLIB="${BSDLIB}" TERMLIB="${TERMLIB}" \
		CURSESLIB="${CURSESLIB}" CC=$(CC) all)

Discovery:
	@echo "cd src/Discovery; $(MAKE) all"
	@(cd src/Discovery; $(MAKE) ACFLAGS="$(ACFLAGS)" \
		ALDFLAGS="$(ALDFLAGS)" LIBDIR="${LIBDIR}" \
		BSDLIB="${BSDLIB}" TERMLIB="${TERMLIB}" \
		CURSESLIB="${CURSESLIB}" CC=$(CC) all)

meritpoller:
	@echo "cd src/Discovery/Pollers; $(MAKE) all"
	@(cd src/Discovery/Pollers; $(MAKE) ACFLAGS="$(ACFLAGS)" \
		ALDFLAGS="$(ALDFLAGS)" LIBDIR="${LIBDIR}" \
		BSDLIB="${BSDLIB}" TERMLIB="${TERMLIB}" \
		CURSESLIB="${CURSESLIB}" CC=$(CC) all)

statusfilemanager:
	@echo "cd src/Discovery/StatusFileManager; $(MAKE) all"
	@(cd src/Discovery/StatusFileManager; $(MAKE) ACFLAGS="$(ACFLAGS)" \
		ALDFLAGS="$(ALDFLAGS)" LIBDIR="${LIBDIR}" \
		BSDLIB="${BSDLIB}" CC=$(CC) all)

xmap:
	@echo "cd src/Discovery/Monitors; $(MAKE) all"
	@(cd src/Discovery/Monitors; $(MAKE) ACFLAGS="$(ACFLAGS)" \
		ALDFLAGS="$(ALDFLAGS)" LIBDIR="${LIBDIR}" \
		BSDLIB="${BSDLIB}" CC=$(CC) all)

dsuchk:
	@echo "cd src/fastsnmpapi/apps/CircuitCheck; $(MAKE) all"
	@(cd src/fastsnmpapi/apps/CircuitCheck; $(MAKE) ACFLAGS="$(ACFLAGS)" \
		ALDFLAGS="$(ALDFLAGS)" LIBDIR="${LIBDIR}" \
		CC=$(CC) all)

day:
	@echo "cd src/fastsnmpapi/apps/day; $(MAKE) all"
	@(cd src/fastsnmpapi/apps/day; $(MAKE) ACFLAGS="$(ACFLAGS)" \
		ALDFLAGS="$(ALDFLAGS)" LIBDIR="${LIBDIR}" \
		CC=$(CC) all)

makelinkwidth:
	@echo "cd src/fastsnmpapi/apps/makelinkwidth; $(MAKE) all"
	@(cd src/fastsnmpapi/apps/makelinkwidth; $(MAKE) ACFLAGS="$(ACFLAGS)" \
		ALDFLAGS="$(ALDFLAGS)" LIBDIR="${LIBDIR}" \
		CC=$(CC) all)

getlinkstate:
	@echo "cd src/fastsnmpapi/apps/getlinkstate; $(MAKE) all"
	@(cd src/fastsnmpapi/apps/getlinkstate; $(MAKE) ACFLAGS="$(ACFLAGS)" \
		ALDFLAGS="$(ALDFLAGS)" LIBDIR="${LIBDIR}" \
		CC=$(CC) all)

getneighbors2:
	@echo "cd src/fastsnmpapi/apps/getneighbors2; $(MAKE) all"
	@(cd src/fastsnmpapi/apps/getneighbors2; $(MAKE) ACFLAGS="$(ACFLAGS)" \
		ALDFLAGS="$(ALDFLAGS)" LIBDIR="${LIBDIR}" \
		CC=$(CC) all)

Discover:
	@echo "cd src/fastsnmpapi/apps/Discover; $(MAKE) all"
	@(cd src/fastsnmpapi/apps/Discover; $(MAKE) ACFLAGS="$(ACFLAGS)" \
		ALDFLAGS="$(ALDFLAGS)" LIBDIR="${LIBDIR}" \
		CC=$(CC) all)

GetMeritNeighborTable:
	@echo "cd src/fastsnmpapi/apps/GetMeritNeighborTable; $(MAKE) all"
	@(cd src/fastsnmpapi/apps/GetMeritNeighborTable; $(MAKE) ACFLAGS="$(ACFLAGS)" \
		ALDFLAGS="$(ALDFLAGS)" LIBDIR="${LIBDIR}" \
		CC=$(CC) all)

snmppcpstats:
	@echo "cd src/fastsnmpapi/apps/snmppcpstats; $(MAKE) all"
	@(cd src/fastsnmpapi/apps/snmppcpstats; $(MAKE) ACFLAGS="$(ACFLAGS)" \
		ALDFLAGS="$(ALDFLAGS)" LIBDIR="${LIBDIR}" \
		CC=$(CC) all)

snmpstats2:
	@echo "cd src/fastsnmpapi/apps/snmpstats2; $(MAKE) all"
	@(cd src/fastsnmpapi/apps/snmpstats2; $(MAKE) ACFLAGS="$(ACFLAGS)" \
		ALDFLAGS="$(ALDFLAGS)" LIBDIR="${LIBDIR}" \
		CC=$(CC) all)

processstats:
	@echo "cd src/fastsnmpapi/apps/processstats; $(MAKE) all"
	@(cd src/fastsnmpapi/apps/processstats; $(MAKE) ACFLAGS="$(ACFLAGS)" \
		ALDFLAGS="$(ALDFLAGS)" LIBDIR="${LIBDIR}" \
		CC=$(CC) all)

snmptable2:
	@echo "cd src/fastsnmpapi/apps/snmptable2; $(MAKE) all"
	@(cd src/fastsnmpapi/apps/snmptable2; $(MAKE) ACFLAGS="$(ACFLAGS)" \
		ALDFLAGS="$(ALDFLAGS)" LIBDIR="${LIBDIR}" \
		CC=$(CC) all)

roverdump:
	@echo "cd src/fastsnmpapi/apps/roverdump; $(MAKE) all"
	@(cd src/fastsnmpapi/apps/roverdump; $(MAKE) ACFLAGS="$(ACFLAGS)" \
		ALDFLAGS="$(ALDFLAGS)" LIBDIR="${LIBDIR}" \
		CC=$(CC) all)

viewifs:
	@echo "cd src/fastsnmpapi/apps/viewifs; $(MAKE) all"
	@(cd src/fastsnmpapi/apps/viewifs; $(MAKE) ACFLAGS="$(ACFLAGS)" \
		ALDFLAGS="$(ALDFLAGS)" LIBDIR="${LIBDIR}" \
		BSDLIB="${BSDLIB}" TERMLIB="${TERMLIB}" \
		CURSESLIB="${CURSESLIB}" CC=$(CC) all)

install:
	@for i in $(SDIRS) $(OTHERS); \
		do (echo "cd src/$$i; $(MAKE) install"; \
			cd src/$$i; $(MAKE) BINDIR=$(BINDIR) LIBDIR=$(LIBDIR) \
			install); \
		done
	-chmod -R 755 $(BINDIR)

clean:
	-cd $(LIBDIR); rm *.a
	@for i in $(SDIRS) $(OTHERS); \
		do (echo "cd src/$$i; $(MAKE) clean"; \
			cd src/$$i; $(MAKE) clean); \
		done

depend:
	@for i in $(SDIRS) $(OTHERS); \
		do (echo "cd src/$$i; $(MAKE) depend"; \
			cd src/$$i; $(MAKE) depend); \
		done
