#
# Cluster Information Service
#

CC =  gcc

INCLUDES = -I../include

CFLAGS = -g -O0 -Wall -D_GNU_SOURCE -DDEBUG

%.o:%.c
	$(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@

all: cisd cismon sysmon procmon sockmon netmon libCis.a libCisrec.a

clean: 
	rm -f cisd cismon sysmon procmon sockmon netmon libCis* *.o *~

cisd: cis_srv.o syscall.o cis_xdr.o cis_rpc.o
	$(CC) $(CFLAGS) -o $@ $^

cismon: cismon.o syscall.o mon_common.o sys_func.o proc_func.o sock_func.o net_func.o
	$(CC) $(CFLAGS) -o $@ $^

sysmon: sysmon.o syscall.o mon_common.o sys_func.o
	$(CC) $(CFLAGS) -o $@ $^

procmon: procmon.o syscall.o mon_common.o proc_func.o
	$(CC) $(CFLAGS) -o $@ $^

sockmon: sockmon.o syscall.o mon_common.o sock_func.o
	$(CC) $(CFLAGS) -o $@ $^

netmon: netmon.o syscall.o mon_common.o net_func.o
	$(CC) $(CFLAGS) -o $@ $^


libCis.a: cis_clnt.o cis_xdr.o
	rm -f $@
	ar clq $@ $^
	ranlib $@

libCisrec.a: cis_rec.o cis_xdr.o
	rm -f $@
	ar clq $@ $^
	ranlib $@

libCis.so: cis_clnt.o cis_xdr.o
	rm -f $@ $@.$(VERSION)
	$(CC) $(CFLAGS) -o $@.$(VERSION) -shared -Wl,-soname,$@.$(VERSION) $^ 
	ln -s $@.$(VERSION) $@

tools: FORCE
	$(MAKE) -C tools
FORCE:


depend:
	$(CC) $(CFLAGS) -M *.c

install:
	cp -vf cisd sysmon procmon sockmon netmon /usr/sbin
	$(MAKE) -C tools install

# dependencies

cis*.o *mon.o: ../include/cis.h cis_srv.h cis_xdr.h
cis_clnt.o: ../include/cis_clnt.h
