###############################################################################
# Variable definitions for targets to build
###############################################################################
#___INFO__MARK_BEGIN__
##########################################################################
#
#  The Contents of this file are made available subject to the terms of
#  the Sun Industry Standards Source License Version 1.2
#
#  Sun Microsystems Inc., March, 2001
#
#
#  Sun Industry Standards Source License Version 1.2
#  =================================================
#  The contents of this file are subject to the Sun Industry Standards
#  Source License Version 1.2 (the "License"); You may not use this file
#  except in compliance with the License. You may obtain a copy of the
#  License at http://gridengine.sunsource.net/Gridengine_SISSL_license.html
#
#  Software provided under this License is provided on an "AS IS" basis,
#  WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
#  WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
#  MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
#  See the License for the specific provisions governing your rights and
#  obligations concerning the Software.
#
#  The Initial Developer of the Original Code is: Sun Microsystems, Inc.
#
#  Copyright: 2001 by Sun Microsystems, Inc.
#
#  All Rights Reserved.
#
##########################################################################
#___INFO__MARK_END__
COMMD_DIR = $(SDIR)/daemons/commd

COMMD_TARGETS = sge_commd commdcntl tstsnd tstrcv

COMMD_SRC   = commd.c message.c rwfd.c commproc.c process_received_message.c prolog.c deliver_message.c ack.c reset_messages_for_commproc.c setup_commd_path.c version.c commd_io.c

COMMD_ADD_SRC = 

COMMD_OBJS = $(COMMD_SRC:.c=.o)

COMMD_ADD_OBJS = $(COMMD_ADD_SRC:.c=.o)

COMMD_ADD_LIBS = -luti -lrmon 

COMMD_LIB_DEPENDS =  $(COMMLIB) $(UTILIB) $(RMONLIB) $(ZLIB)

COMMD_TARGETS_OBJS = commdcntl.o tstsnd.o tstrcv.o

###############################################################################
# global rules: all, clean, depend, messages
###############################################################################
commd: $(COMMD_TARGETS)
	
commd_clean:
	rm -f $(COMMD_TARGETS) $(COMMD_OBJS) $(COMMD_TARGETS_OBJS)

commd_depend:
	$(DEPEND) -f$(COMMD_DIR)/commd_dependencies $(COMMD_DIR)/*.c

commd_messages:
	@echo Creating $@
	@for i in `ls $(COMMD_DIR)/*.c`; do \
	   $(CC) $(CFLAGS) -DEXTRACT_MESSAGES -E $$i | $(XGETTEXT) - ;\
	done

###############################################################################
# rules to build binaries
###############################################################################
sge_commd:	$(COMMD_OBJS) $(COMMD_ADD_OBJS) $(COMMD_LIB_DEPENDS)
	$(CC) $(CFLAGS) $(LFLAGS) -o $@ $(COMMD_OBJS) $(COMMD_ADD_OBJS) $(COMMD_ADD_LIBS) $(SLIBS) $(LIBS)

commdcntl:	commdcntl.o $(GDILIB) $(SECLIBS) $(KRBLIBS) $(CULLLIB) $(COMMLIB) $(UTILIB) $(RMONLIB) $(RMONLIB)
	$(CC) $(CFLAGS) $(LFLAGS) -o $@ commdcntl.o $(GDILIB) $(SECLIBS) $(KRBLIBS) $(CULLLIB)  $(COMMLIB) $(RMONLIB) $(COMMD_ADD_OBJS) $(COMMD_ADD_LIBS) $(SLIBS) $(LIBS)

tstsnd:	tstsnd.o $(CULLLIB) $(COMMLIB) $(UTILIB) $(RMONLIB)
	$(CC) $(CFLAGS) $(LFLAGS) -o $@ tstsnd.o $(COMMD_ADD_OBJS) -lcull -lcom -luti -lrmon $(LIBS)

tstrcv: tstrcv.o $(CULLLIB) $(COMMLIB) $(UTILIB) $(RMONLIB)
	$(CC) $(CFLAGS) $(LFLAGS) -o $@ tstrcv.o $(COMMD_ADD_OBJS) -lcull -lcom -luti -lrmon $(LIBS)

###############################################################################
# include dependencies for object files generated by sge_depend
###############################################################################
include $(COMMD_DIR)/commd_dependencies

###############################################################################
# rules to build object codes
###############################################################################
commd.o:	$(COMMD_DIR)/commd.c
	$(CC) $(CFLAGS) -c $(COMMD_DIR)/commd.c

commd_d.o:	$(COMMD_DIR)/commd.c
	$(CC) $(CFLAGS) -o commd_d.o -c $(COMMD_DIR)/commd.c

commdcntl.o:	$(COMMD_DIR)/commdcntl.c
	$(CC) $(CFLAGS) -c $(COMMD_DIR)/commdcntl.c

tstsnd.o:	$(COMMD_DIR)/tstsnd.c
	$(CC) $(CFLAGS) -c $(COMMD_DIR)/tstsnd.c

tstrcv.o:	$(COMMD_DIR)/tstrcv.c
	$(CC) $(CFLAGS) -c $(COMMD_DIR)/tstrcv.c

message.o:	$(COMMD_DIR)/message.c
	$(CC) $(CFLAGS) -c $(COMMD_DIR)/message.c

rwfd.o:	$(COMMD_DIR)/rwfd.c
	$(CC) $(CFLAGS) -c $(COMMD_DIR)/rwfd.c

commproc.o:	$(COMMD_DIR)/commproc.c
	$(CC) $(CFLAGS) -c $(COMMD_DIR)/commproc.c

process_received_message.o:	$(COMMD_DIR)/process_received_message.c
	$(CC) $(CFLAGS) -c $(COMMD_DIR)/process_received_message.c

prolog.o:	$(COMMD_DIR)/prolog.c
	$(CC) $(CFLAGS) -c $(COMMD_DIR)/prolog.c

deliver_message.o:	$(COMMD_DIR)/deliver_message.c
	$(CC) $(CFLAGS) -c $(COMMD_DIR)/deliver_message.c

ack.o:	$(COMMD_DIR)/ack.c
	$(CC) $(CFLAGS) -c $(COMMD_DIR)/ack.c

reset_messages_for_commproc.o:  $(COMMD_DIR)/reset_messages_for_commproc.c
	$(CC) $(CFLAGS) -c $(COMMD_DIR)/reset_messages_for_commproc.c

debug_malloc.o:  $(COMMD_DIR)/debug_malloc.c
	$(CC) $(CFLAGS) -c $(COMMD_DIR)/debug_malloc.c
	
setup_commd_path.o: $(COMMD_DIR)/setup_commd_path.c
	$(CC) $(CFLAGS) -c $(COMMD_DIR)/setup_commd_path.c
