# the below does not change from projec to project
OBJ_DIR=../obj
BIN_DIR=../bin
LIB_DIR=../lib
INC_DIR=../include
AREA_INCDIR=$(AreaRootDir)/include
AREA_LIBDIR=$(AreaRootDir)/lib
LIBS_DEPEND_ON=-L$(AreaRootDir)/lib -llbtypes -llbthread
AREA_BINDIR=$(AreaRootDir)/bin
INCLUDES=-I. -I$(INC_DIR) -I$(AREA_INCDIR)
#CPP=g++
#LD=g++

.c.o:
	$(CC) $(INCLUDES) $(CFLAGS) -c $<
	mv $@ $(OBJ_DIR)

.cpp.o:
	$(CPP) $(INCLUDES) $(CPPFLAGS) -c $<
	mv $@ $(OBJ_DIR)


PROJECT=lbstd
DEBUG= -g
CPPFLAGS += ${DEBUG}


liblbstd.so: console.o file.o deserializer.o
		cd $(OBJ_DIR); $(LD) -shared -o $(LIB_DIR)/$@ -fPIC $? $(LIBS_DEPEND_ON)

headers: console.hpp file.hpp
	 if test ! -d $(INC_DIR)/$(PROJECT) ; then { rm -f $(INC_DIR)/$(PROJECT); mkdir $(INC_DIR)/$(PROJECT); } fi ; cp $? $(INC_DIR)/$(PROJECT)

install: liblbstd.so headers
	 cp $(LIB_DIR)/liblbstd.so $(AREA_LIBDIR); cp -r $(INC_DIR)/$(PROJECT) $(AREA_INCDIR)

all: install

clean:
	\rm -f $(OBJ_DIR)/* $(BIN_DIR)/* $(LIB_DIR)/*; \rm -f  $(AREA_LIBDIR)/liblbstd.so; \rm -rf $(AREA_INCDIR)/$(PROJECT)

