#              $Id: GNUmakefile,v 1.17 2006/04/05 02:27:55 abh Exp $

#------------------------------------------------------------------------------#
#                       C o m m o n   V a r i a b l e s                        #
#------------------------------------------------------------------------------#
  
include ../GNUmake.env

BINLIBS = -L$(LIBDIR) -lXrdOuc -lXrdNet -lXrdOuc -lXrd

LIBDEPS = $(LIBDIR)/libXrdOuc.a $(LIBDIR)/libXrdNet.a $(LIBDIR)/libXrd.a

#------------------------------------------------------------------------------#
#                             C o m p o n e n t s                              #
#------------------------------------------------------------------------------#
  
SOURCES = \
        XrdOlbAdmin.cc     \
        XrdOlbCache.cc     \
        XrdOlbConfig.cc    \
        XrdOlbManager.cc   \
        XrdOlbManList.cc   \
        XrdOlbMeter.cc     \
        XrdOlbPList.cc     \
        XrdOlbPrepare.cc   \
        XrdOlbProtocol.cc  \
        XrdOlbRRQ.cc       \
        XrdOlbRTable.cc    \
        XrdOlbServer.cc    \
        XrdOlbState.cc
  
OBJECTS = \
        $(OBJDIR)/XrdOlbAdmin.o     \
        $(OBJDIR)/XrdOlbCache.o     \
        $(OBJDIR)/XrdOlbConfig.o    \
        $(OBJDIR)/XrdOlbManager.o   \
        $(OBJDIR)/XrdOlbManList.o   \
        $(OBJDIR)/XrdOlbMeter.o     \
        $(OBJDIR)/XrdOlbPList.o     \
        $(OBJDIR)/XrdOlbPrepare.o   \
        $(OBJDIR)/XrdOlbProtocol.o  \
        $(OBJDIR)/XrdOlbRRQ.o       \
        $(OBJDIR)/XrdOlbRTable.o    \
        $(OBJDIR)/XrdOlbServer.o    \
        $(OBJDIR)/XrdOlbState.o

BINARY  = $(BINDIR)/olbd

TARGETS = $(BINARY)

#------------------------------------------------------------------------------#
#                           S e a r c h   P a t h s                            #
#------------------------------------------------------------------------------#

vpath XrdNet% ../XrdNet
vpath XrdOuc% ../XrdOuc
vpath Xrd%    ../Xrd

#------------------------------------------------------------------------------#
#                          I n i t i a l   R u l e s                           #
#------------------------------------------------------------------------------#
 
include ../GNUmake.options

anything: $(TARGETS)
	@echo Make XrdOlb done.

#------------------------------------------------------------------------------#
#                           D e p e n d e n c i e s                            #
#------------------------------------------------------------------------------#

$(BINARY): $(OBJECTS) $(LIBDEPS)
	@echo Creating executable $(BINARY) 
	$(ECHO)$(LD) $(LDOP) $(OBJECTS) $(BINLIBS) $(LIBS) -o $(BINARY)

$(OBJDIR)/XrdOlbAdmin.o:  XrdOlbAdmin.hh    XrdOlbAdmin.cc \
                          XrdNetSocket.hh \
                          XrdOlbConfig.hh   XrdOlbManager.hh XrdOlbPrepare.hh\
                          XrdOlbTrace.hh \
                          XrdOuca2x.hh      XrdOucError.hh   XrdOucName2Name.hh\
                          XrdOucPlatform.hh XrdOucPthread.hh XrdOucStream.hh
	@echo Compiling XrdOlbAdmin.cc 
	$(ECHO)$(CC) -c $(CFLAGS) $(INCLUDE) -o $(OBJDIR)/XrdOlbAdmin.o XrdOlbAdmin.cc

$(OBJDIR)/XrdOlbCache.o: XrdOlbCache.hh  XrdOlbCache.cc \
                         XrdJob.hh       XrdScheduler.hh \
                         XrdOlbPList.hh  XrdOlbRRQ.hh      XrdOlbTypes.hh \
                         XrdOucHash.hh   XrdOucHash.icc    XrdOucPthread.hh
	@echo Compiling XrdOlbCache.cc 
	$(ECHO)$(CC) -c $(CFLAGS) $(INCLUDE) -o $(OBJDIR)/XrdOlbCache.o XrdOlbCache.cc

$(OBJDIR)/XrdOlbConfig.o: XrdOlbConfig.hh   XrdOlbConfig.cc \
                          XrdJob.hh         XrdScheduler.hh \
                          XrdNetDNS.hh      XrdNetLink.hh    XrdNetSecurity.hh \
                          XrdNetSocket.hh   XrdNetWork.hh \
                          XrdOlbCache.hh    XrdOlbManager.hh XrdOlbMeter.hh \
                          XrdOlbPList.hh    XrdOlbPrepare.hh XrdOlbRRQ.hh \
                          XrdOlbState.hh    XrdOlbTrace.hh   XrdOlbTypes.hh \
                          XrdOuca2x.hh      XrdOucError.hh   XrdOucName2Name.hh\
                          XrdOucPlatform.hh XrdOucPlugin.hh  XrdOucProg.hh \
                          XrdOucPthread.hh  XrdOucStream.hh  XrdOucTimer.hh \
                          XrdOucTList.hh    XrdOucUtils.hh \
                          ../XrdVersion.hh
	@echo Compiling XrdOlbConfig.cc 
	$(ECHO)$(CC) -c $(CFLAGS) $(INCLUDE) -o $(OBJDIR)/XrdOlbConfig.o XrdOlbConfig.cc

$(OBJDIR)/XrdOlbManager.o: XrdOlbManager.hh XrdOlbManager.cc \
                           XrdJob.hh        XrdScheduler.hh \
                           XrdNetWork.hh    XrdOlbAdmin.hh \
                           XrdOlbCache.hh   XrdOlbConfig.hh   XrdOlbManager.hh \
                           XrdOlbManList.hh XrdOlbRTable.hh   XrdOlbServer.hh \
                           XrdOlbState.hh   XrdOlbTrace.hh    XrdOlbTypes.hh \
                           XrdOuca2x.hh     XrdOucPthread.hh
	@echo Compiling XrdOlbManager.cc 
	$(ECHO)$(CC) -c $(CFLAGS) $(INCLUDE) -o $(OBJDIR)/XrdOlbManager.o XrdOlbManager.cc

$(OBJDIR)/XrdOlbManList.o: XrdOlbManList.cc   XrdOlbManList.hh \
                           XrdNetDNS.hh       XrdOucPlatform.hh  XrdOucPthread.hh
	@echo Compiling XrdOlbManList.cc
	$(ECHO)$(CC) -c $(CFLAGS) $(INCLUDE) -o $(OBJDIR)/XrdOlbManList.o XrdOlbManList.cc

$(OBJDIR)/XrdOlbMeter.o: XrdOlbMeter.hh  XrdOlbMeter.cc  \
                         XrdOlbConfig.hh XrdOlbManager.hh  XrdOlbTrace.hh \
                         XrdOucError.hh  XrdOucPlatform.hh XrdOucPthread.hh \
                         XrdOucStream.hh XrdOucTList.hh
	@echo Compiling XrdOlbMeter.cc 
	$(ECHO)$(CC) -c $(CFLAGS) $(INCLUDE) -o $(OBJDIR)/XrdOlbMeter.o XrdOlbMeter.cc

$(OBJDIR)/XrdOlbPList.o: XrdOlbPList.hh XrdOlbPList.cc \
                         XrdOlbTypes.hh XrdOucPthread.hh
	@echo Compiling XrdOlbPList.cc 
	$(ECHO)$(CC) -c $(CFLAGS) $(INCLUDE) -o $(OBJDIR)/XrdOlbPList.o XrdOlbPList.cc

$(OBJDIR)/XrdOlbPrepare.o: XrdOlbPrepare.hh  XrdOlbPrepare.cc  \
                           XrdJob.hh         XrdScheduler.hh \
                           XrdOlbServer.hh   XrdOlbTrace.hh  \
                           XrdOucError.hh    XrdOucHash.hh     XrdOucHash.icc \
                           XrdOucPthread.hh  XrdOucStream.hh   XrdOucTList.hh
	@echo Compiling XrdOlbPrepare.cc 
	$(ECHO)$(CC) -c $(CFLAGS) $(INCLUDE) -o $(OBJDIR)/XrdOlbPrepare.o XrdOlbPrepare.cc

$(OBJDIR)/XrdOlbProtocol.o: XrdOlbProtocol.hh  XrdOlbProtocol.cc  \
                            XrdInet.hh         XrdLink.hh       XrdProtocol.hh   \
                            XrdNetLink.hh      XrdNetPeer.hh \
                            XrdOlbConfig.hh    XrdOlbManager.hh XrdOlbTrace.hh \
                            XrdOucError.hh     XrdOucLogger.hh  XrdOucPthread.hh
	@echo Compiling XrdOlbProtocol.cc 
	$(ECHO)$(CC) -c $(CFLAGS) $(INCLUDE) -o $(OBJDIR)/XrdOlbProtocol.o XrdOlbProtocol.cc

$(OBJDIR)/XrdOlbRRQ.o: XrdOlbRRQ.hh     XrdOlbRRQ.cc   \
                       XrdOucDLlist.hh  XrdOucError.hh  XrdOucPthread.hh \
                       XrdOucTimer.hh   \
                       XrdOlbManager.hh XrdOlbRTable.hh XrdOlbServer.hh \
                       XrdOlbTrace.hh   XrdOlbTypes.hh
	@echo Compiling XrdOlbRRQ.cc 
	$(ECHO)$(CC) -c $(CFLAGS) $(INCLUDE) -o $(OBJDIR)/XrdOlbRRQ.o XrdOlbRRQ.cc

$(OBJDIR)/XrdOlbRTable.o: XrdOlbRTable.hh     XrdOlbRTable.cc   \
                          XrdOucPthread.hh    XrdOlbServer.hh
	@echo Compiling XrdOlbRTable.cc 
	$(ECHO)$(CC) -c $(CFLAGS) $(INCLUDE) -o $(OBJDIR)/XrdOlbRTable.o XrdOlbRTable.cc

$(OBJDIR)/XrdOlbServer.o: XrdOlbServer.hh   XrdOlbServer.cc \
                          XrdJob.hh         XrdScheduler.hh \
                          XrdNetLink.hh  \
                          XrdOlbCache.hh    XrdOlbConfig.hh    XrdOlbManager.hh\
                          XrdOlbManList.hh  XrdOlbMeter.hh     XrdOlbPrepare.hh\
                          XrdOlbRRQ.hh      XrdOlbServer.hh    XrdOlbState.hh \
                          XrdOlbTrace.hh    XrdOlbTypes.hh \
                          XrdOuca2x.hh      XrdOucName2Name.hh XrdOucPlatform.hh\
                          XrdOucProg.hh     XrdOucPthread.hh   XrdOucStream.hh
	@echo Compiling XrdOlbServer.cc 
	$(ECHO)$(CC) -c $(CFLAGS) $(INCLUDE) -o $(OBJDIR)/XrdOlbServer.o XrdOlbServer.cc

$(OBJDIR)/XrdOlbState.o: XrdOlbState.hh   XrdOlbState.cc \
                         XrdOlbManager.hh XrdOlbTypes.hh XrdOucPthread.hh
	@echo Compiling XrdOlbState.cc 
	$(ECHO)$(CC) -c $(CFLAGS) $(INCLUDE) -o $(OBJDIR)/XrdOlbState.o XrdOlbState.cc
