SHELL = /bin/csh

monitor_clnt.hxx : ../kernel/monitor.rpc
	$(YOOC_COMPILER) -c++ -client -connected $< -o $@

callbackserver_svc.hxx : ../kernel/callbackserver.rpc
	$(YOOC_COMPILER) -c++ -server -notconnected $< -o $@

callbackclient_svc.hxx : ../kernel/callbackclient.rpc
	$(YOOC_COMPILER) -c++ -server -connected $< -o $@

sources = yooda.cc
exec = 	$(DIR_PROGR_YOODA)/yooc_daemon $(DIR_PROGR_YOODA)/yooc_ls \
	$(DIR_PROGR_YOODA)/yooc_compiler $(DIR_PROGR_YOODA)/yoo_callback \
	$(DIR_PROGR_YOODA)/yoo_init $(DIR_PROGR_YOODA)/yoo_stat \
	$(DIR_PROGR_YOODA)/yoo_class $(DIR_PROGR_YOODA)/yoo_server \
	$(DIR_PROGR_YOODA)/yoo_admin $(DIR_PROGR_YOODA)/yoo_monitor \
	$(DIR_PROGR_YOODA)/yooc_stop

include $(MAKE_INCL_DIR)/standard.incl

VPATH += $(DIR_LIB_YOODA) $(REF_LIB_YOODA)

yooc_daemon : $(DIR_PROGR_YOODA)/yooc_daemon
yooc_ls : $(DIR_PROGR_YOODA)/yooc_ls
yooc_compiler : $(DIR_PROGR_YOODA)/yooc_compiler
yoo_callback : $(DIR_PROGR_YOODA)/yoo_callback
yoo_init : $(DIR_PROGR_YOODA)/yoo_init
yoo_stat : $(DIR_PROGR_YOODA)/yoo_stat
yoo_class : $(DIR_PROGR_YOODA)/yoo_class
yoo_server : $(DIR_PROGR_YOODA)/yoo_server
yoo_admin : $(DIR_PROGR_YOODA)/yoo_admin
yoo_monitor : $(DIR_PROGR_YOODA)/yoo_monitor
yooc_stop : $(DIR_PROGR_YOODA)/yooc_stop

CPPFLAGS += $(I_YTOOLS) $(I_YOODA) $(I_YOODAINTF)

$(objects): $(DIR_OBJ_YOODA)/%.o: %.cc
	$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) -o $@ $^

LIBLS = $(DIR_LIB_YOODA)/libls.a
$(LIBLS) : $(DIR_LIB_YOODA)/libls.a(infoserver.o)
	$(RANLIB) $@

$(DIR_PROGR_YOODA)/yooc_ls: $(LIBLS) $(LIB_YTOOLS) 
	$(PURE) $(CXX) $(LDFLAGS) -o $@ \
	$^ $(L_YOODA) $(L_LIB_YOODA_MDEP) $(LIB_YOODA_MDEP)
 
LIBDAEMON = $(DIR_LIB_YOODA)/libdaemon.a
$(LIBDAEMON) : $(DIR_LIB_YOODA)/libdaemon.a(connectd.o)
	$(RANLIB) $@

$(DIR_PROGR_YOODA)/yooc_daemon: $(LIBDAEMON) $(LIB_YTOOLS)
	$(PURE) $(CXX) $(LDFLAGS) -o $@ \
	$^ $(L_YOODA) $(L_LIB_YOODA_MDEP) $(LIB_YOODA_MDEP)

LIBSTOPYOOC = $(DIR_LIB_YOODA)/libstopyooc.a
$(LIBSTOPYOOC) : $(DIR_LIB_YOODA)/libstopyooc.a(stopyooc.o)
	$(RANLIB) $@

$(DIR_PROGR_YOODA)/yooc_stop: $(LIBSTOPYOOC) $(LIB_YTOOLS)
	$(PURE) $(CXX) $(LDFLAGS) -o $@ \
	$^ $(L_YOODA) $(L_LIB_YOODA_MDEP) $(LIB_YOODA_MDEP)

YOOCOM_OBJ = yoocom_y.o yoocom_l.o yoocom.o yoocom_list.o
LIBCOMPILER = $(DIR_LIB_YOODA)/libcompiler.a
$(LIBCOMPILER) : $(DIR_LIB_YOODA)/libcompiler.a($(YOOCOM_OBJ))
	$(RANLIB) $@

$(DIR_PROGR_YOODA)/yooc_compiler: $(LIBCOMPILER) $(LIB_YTOOLS)
	$(PURE) $(CXX) $(LDFLAGS) -o $@ \
	$^ $(L_YOODA) $(L_LIB_YOODA_MDEP) $(LIB_YOODA_MDEP) -ll -ly


LIBCALLBACK = $(DIR_LIB_YOODA)/libcallback.a
$(LIBCALLBACK) : $(DIR_LIB_YOODA)/libcallback.a(callback.o)
	$(RANLIB) $@

$(DIR_PROGR_YOODA)/yoo_callback: $(LIBCALLBACK) $(objects) $(LIB_YOODA) $(LIB_YTOOLS)
	$(PURE) $(CXX) $(LDFLAGS) -o $@ \
	$^ $(L_YOODA) $(L_LIB_YOODA_MDEP) $(LIB_YOODA_MDEP) -ll -ly
 
LIBINIT = $(DIR_LIB_YOODA)/libinit.a
$(LIBINIT) : $(DIR_LIB_YOODA)/libinit.a(create.o delvol_y.o delvol_l.o)
	$(RANLIB) $@

$(DIR_PROGR_YOODA)/yoo_init: $(LIBINIT) $(objects) $(LIB_YOODA) $(LIB_YTOOLS)
	$(PURE) $(CXX) $(LDFLAGS) -o $@ \
	$^ $(L_YOODA) $(L_LIB_YOODA_MDEP) $(LIB_YOODA_MDEP) -ll -ly 
 
LIBSTAT = $(DIR_LIB_YOODA)/libstat.a
$(LIBSTAT) : $(DIR_LIB_YOODA)/libstat.a(stat.o)
	$(RANLIB) $@

$(DIR_PROGR_YOODA)/yoo_stat: $(LIBSTAT) $(objects) $(LIB_YOODA) $(LIB_YTOOLS)
	$(PURE) $(CXX) $(LDFLAGS) -o $@ \
	$^ $(L_YOODA) $(L_LIB_YOODA_MDEP) $(LIB_YOODA_MDEP) -ll -ly 
 
LIBCLASS = $(DIR_LIB_YOODA)/libclass.a
$(LIBCLASS) : $(DIR_LIB_YOODA)/libclass.a(class_y.o class_l.o)
	$(RANLIB) $@

$(DIR_PROGR_YOODA)/yoo_class: $(LIBCLASS) $(objects) $(LIB_YOODA) $(LIB_YTOOLS)
	echo $(objects)
	$(PURE) $(CXX) $(LDFLAGS) -o $@ \
	$^ $(L_YOODA) $(L_LIB_YOODA_MDEP) $(LIB_YOODA_MDEP) -ll -ly

LIBSERV = $(DIR_LIB_YOODA)/libserv.a
$(LIBSERV) : $(DIR_LIB_YOODA)/libserv.a(mainserver_tmpl.o mainserver.o)
	$(RANLIB) $@

$(DIR_PROGR_YOODA)/yoo_server: $(LIBSERV)  $(objects) $(LIB_YOODA) $(LIB_YTOOLS) $(LIB_JUMP)
	$(PURE) $(CXX) $(LDFLAGS) -o $@ \
	$^ $(LIBSERV) $(L_LIB_YOODA_MDEP) $(LIB_YOODA_MDEP) -ll -ly

LIBMON = $(DIR_LIB_YOODA)/libmon.a
$(LIBMON) : $(DIR_LIB_YOODA)/libmon.a(main_monitor.o mainserver_tmpl.o)
	$(RANLIB) $@

$(DIR_PROGR_YOODA)/yoo_monitor: $(LIBMON)  $(objects) $(LIB_YOODA) $(LIB_YTOOLS) $(LIB_JUMP)
	$(PURE) $(CXX) $(LDFLAGS) -o $@ \
	$^ $(L_YOODA) $(L_LIB_YOODA_MDEP) $(LIB_YOODA_MDEP) -ll -ly

LIBADM = $(DIR_LIB_YOODA)/libadm.a
$(LIBADM) : $(DIR_LIB_YOODA)/libadm.a(admin_y.o admin_l.o shell.o)
	$(RANLIB) $@

$(DIR_PROGR_YOODA)/yoo_admin: $(LIBADM) $(objects) $(LIB_YOODA) $(LIB_YTOOLS)
	$(PURE) $(CXX) $(LDFLAGS) -o $@ \
	$^ $(L_YOODA) $(L_LIB_YOODA_MDEP) $(LIB_YOODA_MDEP) -ll -ly

malib = $(LIBADM) $(LIBSERV) $(LIBCLASS) $(LIBSTAT) $(LIBINIT) $(LIBCALLBACK) \
	$(LIBCOMPILER) $(LIBLS) $(LIBDAEMON) $(LIBMON)

callback.cc : callbackserver_svc.hxx callbackclient_svc.hxx
