INSTDIR	= UNDEFINED
OWNER   = pfs
GROUP   = pfs

INSTALL = install
CC	= cc
MAKE	= make

PASTHRU = INSTDIR=${INSTDIR} INSTALL=${INSTALL} OWNER=${OWNER} GROUP=${GROUP} \
	  CC=${CC} MAKE=${MAKE} LIBS=${LIBS} MACHDEF=${MACHDEF}

P_INC	= ../include

# libraries should be relative to this dir
PFS_LIB	= ../lib/pfs/libpfs.a
FIL_LIB  = ../lib/filters/libfilter.a  
CMP_LIB  = ../lib/pcompat/libpcompat.a

F_CC	= -c -g
F_CCL	= -g
F_CPP	= -I${P_INC} ${MACHDEF} -DDEBUG 

CFILES	= \
	als.c \
	af.c \
	aquery.c \
	cfp.c \
	list_acl.c \
	vcopydir.c \
	vget.c \
	gen_vfsetup.c \
	newpsite.c \
	newvs.c \
	archie.c \
	pfs.c \
	pkl.c \
	pstatus.c \
	set_acl.c \
	vcd.c \
	vfsetup.c \
	vln.c \
	vls.c \
	vmkdir.c \
	vrm.c 

OBJECTS	= \
	als.o \
	af.o \
	aquery.o \
	cfp.o \
	list_acl.o \
	vcopydir.o \
	vget.o \
	gen_vfsetup.o \
	newpsite.o \
	newvs.o \
	archie.o \
	pfs.o \
	pkl.o \
	pstatus.o \
	set_acl.o \
	vcd.o \
	vfsetup.o \
	vln.o \
	vls.o \
	vmkdir.o \
	vrm.o 


PROGS	= vls vcd vfsetup vln vmkdir vrm af vget pfs list_acl set_acl pstatus 

OTHERPROGS = newvs newpsite cfp pkl vcopydir als

CODE	= ${CFILES} Makefile

all:	${PROGS} vcache.dir vfsetup.source

vcache.dir:
	cd vcache ; \
	${MAKE} ${PASTHRU} all;

install:
	-for i in ${PROGS}; do \
	    (${INSTALL} -c -s -o ${OWNER} -g ${GROUP} $$i ${INSTDIR}/$$i); \
    	done 
	-${INSTALL} -c -o ${OWNER} -g ${GROUP} vfsetup.source ${INSTDIR}/vfsetup.source 
	cd vcache ; \
	${MAKE} ${PASTHRU} install; 

clean:
	rm -f a.out core *~ tags TAGS ${OBJECTS} ${PROGS} *.o makedep vfsetup.source gen_vfsetup
	cd vcache ; \
	${MAKE} clean; 

src:	${CODE}

${CODE}:
	co -q $@;

${OBJECTS}:
	${CC} ${F_CC} ${F_CPP} $*.c

${PROGS} ${OTHERPROGS}: ${PFS_LIB} ${FIL_LIB}
	${CC} ${F_CCL} -o $@ $@.o ${PFS_LIB} ${FIL_LIB} ${LIBES}

archie: ${PFS_LIB} ${FIL_LIB}
	${CC} ${F_CCL} -o $@ $@.o aquery.o ${PFS_LIB} ${FIL_LIB} ${PFS_LIB} ${LIBES}

vfsetup.source:	gen_vfsetup
	./gen_vfsetup > vfsetup.source

gen_vfsetup:	gen_vfsetup.o
	${CC} -o gen_vfsetup gen_vfsetup.o

# Dependencies
af.o: ../include/perrno.h
af.o: ../include/pfs.h
af: af.o
cfp.o: ../include/perrno.h
cfp.o: ../include/pfs.h
cfp.o: ../include/pmachine.h
cfp: cfp.o
gen_vfsetup.o: ../include/pmachine.h
gen_vfsetup.o: ../include/psite.h
list_acl.o: ../include/perrno.h
list_acl.o: ../include/pfs.h
list_acl.o: ../include/pmachine.h
list_acl: list_acl.o
newpsite.o: ../include/perrno.h
newpsite.o: ../include/pfs.h
newpsite.o: ../include/pmachine.h
newpsite.o: ../include/psite.h
newpsite: newpsite.o
newvs.o: ../include/perrno.h
newvs.o: ../include/pfs.h
newvs.o: ../include/psite.h
newvs: newvs.o
pfs.o: ../include/pfs.h
pfs.o: ../include/pmachine.h
pfs: pfs.o
pkl.o: ../include/pauthent.h
pkl.o: ../include/perrno.h
pkl.o: ../include/pfs.h
pkl.o: ../include/pprot.h
pkl: pkl.o
pstatus.o: ../include/perrno.h
pstatus.o: ../include/pfs.h
pstatus.o: ../include/pprot.h
pstatus: pstatus.o
set_acl.o: ../include/perrno.h
set_acl.o: ../include/pfs.h
set_acl.o: ../include/pmachine.h
set_acl.o: ../include/pprot.h
set_acl: set_acl.o
vcd.o: ../include/perrno.h
vcd.o: ../include/pfs.h
vcd.o: ../include/pmachine.h
vcd: vcd.o
vcopydir.o: ../include/perrno.h
vcopydir.o: ../include/pfs.h
vcopydir.o: ../include/psite.h
vcopydir: vcopydir.o
vfsetup.o: ../include/pcompat.h
vfsetup.o: ../include/perrno.h
vfsetup.o: ../include/pfs.h
vfsetup.o: ../include/pmachine.h
vfsetup.o: ../include/psite.h
vfsetup: vfsetup.o
vget.o: ../include/pcompat.h
vget.o: ../include/perrno.h
vget.o: ../include/pfs.h
vget.o: ../include/pmachine.h
vget.o: ../include/psite.h
vget: vget.o
vln.o: ../include/perrno.h
vln.o: ../include/pfs.h
vln.o: ../include/pmachine.h
vln: vln.o
vls.o: ../include/perrno.h
vls.o: ../include/pfs.h
vls: vls.o
archie.o: ../include/perrno.h
archie.o: ../include/pfs.h
archie.o: ../include/archie.h
aquery.o: ../include/archie.h
archie: archie.o
archie: aquery.o
vmkdir.o: ../include/perrno.h
vmkdir.o: ../include/pfs.h
vmkdir: vmkdir.o
vrm.o: ../include/perrno.h
vrm: vrm.o
als: als.o
