###############################################################################
# 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__
MIRLIB_DIR = $(SDIR)/libs/mir

MIRLIB = libmir$(LIBEXT)

MIRLIB_SRC =                           \
               sge_mirror.c            \
               sge_job_mirror.c        \
               sge_ja_task_mirror.c    \
               sge_pe_task_mirror.c    \
               sge_host_mirror.c       \
               sge_queue_mirror.c      \
               sge_sharetree_mirror.c  \
               sge_sched_conf_mirror.c

MIRLIB_TEST_PROGS = test_sge_mirror

MIRLIB_TEST_SRC = test_sge_mirror.c

MIRLIB_TEST_OBJS = $(MIRLIB_TEST_SRC:.c=.o)

MIRLIB_OBJS = $(MIRLIB_SRC:.c=.o)

###############################################################################
# global rules: all, clean, depend, messages
###############################################################################
mirlib: $(MIRLIB) $(MIRLIB_TEST_PROGS)

mirlib_clean:
		$(RM) $(MIRLIB_OBJS) libmir.a libmir$(SHAREDEXT) $(MIRLIB_TEST_PROGS) $(MIRLIB_TEST_OBJS) 

mirlib_depend:
		$(DEPEND) -f$(MIRLIB_DIR)/mir_dependencies $(MIRLIB_DIR)/*.c

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

###############################################################################
# rules to build library
###############################################################################
libmir.a:	$(MIRLIB_OBJS) 
	$(AR) $(ARFLAGS) libmir.a $(MIRLIB_OBJS)
	$(RANLIB) libmir.a

libmir$(SHAREDEXT): $(MIRLIB_OBJS) $(EVCLIB) $(GDILIB) $(SGEOBJLIB) $(SGEOBJDLIB) $(COMMLIB) $(COMMLISTSLIB) $(CULLLIB) $(UTILIB) $(RMONLIB)
	$(SHAREDLD) $(SHARED_LFLAGS) -o libmir$(SHAREDEXT) $(MIRLIB_OBJS) -levc -lgdi -lsgeobj -lsgeobjd -lcomm -lcommlists -lcull -luti -lrmon $(LIBS) -lc

###############################################################################
# include dependencies for object files generated by sge_depend
###############################################################################
include $(MIRLIB_DIR)/mir_dependencies

###############################################################################
# rules to build object codes
###############################################################################
sge_mirror.o:	$(MIRLIB_DIR)/sge_mirror.c
		$(CC) $(CFLAGS) $(SHARED_CFLAGS) -c $(MIRLIB_DIR)/sge_mirror.c

sge_job_mirror.o:	$(MIRLIB_DIR)/sge_job_mirror.c
		$(CC) $(CFLAGS) $(SHARED_CFLAGS) -c $(MIRLIB_DIR)/sge_job_mirror.c

sge_ja_task_mirror.o:	$(MIRLIB_DIR)/sge_ja_task_mirror.c
		$(CC) $(CFLAGS) $(SHARED_CFLAGS) -c $(MIRLIB_DIR)/sge_ja_task_mirror.c

sge_pe_task_mirror.o:	$(MIRLIB_DIR)/sge_pe_task_mirror.c
		$(CC) $(CFLAGS) $(SHARED_CFLAGS) -c $(MIRLIB_DIR)/sge_pe_task_mirror.c

sge_host_mirror.o:	$(MIRLIB_DIR)/sge_host_mirror.c
		$(CC) $(CFLAGS) $(SHARED_CFLAGS) -c $(MIRLIB_DIR)/sge_host_mirror.c

sge_queue_mirror.o:	$(MIRLIB_DIR)/sge_queue_mirror.c
		$(CC) $(CFLAGS) $(SHARED_CFLAGS) -c $(MIRLIB_DIR)/sge_queue_mirror.c

sge_sharetree_mirror.o:	$(MIRLIB_DIR)/sge_sharetree_mirror.c
		$(CC) $(CFLAGS) $(SHARED_CFLAGS) -c $(MIRLIB_DIR)/sge_sharetree_mirror.c

sge_sched_conf_mirror.o:	$(MIRLIB_DIR)/sge_sched_conf_mirror.c
		$(CC) $(CFLAGS) $(SHARED_CFLAGS) -c $(MIRLIB_DIR)/sge_sched_conf_mirror.c

#---------------------------------------------------------------------
# test programs
test_sge_mirror: test_sge_mirror.o sig_handlers.o $(GDILIB) $(CULLLIB) $(UTILIB) $(COMMLIB) $(COMMLISTSLIB) $(RMONLIB) $(WINGRIDLIB_DEP) $(SGEOBJLIB) $(SGEOBJDLIB) $(MIRLIB)
	$(LD_WRAPPER) $(CC) $(CFLAGS) -o test_sge_mirror $(LFLAGS) test_sge_mirror.o sig_handlers.o -lmir -levc -lgdi -lsgeobj -lsgeobjd -lcomm -lcommlists -lcull -luti $(WINGRIDLIB) -lrmon -llck $(SECLIB) $(SLIBS) $(LIBS) $(DLLIB) -lc

test_sge_mirror.o: $(MIRLIB_DIR)/test_sge_mirror.c
	$(CC) $(CFLAGS) -c $(MIRLIB_DIR)/test_sge_mirror.c

