# -*- mode: makefile -*-
#
# Makefile containing platform dependencies for ROOT based projects.
#
# Copyright (c) 2000 Rene Brun and Fons Rademakers
#
# Author: Fons Rademakers, 29/2/2000
#
# Modified: August 27, 2004
# Zaldy Nawang
# Hiroshima University 
#---------------------------------------------------------------------------

SRCPROG_NAME = HitInfo
MAINPRG_NAME = $(SRCPROG_NAME)Main
EXECNAME = $(SRCPROG_NAME)

CXX           =
ObjSuf        = o
SrcSuf        = cc
IncSuf        = hh
ExeSuf        =
DllSuf        = so
OutPutOpt     = -o 

ROOTCFLAGS   := $(shell root-config --cflags)
ROOTLIBS     := $(shell root-config --libs)
ROOTGLIBS    := $(shell root-config --glibs)

# Linux with egcs, gcc 2.9x, gcc 3.x (>= RedHat 5.2)
CXX           = g++
CXXFLAGS      = -O -Wall -fPIC -Wno-deprecated
LD            = g++
LDFLAGS       = -O
SOFLAGS       = -shared

CXXFLAGS     += $(ROOTCFLAGS)
LIBS          = $(ROOTLIBS) $(SYSLIBS)
GLIBS         = $(ROOTGLIBS) $(SYSLIBS)

MAINPRG_O = $(MAINPRG_NAME).$(ObjSuf)
MAINPRG_S = $(MAINPRG_NAME).$(SrcSuf)

SRCPRG_O = $(SRCPROG_NAME).$(ObjSuf) $(SRCPROG_NAME)Dict.$(ObjSuf)
SRCPRG_S = $(SRCPROG_NAME).$(SrcSuf) $(SRCPROG_NAME)Dict.$(SrcSuf)
SRCPRG_LIB = lib$(SRCPROG_NAME).so


OBJS = $(SRCPRG_O) $(MAINPRG_O) 

PROGRAMS = $(EXECNAME)

.SUFFIXES: .$(SrcSuf) .$(ObjSuf) .so

all:  $(PROGRAMS)

$(SRCPRG_LIB): $(SRCPRG_O) 
	$(LD) $(SOFLAGS) $(LDFLAGS) $^ $(OutPutOpt) $@ $(EXPLLINKLIBS)

$(EXECNAME):	$(SRCPRG_LIB) $(VTXSRC_LIB) $(MAINPRG_O)
		$(LD) $(LDFLAGS) $(MAINPRG_O) $(SRCPRG_LIB) $(LIBS) \
                $(OutPutOpt) $(EXECNAME)
		@echo "$@ done"

clean:
	@rm -f $(OBJS) core $(PROGRAMS) $(SRCPRG_LIB) *~ *Dict.*


distclean:      clean
		@rm -f $(PROGRAMS) $(SRCPRG_LIB) *Dict.* 

.SUFFIXES: .$(SrcSuf)

$(SRCPROG_NAME).$(ObjSuf): $(SRCPROG_NAME).$(IncSuf)
$(SRCPROG_NAME)Main.$(ObjSuf): $(SRCPROG_NAME).$(IncSuf)

$(SRCPROG_NAME)Dict.$(SrcSuf): $(SRCPROG_NAME).$(IncSuf) $(SRCPROG_NAME)LinkDef.$(IncSuf)
	@echo "Generating dictionary $@..."
	@rootcint -f $@ -c $^

.cxx.o:
	$(CXX) $(CXXFLAGS) -c $<
 
