###############################################################################
# Variable definitions for binaries called by make
###############################################################################
#___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__
SHELL = /bin/sh
RM    = rm -f 
STRIP = strip
DEPEND = ../3rdparty/sge_depend/$(COMPILE_ARCH)/sge_depend -l -S -Y $(DEPEND_FLAGS)

all: qmon
	
###############################################################################
# Variable definitions for libraries to link
###############################################################################
XBAELIB     = $(QMON_3RD)/libXbae$(LIBEXT)
XSPINLIB    = $(QMON_3RD)/libXspin$(LIBEXT)
XMTLIB      = $(QMON_3RD)/libXmt$(LIBEXT)
XICONLIB    = $(QMON_3RD)/libXicon$(LIBEXT)
XLTREELIB   = $(QMON_3RD)/libXltree$(GLIBEXT)
XTABLIB     = $(QMON_3RD)/libXtab$(LIBEXT)

include $(SDIR)/common/Makefile   
include $(SDIR)/clients/common/Makefile   
include $(SDIR)/daemons/common/Makefile   
include $(SDIR)/daemons/qmaster/Makefile   
include $(SDIR)/libs/comm/Makefile
include $(SDIR)/libs/cull/Makefile
include $(SDIR)/libs/gdi/Makefile
include $(SDIR)/libs/rmon/Makefile
include $(SDIR)/libs/sched/Makefile
include $(SDIR)/libs/uti/Makefile

###############################################################################
# Variable definitions for targets to build
###############################################################################
QMON_DIR = $(SDIR)/clients/qmon
QMON_3RD  = $(SDIR)/3rdparty/qmon/$(COMPILE_ARCH)

QMON_TARGETS = qmon

QMON_SRC =   qmon_main.c qmon_job.c qmon_submit.c qmon_menus.c qmon_util.c\
            qmon_queue.c qmon_signal.c qmon_timer.c qmon_comm.c \
            qmon_start.c qmon_browser.c qmon_jobcustom.c qmon_qaction.c \
            qmon_widgets.c qmon_appres.c qmon_init.c qmon_request.c \
            qmon_cplx.c qmon_host.c qmon_manop.c qmon_about.c \
            qmon_message.c AskForTime.c \
            AskForItems.c qmon_cluster.c qmon_pe.c qmon_ticket.c qmon_share.c \
            qmon_fticket.c qmon_project.c qmon_ckpt.c \
            qmon_sconf.c qmon_file.c qmon_qcustom.c qmon_preferences.c \
            qmon_matrix.c qmon_quarks.c qmon_load.c qmon_calendar.c

QMON_AD   =  $(QMON_DIR)/qmon_main.ad \
            $(QMON_DIR)/qmon_browser.ad \
            $(QMON_DIR)/qmon_host.ad \
            $(QMON_DIR)/qmon_job.ad \
            $(QMON_DIR)/qmon_jobcustom.ad \
            $(QMON_DIR)/qmon_manop.ad \
            $(QMON_DIR)/qmon_qaction.ad \
            $(QMON_DIR)/qmon_queue.ad \
            $(QMON_DIR)/qmon_request.ad \
            $(QMON_DIR)/qmon_submit.ad \
            $(QMON_DIR)/qmon_cluster.ad \
            $(QMON_DIR)/qmon_pe.ad \
            $(QMON_DIR)/qmon_ticket.ad \
            $(QMON_DIR)/qmon_share.ad \
            $(QMON_DIR)/qmon_fticket.ad \
            $(QMON_DIR)/qmon_project.ad \
            $(QMON_DIR)/qmon_ckpt.ad \
            $(QMON_DIR)/qmon_sconf.ad \
            $(QMON_DIR)/qmon_cplx.ad \
            $(QMON_DIR)/qmon_message.ad \
            $(QMON_DIR)/qmon_qcustom.ad \
            $(QMON_DIR)/qmon_calendar.ad \
            $(QMON_DIR)/qmon_loadmon.ad

QMON_ADD_SRC = sge_complex.c parse_job_cull.c unparse_job_cull.c \
            parse_qsub.c path_aliases.c job.c \
            read_defaults.c parse_mail.c sge_userset.c \
            read_object.c write_job_defaults.c sge_options.c usage.c

QMON_OBJS = $(QMON_SRC:.c=.o) qmon_diares.o
            
QMON_ADD_OBJS = $(QMON_ADD_SRC:.c=.o)

QMON_ADD_LIBS = -L../3rdparty/qmon/$(COMPILE_ARCH) -lXbae -lXmt -lXspin -lXicon -lXltree -lXtab \
                -L. -lsched -lgdi $(SECLIB) $(KRBLIB) -lcull -lrmon -lcom -luti
                
QMON_LIB_DEPENDS = $(XBAELIB) $(XMTLIB) $(XSPINLIB) $(XICONLIB) \
                   $(XLTREELIB) $(XTABLIB) $(SCHEDLIB) $(GDILIB) $(SECLIBS) \
                   $(KRBLIBS) $(CULLLIB) $(RMONLIB) $(COMMLIB) $(UTILIB) \
                   $(ZLIB) $(TPLIB)

###############################################################################
# global rules: all, clean, depend, messages
###############################################################################
clean:
	$(RM) $(QMON_TARGETS) $(QMON_OBJS) qmon_diares.c

depend:
	$(DEPEND) -f $(QMON_DIR)/qmon_dependencies $(XCFLAGS) $(QMON_DIR)/*.c 

messages:

###############################################################################
# rules to build binaries
###############################################################################
qmon:  $(QMON_OBJS) $(QMON_ADD_OBJS) $(QMON_LIB_DEPENDS)
	$(CC) $(LFLAGS) $(XLFLAGS) -o $@ $(QMON_OBJS) $(QMON_ADD_OBJS) $(QMON_ADD_LIBS) $(XLIBS) $(SLIBS) $(LIBS) 

############################################################################
# ListTree Demo prog
############################################################################
ALLDEMOOBJS =  tree_demo.o $(GDILIB) $(KRBLIBS) $(CULLLIB) $(UTILIB) \
               $(RMONLIB) $(COMMLIB) $(XLTREELIB) $(XMTLIB)

tree_demo:  tree_demo.o $(XLTREELIB)
	$(CC) -o $@ $(ALLDEMOOBJS) $(LFLAGS) $(LIBS) $(XLFLAGS) $(XLIBS)

tree_demo.o:  $(QMON_DIR)/tree_demo.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/tree_demo.c

############################################################################
# locale demo
############################################################################
xmlocale:  xmlocale.o 
	$(CC) -o $@ xmlocale.o $(LFLAGS) $(LIBS) $(XLFLAGS) $(XLIBS)

xmlocale.o:  $(QMON_DIR)/xmlocale.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/xmlocale.c

###############################################################################
# include dependencies for object files generated by sge_depend
###############################################################################
include $(QMON_DIR)/qmon_dependencies

###############################################################################
# rules to build object codes
###############################################################################
qmon_main.o:      $(QMON_DIR)/qmon_main.c
	$(CC) $(CFLAGS)  $(XCFLAGS) -c $(QMON_DIR)/qmon_main.c

qmon_menus.o:     $(QMON_DIR)/qmon_menus.c
	$(CC) $(CFLAGS)  $(XCFLAGS) -c $(QMON_DIR)/qmon_menus.c

qmon_init.o:   $(QMON_DIR)/qmon_init.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/qmon_init.c
                  
qmon_util.o:      $(QMON_DIR)/qmon_util.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/qmon_util.c
   
qmon_signal.o:    $(QMON_DIR)/qmon_signal.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/qmon_signal.c

qmon_job.o:       $(QMON_DIR)/qmon_job.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/qmon_job.c

qmon_submit.o:    $(QMON_DIR)/qmon_submit.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/qmon_submit.c

qmon_timer.o:     $(QMON_DIR)/qmon_timer.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/qmon_timer.c

qmon_comm.o:      $(QMON_DIR)/qmon_comm.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/qmon_comm.c

qmon_queue.o:     $(QMON_DIR)/qmon_queue.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/qmon_queue.c

qmon_start.o:   $(QMON_DIR)/qmon_start.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/qmon_start.c
   
qmon_browser.o:     $(QMON_DIR)/qmon_browser.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/qmon_browser.c

qmon_widgets.o:    $(QMON_DIR)/qmon_widgets.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/qmon_widgets.c
                  
qmon_quarks.o:    $(QMON_DIR)/qmon_quarks.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/qmon_quarks.c
                  
qmon_matrix.o:    $(QMON_DIR)/qmon_matrix.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/qmon_matrix.c
                  
qmon_appres.o:    $(QMON_DIR)/qmon_appres.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/qmon_appres.c
                  
qmon_qaction.o:   $(QMON_DIR)/qmon_qaction.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/qmon_qaction.c
   
qmon_request.o:   $(QMON_DIR)/qmon_request.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/qmon_request.c
   
qmon_host.o:   $(QMON_DIR)/qmon_host.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/qmon_host.c

qmon_manop.o:   $(QMON_DIR)/qmon_manop.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/qmon_manop.c

qmon_about.o:   $(QMON_DIR)/qmon_about.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/qmon_about.c

qmon_message.o:   $(QMON_DIR)/qmon_message.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/qmon_message.c
   
AskForTime.o:    $(QMON_DIR)/AskForTime.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/AskForTime.c
   
AskForItems.o:    $(QMON_DIR)/AskForItems.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/AskForItems.c
   
qmon_cluster.o:    $(QMON_DIR)/qmon_cluster.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/qmon_cluster.c

qmon_pe.o:    $(QMON_DIR)/qmon_pe.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/qmon_pe.c

qmon_jobcustom.o:    $(QMON_DIR)/qmon_jobcustom.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/qmon_jobcustom.c

qmon_ticket.o:    $(QMON_DIR)/qmon_ticket.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/qmon_ticket.c

qmon_fticket.o:    $(QMON_DIR)/qmon_fticket.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/qmon_fticket.c

qmon_share.o:    $(QMON_DIR)/qmon_share.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/qmon_share.c

qmon_project.o:    $(QMON_DIR)/qmon_project.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/qmon_project.c

qmon_ckpt.o:    $(QMON_DIR)/qmon_ckpt.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/qmon_ckpt.c

qmon_sconf.o:    $(QMON_DIR)/qmon_sconf.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/qmon_sconf.c

qmon_cplx.o:    $(QMON_DIR)/qmon_cplx.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/qmon_cplx.c

qmon_file.o:    $(QMON_DIR)/qmon_file.c
	$(CC) $(CFLAGS) $(XCFLAGS) $(MEMCFLAG) -c $(QMON_DIR)/qmon_file.c

qmon_qcustom.o:    $(QMON_DIR)/qmon_qcustom.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/qmon_qcustom.c

qmon_load.o:    $(QMON_DIR)/qmon_load.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/qmon_load.c

qmon_calendar.o:    $(QMON_DIR)/qmon_calendar.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/qmon_calendar.c

qmon_preferences.o:    $(QMON_DIR)/qmon_preferences.c
	$(CC) $(CFLAGS) $(XCFLAGS) -c $(QMON_DIR)/qmon_preferences.c

# create the fallbacks, the 'dialogs' and the app defaults file from Mr Q
qmon_diares.o: $(QMON_AD) $(QMON_DIR)/Q
	$(QMON_DIR)/util/develToCVS $(QMON_DIR)/Q
	$(CC) $(CFLAGS) $(XCFLAGS) -c qmon_diares.c


