include $(GO4SYS)/Makefile.config

THRDMNGREXAMP_NAME        = Go4ThreadManagerExample

## normally should be like this for every module, but can be specific

ifdef GO4PACKAGE
THRDMNGREXAMP_DIR         = $(THRDMNGREXAMP_NAME)
else
THRDMNGREXAMP_DIR         = .
endif

THRDMNGREXAMP_LINKDEF     = $(THRDMNGREXAMP_DIR)/$(THRDMNGREXAMP_NAME)LinkDef.$(HedSuf)
THRDMNGREXAMP_LIBNAME     = $(LIB_PREFIX)$(THRDMNGREXAMP_NAME)
THRDMNGREXAMP_EXENAME     = Main$(THRDMNGREXAMP_NAME)

THRDMNGREXAMP_NOTLIBF     = 

## must be similar for every module

THRDMNGREXAMP_EXEO        = $(THRDMNGREXAMP_DIR)/$(THRDMNGREXAMP_EXENAME).$(ObjSuf)
THRDMNGREXAMP_EXES        = $(THRDMNGREXAMP_DIR)/$(THRDMNGREXAMP_EXENAME).$(SrcSuf)
THRDMNGREXAMP_EXE         = $(THRDMNGREXAMP_DIR)/$(THRDMNGREXAMP_EXENAME)$(ExeSuf)   

THRDMNGREXAMP_DICT        = $(THRDMNGREXAMP_DIR)/$(DICT_PREFIX)$(THRDMNGREXAMP_NAME)
THRDMNGREXAMP_DH          = $(THRDMNGREXAMP_DICT).$(HedSuf)
THRDMNGREXAMP_DS          = $(THRDMNGREXAMP_DICT).$(SrcSuf)
THRDMNGREXAMP_DO          = $(THRDMNGREXAMP_DICT).$(ObjSuf)

THRDMNGREXAMP_H           = $(filter-out $(THRDMNGREXAMP_NOTLIBF) $(THRDMNGREXAMP_DH) $(THRDMNGREXAMP_LINKDEF), $(wildcard $(THRDMNGREXAMP_DIR)/*.$(HedSuf)))
THRDMNGREXAMP_S           = $(filter-out $(THRDMNGREXAMP_EXES) $(THRDMNGREXAMP_NOTLIBF) $(THRDMNGREXAMP_DS), $(wildcard $(THRDMNGREXAMP_DIR)/*.$(SrcSuf)))
THRDMNGREXAMP_O           = $(THRDMNGREXAMP_S:.$(SrcSuf)=.$(ObjSuf))

THRDMNGREXAMP_DEP         =  $(THRDMNGREXAMP_O:.$(ObjSuf)=.$(DepSuf))
THRDMNGREXAMP_DDEP        =  $(THRDMNGREXAMP_DO:.$(ObjSuf)=.$(DepSuf))
THRDMNGREXAMP_EDEP        =  $(THRDMNGREXAMP_EXEO:.$(ObjSuf)=.$(DepSuf))

THRDMNGREXAMP_LIB         =  $(THRDMNGREXAMP_DIR)/$(THRDMNGREXAMP_LIBNAME).$(DllSuf)

# used in the main Makefile

EXAMPDEPENDENCS    += $(THRDMNGREXAMP_DEP) $(THRDMNGREXAMP_DDEP) $(THRDMNGREXAMP_EDEP)

ifdef DOPACKAGE
THRDMNGREXAMP_DISTRFILES = $(THRDMNGREXAMP_S) $(THRDMNGREXAMP_H) $(THRDMNGREXAMP_LINKDEF) $(THRDMNGREXAMP_EXES)
DISTRFILES         += $(THRDMNGREXAMP_DISTRFILES)
endif

##### local rules #####

all::     $(THRDMNGREXAMP_LIB) $(THRDMNGREXAMP_EXE)

$(THRDMNGREXAMP_EXE):     $(THRDMNGREXAMP_EXEO) $(THRDMNGREXAMP_LIB) 
	$(LD) $(LDFLAGS) $(THRDMNGREXAMP_EXEO) $(LIBS_THRDMANSET) $(THRDMNGREXAMP_LIB) $(OutPutOpt) $(THRDMNGREXAMP_EXE)
	@echo "$@  done"      

THRDMNGREXAMP_DEPLIB = $(THRDMNGR_LIB) $(GO4BASE_LIB) $(BASIC_LIB_DEP)

$(THRDMNGREXAMP_LIB):   MAKELIB_SET = $(LIBS_THRDMANSET)

$(THRDMNGREXAMP_LIB):   $(THRDMNGREXAMP_O) $(THRDMNGREXAMP_DO) $(THRDMNGREXAMP_DEPLIB)
	@$(MakeLibrary) $(THRDMNGREXAMP_LIBNAME) "$(THRDMNGREXAMP_O) $(THRDMNGREXAMP_DO)" $(THRDMNGREXAMP_DIR) $(THRDMNGREXAMP_LINKDEF) "$(THRDMNGREXAMP_DEPLIB)" $(THRDMNGREXAMP_DS) "$(THRDMNGREXAMP_H)"

$(THRDMNGREXAMP_DS): $(THRDMNGREXAMP_H) $(THRDMNGREXAMP_LINKDEF)
	@$(ROOTCINTGO4) $(THRDMNGREXAMP_LIB) $(THRDMNGREXAMP_H) $(THRDMNGREXAMP_LINKDEF)

clean-bin::
	@$(RM) $(THRDMNGREXAMP_O) $(THRDMNGREXAMP_DO)
	@$(RM) $(THRDMNGREXAMP_EXEO) $(THRDMNGREXAMP_EDEP)
	@$(RM) $(THRDMNGREXAMP_DEP) $(THRDMNGREXAMP_DDEP) $(THRDMNGREXAMP_DS) $(THRDMNGREXAMP_DH)

clean:: clean-bin
	@$(CleanLib) $(THRDMNGREXAMP_LIBNAME) $(THRDMNGREXAMP_DIR)
	@$(RM) $(THRDMNGREXAMP_EXE)

include $(GO4SYS)/Makefile.rules
