ARCH         := $(shell root-config --arch)
ROOTCFLAGS   := $(shell root-config --cflags)
ROOTLIBS     := $(shell root-config --libs)
ROOTGLIBS    := $(shell root-config --glibs)
PLATFORM      = win32
ObjSuf        = obj
SrcSuf        = cxx
ExeSuf        = .exe
DllSuf        = dll
OutPutOpt     = -out:
CXX           = cl
CXXOPT        = -O2
#CXXOPT        = -Z7
CXXFLAGS      = $(CXXOPT) -G5 -GR -GX -MD -DWIN32 -D_WINDOWS -nologo \
                -DVISUAL_CPLUSPLUS -D_X86_=1 -D_DLL
LD            = link
LDOPT         = -opt:ref
#LDOPT         = -debug
LDFLAGS       = $(LDOPT) -pdb:none -nologo
SOFLAGS       = -DLL

LIBNAME       = libHello
PROGRAMLIB    = $(LIBNAME).lib
ROOTLIBS     := $(shell root-config --nonew --libs)
ROOTGLIBS    := $(shell root-config --nonew --glibs)
EXPLLINKLIBS  = $(ROOTLIBS) $(ROOTGLIBS)
CXXFLAGS     += $(ROOTCFLAGS)
LIBS          = $(ROOTLIBS) $(SYSLIBS)
GLIBS         = $(ROOTGLIBS) $(SYSLIBS)
.SUFFIXES: .$(SrcSuf) .$(ObjSuf) .$(DllSuf)


HDRS          = THello.h
SRCS          = main.$(SrcSuf) THello.$(SrcSuf) THelloDict.$(SrcSuf)
OBJS          = THello.$(ObjSuf) THelloDict.$(ObjSuf)

PROGRAMSO  = $(LIBNAME).$(DllSuf)
PROGRAM    = hello$(ExeSuf)
all:        $(PROGRAMSO) $(PROGRAM)

$(PROGRAMSO): $(OBJS)
		@echo "Creating library $(PROGRAMSO) ..."
		bindexplib $* $^ > $*.def
		lib -nologo -MACHINE:IX86 $^ -def:$*.def $(OutPutOpt)$(PROGRAMLIB)
		@echo "Linking $(PROGRAMSO) ..."
		$(LD) $(SOFLAGS) $(LDFLAGS) $(OBJS) $*.exp $(LIBS) $(OutPutOpt)$(PROGRAMSO)
		@echo "$(PROGRAMSO) done"

$(PROGRAM): main.$(ObjSuf) $(OBJS)
		@echo "Linking $(PROGRAM) ..."
		$(LD) $(LDFLAGS) main.$(ObjSuf) $(OBJS) $(LIBS) $(OutPutOpt)$(PROGRAM)
		@echo "$(PROGRAM) done"

clean:
		@rm -f $(OBJS) main.$(ObjSuf) *\~ THelloDict.h THelloDict.$(SrcSuf) .def
		@rm -f $(PROGRAM) $(PROGRAMSO) $(PROGRAMLIB) $(LIBNAME).def $(LIBNAME).exp

###
.SUFFIXES: .$(SrcSuf)

THello.$(ObjSuf):     THello.h

THelloDict.$(SrcSuf): $(HDRS)
	@echo "Deleting Dictionary..."
	@rm -f THelloDict.h THelloDict.$(SrcSuf) THelloDict.$(ObjSuf)
	@echo "Generating Dictionary ..."
	@$(ROOTSYS)/bin/rootcint -f THelloDict.$(SrcSuf) -c $(HDRS) LinkDef.h

.$(SrcSuf).$(ObjSuf):
	$(CXX) $(CXXFLAGS) -c $<
