
#################################################
vpath %.h src 
vpath %.c src 
vpath %.cpp src
vpath %.o build

INCS += -I/usr/local/include -I/usr/include/libxml2
CXXFLAGS= -c -g -Wall -std=c++14 $(INCS)
CFLAGS := -c  $(INCS) -Wall
BOOSTLIBS = -lboost_system -lboost_thread -lboost_filesystem -lboost_program_options 
SQLLIBS = -lsqlite3
LIBS += -L/usr/local/lib $(BOOSTLIBS) $(SQLLIBS) -lpthread -lrt -lm
LDFLAGS=-Wl,-gc-sections -Wl,-relax

CC=g++
OBJECT_FILES = main.o tcpClient.o

OBJDIR := build
TARGET := bin/main
OBJS := $(addprefix $(OBJDIR)/,$(OBJECT_FILES))

build/%.o: src/*.c src/%.cpp src/%.h
	@rm -f $@ 
	$(CXX) $(CXXFLAGS) $(INCLUDES) -g -c $< -o $@ -Wno-deprecated-declarations

build/%.o: src/%.c
	@rm -f $@ 
	$(CC) $(CFLAGS) $(INCLUDES) -g -c $< -o $@ -Wno-deprecated-declarations

$(OBJDIR)/%.o: %.cpp 
	$(CXX) $(CXXFLAGS) -o $@ $<

$(OBJDIR)/%.o: %.c %.h
	$(CC) $(CFLAGS) -o $@ $<

$(TARGET): $(OBJS)
	$(CXX) -o $(TARGET) $(OBJS) $(LIBS)

all: $(OBJS)

$(OBJS): | $(OBJDIR)

$(OBJDIR):
	mkdir $(OBJDIR)

run: $(TARGET)
	$(TARGET) 
