#ifndef _BLURB_
#define _BLURB_
#/*
#
#            Coda: an Experimental Distributed File System
#                             Release 3.1
#
#          Copyright (c) 1987-1995 Carnegie Mellon University
#                         All Rights Reserved
#
#Permission  to  use, copy, modify and distribute this software and its
#documentation is hereby granted,  provided  that  both  the  copyright
#notice  and  this  permission  notice  appear  in  all  copies  of the
#software, derivative works or  modified  versions,  and  any  portions
#thereof, and that both notices appear in supporting documentation, and
#that credit is given to Carnegie Mellon University  in  all  documents
#and publicity pertaining to direct or indirect use of this code or its
#derivatives.
#
#CODA IS AN EXPERIMENTAL SOFTWARE SYSTEM AND IS  KNOWN  TO  HAVE  BUGS,
#SOME  OF  WHICH MAY HAVE SERIOUS CONSEQUENCES.  CARNEGIE MELLON ALLOWS
#FREE USE OF THIS SOFTWARE IN ITS "AS IS" CONDITION.   CARNEGIE  MELLON
#DISCLAIMS  ANY  LIABILITY  OF  ANY  KIND  FOR  ANY  DAMAGES WHATSOEVER
#RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE  OR  OF
#ANY DERIVATIVE WORK.
#
#Carnegie  Mellon  encourages  users  of  this  software  to return any
#improvements or extensions that  they  make,  and  to  grant  Carnegie
#Mellon the rights to redistribute these changes without encumbrance.
#*/
#
#static char *rcsid = "$Header: Makefile,v 3.4.1.1 95/10/11 10:28:32 raiff Exp $";
#endif /*_BLURB_*/

#/*
#
#                         IBM COPYRIGHT NOTICE
#
#                          Copyright (C) 1986
#             International Business Machines Corporation
#                         All Rights Reserved
#
#This  file  contains  some  code identical to or derived from the 1986
#version of the Andrew File System ("AFS"), which is owned by  the  IBM
#Corporation.    This  code is provded "AS IS" and IBM does not warrant
#that it is free of infringement of  any  intellectual  rights  of  any
#third  party.    IBM  disclaims  liability of any kind for any damages
#whatsoever resulting directly or indirectly from use of this  software
#or  of  any  derivative work.  Carnegie Mellon University has obtained
#permission to distribute this code, which is based on Version 2 of AFS
#and  does  not  contain the features and enhancements that are part of
#Version 3 of AFS.  Version 3 of  AFS  is  commercially  available  and
#supported by Transarc Corporation, Pittsburgh, PA.
#
#*/

# use C++
CC = $(CC?$(CC):CC)

#CAMLIBS = $(CAMDIR)/lib/libcamlib.a $(CAMDIR)/lib/libcam.a
MACHLIBS = -lmach 


LIBS = 	$(LIBAUTH2)	\
	$(LIBAL)	\
	$(LIBVOLUTIL)	\
	$(SALVAGE_O) 	\
	$(LIBRESLIB)	\
	$(LIBRVMRES)	\
	$(LIBRESOLVE) 	\
	$(LIBVOL)	\
	$(LIBVV)	\
	$(LIBSYSENT)	\
	$(LIBGROUP)	\
	$(DIR_O)	\
	$(BUFFER_O)	\
	$(LIBUTIL) 	\
	$(LIBRDS)       \
	$(LIBSEG)  	\
	$(LIBRVMLWP) 	\
	$(LIBRPC2) 	\
	$(LIBSE)	\
	$(LIBFAIL)	\
	$(LIBOLDLWP)	


headers=$(INCLDIR)/lwp.h	\
	$(INCLDIR)/al.h		\
	$(INCLDIR)/errors.h	\
	$(INCLDIR)/prs.h	\
	$(INCLDIR)/lock.h	\
	$(INCLDIR)/volume.h	\
	$(INCLDIR)/cvnode.h	\
	$(INCLDIR)/rpc2.h	\
	$(INCLDIR)/fail.h	\
	$(INCLDIR)/vice.h	\
	$(INCLDIR)/mond.h       \
	$(INCLDIR)/srv.h	\
	$(INCLDIR)/volutil.private.h \
	$(INCLDIR)/vrdb.h	\
	$(INCLDIR)/fcon.h

objects=srvproc.o	\
	srvproc2.o	\
	coppend.o	\
	codaproc.o	\
	codaproc2.o	\
	clientproc.o	\
	vice.server.o	\
	vice.multi.o	\
	vicecb.o	\
	smon.o		\
	ViceErrorMsg.o	\
	callback.client.o \
	callback.multi.o \
	mond.client.o

CFILES=srv.c srvproc.c srvproc2.c  codaproc.c \
	codaproc2.c clientproc.c vicecb.c smon.c ViceErrorMsg.c \
	printvrdb.c coppend.c

HFILES = coppend.h codaproc.h 

all: vice.server.c vice.multi.c callback.client.c callback.multi.c mond.client.c srv printvrdb codamon

vice.server.c vice.multi.c vice.h: $(VICE_RPC2) ${RP2GEN}
	${RP2GEN} -n $(RP2FLAGS) $(VICE_RPC2)

callback.client.c callback.multi.c callback.h: $(CALLBACK_RPC2) ${RP2GEN}
	${RP2GEN} -n $(RP2FLAGS) $(CALLBACK_RPC2)

mond.client.c mond.h: $(MOND_RPC2) ${RP2GEN}
	${RP2GEN} -n $(RP2FLAGS) $(MOND_RPC2)

smon.o: mond.h

${objects}:${headers} ${HFILES}

dummyplumber.o: dummyplumber.c 

srv: ${objects} srv.o ${headers} ${HFILES} ${LIBS} dummyplumber.o
	$(CC) ${CFLAGS} $(LIBFLAGS) -o srv ${objects} srv.o dummyplumber.o ${LIBS} -lm ${MACHLIBS}

srv.plumber: ${objects} srv.o ${headers} ${HFILES} ${LIBS} ${LIBNEWPLUMBER}
	$(CC) ${CFLAGS} $(LIBFLAGS) -o srv.plumber ${objects} srv.o ${LIBNEWPLUMBER} ${LIBS} -lm ${MACHLIBS}

srv.o: srv.c ${headers} ${HFILES}
	${CC} ${CFLAGS} -DOLDLWP -c srv.c

codamon: codamon.o 
	$(CC) ${CFLAGS} -o codamon codamon.o ${LIBUTIL}

printvrdb: printvrdb.o
	$(CC) ${CFLAGS} -o printvrdb printvrdb.o

vice.server.o: vice.server.c ${headers} ${HFILES}

callback.multi.o: callback.multi.c callback.h

clean:
	rm -f *.o srv printvrdb codamon \
	callback.client.c callback.multi.c callback.server.c \
	mond.client.c mond.multi.c mond.server.c \
	vice.client.c vice.multi.c vice.server.c \
	callback.h mond.h vice.h

bininstall: srv printvrdb
	-chmod 0755 ${BINDIR}/srv ${BINDIR}/printvrdb
	${INSTALL} srv printvrdb ${BINDIR}

libinstall: ViceErrorMsg.o
	-chmod 0644 ${VICEERRORMSG_O}
	${INSTALL} ViceErrorMsg.o ${VICEERRORMSG_O}

srcinstall:
# Manually setenv SUPPRESS_ALPHACI if you want to suppress the RCS checkin by alphaci
	SRCDIR=$(SRCDIR); export SRCDIR; $(ALPHACI)

install: all libinstall bininstall srcinstall
