D_ROOT          := ../..
EXECUTE_DIR     := $(D_ROOT)/Execute
LIB_DIR         := $(D_ROOT)/lib
LIB_NAME	:= DAQBuilder
LIB_FILE	:= lib$(LIB_NAME).a
LIB_FLAGS       := -L$(LIB_DIR) -l$(LIB_NAME)
INC_FLAGS	:= -I$(D_ROOT)
D_USE_ROOT      :=1
ifdef D_USE_ROOT
INC_FLAGS	+= `root-config --cflags` 
LIB_FLAGS       += `root-config --libs` 
endif
ifdef D_USE_GTK
INC_FLAGS	+= `gtk-config --cflags` 
LIB_FLAGS       += `gtk-config --libs` 
endif
ifdef D_USE_JNI
INC_FLAGS	+= -I$(JAVA)/include
INC_FLAGS	+= -I$(JAVA)/include/linux
endif
X_ROOT          := /usr/X11R6/
INC_FLAGS	+= -I$(X_ROOT)/include
LIB_FLAGS       += -L$(X_ROOT)/lib -lcurses -lpthread -lreadline -lX11 -lXm -lXpm
LINK		:= g++ -g -O3 -Wall -ansi -pedantic
LINK_SO		:= g++ -g  -shared  -O3 -fPIC #-Wall -ansi -pedantic
ERR_FILE	:= err.log
OBJ             := DAQBuilderDoubleInstance.so   DAQBuilderShortInstance.so	    DAQBuilderUnsignedShortInstance.so DAQBuilderBooleanInstance.so	DAQBuilderFloatInstance.so    DAQBuilderStringInstance.so DAQBuilderByteInstance.so DAQBuilderIntegerInstance.so  DAQBuilderUnsignedIntegerInstance.so DAQBuilderCharacterInstance.so	DAQBuilderLongInstance.so     DAQBuilderUnsignedLongInstance.so DAQBuilderUnsignedCharacterInstance.so

all    :compile check

compile: $(OBJ)

check: 
	@if [ ! -f $(ERR_FILE) ]; then touch $(ERR_FILE) ; fi 
	@echo `wc -l $(ERR_FILE)| sed s/$(ERR_FILE)//` error occured
%.so:%.cc
	@echo 
	@echo 
	@echo "NEXT"
	@echo 
	@echo "Shareling $@ using include $(INC_FLAGS) "
	@$(LINK_SO) -o $@ $<  $(INC_FLAGS) 2>>$(ERR_FILE)
	@clear
	@echo $< `wc -l $(ERR_FILE)| sed s/$(ERR_FILE)//` error occured
	@cp $@ $(D_ROOT)/Class/Classes/lib$@
clean:
	@echo "Cleaning ....."
	@rm -rf *~ *.o a.out core  $(OBJ)
