###############################################################################
# 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__
SHEPHERD_DIR = $(SDIR)/daemons/shepherd

SHEPHERD_TARGETS = sge_shepherd

SHEPHERD_SRC = shepherd.c \
           builtin_starter.c \
           setrlimits.c \
           signal_queue.c \
           sge_shepconf.c \
           setjoblimit.c \
           sge_pset.c \
           sge_fileio.c \
           sge_shepherd_ijs.c \
           shepherd_binding.c 

SHEPHERD_ADD_SRC = \
           config_file.c \
           err_trace.c \
           execution_states.c \
           qlogin_starter.c \
           setosjobid.c \
           sge_parse_num_par.c \
           pdc.c \
           procfs.c \
           sge_mt_init.c \
           sge_processes_irix.c \
           sge_spool.c \
           binding_support.c

SHEPHERD_OBJS = $(SHEPHERD_SRC:.c=.o) sge_ijs_comm.o sge_ijs_threads.o

SHEPHERD_ADD_OBJS = $(SHEPHERD_ADD_SRC:.c=.o) 

SHEPHERD_ADD_LIBS = -lgdi -lsgeobj -lsgeobjd $(KRBLIB) -lcull -lcomm -lcommlists -luti -luti2 $(HWLOCLIB) $(WINGRIDLIB_STATIC) $(DLLIB)

SHEPHERD_LIB_DEPENDS = $(GDILIB) $(SGEOBJDLIB) $(SGEOBJLIB) $(KRBLIBS) $(CULLLIB) $(COMMLIB) $(COMMLISTSLIB) $(COMMLIB) $(UTILIB) $(UTI2LIB) $(WINGRIDLIB_DEP)

###############################################################################
# global rules: all, clean, depend, messages
###############################################################################
shepherd: $(SHEPHERD_TARGETS)
	
shepherd_clean:
		$(RM) $(SHEPHERD_TARGETS) $(SHEPHERD_OBJS)

shepherd_depend:
		$(DEPEND) -f$(SHEPHERD_DIR)/shepherd_dependencies $(SHEPHERD_DIR)/*.c

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

###############################################################################
# rules to build binaries
###############################################################################
sge_shepherd:	$(SHEPHERD_OBJS) $(SHEPHERD_ADD_OBJS) $(SHEPHERD_LIB_DEPENDS)
		$(LD_WRAPPER) $(CC) -I$(SHEPHERD_DIR) $(CFLAGS) $(LFLAGS) -o $@ $(SHEPHERD_OBJS) $(SHEPHERD_ADD_OBJS) $(SHEPHERD_ADD_LIBS) $(SECLIB) $(SLIBS) $(LIBS)

###############################################################################
# include dependencies for object files generated by sge_depend
###############################################################################
include $(SHEPHERD_DIR)/shepherd_dependencies

###############################################################################
# rules to build object codes
###############################################################################
shepherd.o:	$(SHEPHERD_DIR)/shepherd.c
		$(CC) -I$(SHEPHERD_DIR) $(CFLAGS) $(MEMCFLAG) -c $(SHEPHERD_DIR)/shepherd.c

sge_starter.o:	$(SHEPHERD_DIR)/sge_starter.c
		$(CC) -I$(SHEPHERD_DIR) $(CFLAGS) -c $(SHEPHERD_DIR)/sge_starter.c

builtin_starter.o:	$(SHEPHERD_DIR)/builtin_starter.c
		$(CC) -I$(SHEPHERD_DIR) $(CFLAGS) -c $(SHEPHERD_DIR)/builtin_starter.c

signal_queue.o:	$(SHEPHERD_DIR)/signal_queue.c
		$(CC) -I$(SHEPHERD_DIR) $(CFLAGS) -c $(SHEPHERD_DIR)/signal_queue.c

sge_shepconf.o:	$(SHEPHERD_DIR)/sge_shepconf.c
		$(CC) -I$(SHEPHERD_DIR) $(CFLAGS) -c $(SHEPHERD_DIR)/sge_shepconf.c

setrlimits.o:	$(SHEPHERD_DIR)/setrlimits.c
		$(CC) -I$(SHEPHERD_DIR) $(CFLAGS) -c $(SHEPHERD_DIR)/setrlimits.c

setjoblimit.o: $(SHEPHERD_DIR)/setjoblimit.c
		$(CC) -I$(SHEPHERD_DIR) $(CFLAGS) -c $(SHEPHERD_DIR)/setjoblimit.c

sge_pset.o: $(SHEPHERD_DIR)/sge_pset.c
		$(CC) -I$(SHEPHERD_DIR) $(CFLAGS) -c $(SHEPHERD_DIR)/sge_pset.c

sge_fileio.o: $(SHEPHERD_DIR)/sge_fileio.c
		$(CC) -I$(SHEPHERD_DIR) $(CFLAGS) -c $(SHEPHERD_DIR)/sge_fileio.c

sge_shepherd_ijs.o: $(SHEPHERD_DIR)/sge_shepherd_ijs.c
		$(CC) -I$(SHEPHERD_DIR) $(CFLAGS) -c $(SHEPHERD_DIR)/sge_shepherd_ijs.c

shepherd_binding.o: $(SHEPHERD_DIR)/shepherd_binding.c
		$(CC) -I$(SHEPHERD_DIR) $(CFLAGS) -c $(SHEPHERD_DIR)/shepherd_binding.c

