LIB_DIR=lib
TARGET=$(LIB_DIR)/libdwarfinterpret.so
SRC=src/DwarfInterpret.cpp src/MemoryMap.cpp

INCLUDE_DIR=include

CXX=g++
CXXFLAGS=-Wall -Wextra -O1 -g --std=c++14
CXXLIBS=-ldwarfpp -ldwarf -lelf -lc++fileno
CXXINCLUDE=-I$(INCLUDE_DIR)


OBJS = $(SRC:.cpp=.o)

###############################################################################

all: $(TARGET)

$(TARGET): $(OBJS)
	mkdir -p "$$(dirname "$@")"
	$(CXX) $(CXXFLAGS) $(CXXLIBS) $(CXXINCLUDE) $^ -shared -o "$@"

%.o: %.cpp
	$(CXX) $(CXXFLAGS) $(CXXINCLUDE) -fPIC -c "$<" -o "$@"

clean:
	rm -f $(OBJS) $(TARGET)

docs:
	doxygen Doxyfile

upload-docs:
	rsync -ar docs/html/ \
		www.tobast:/srv/httpd/tobast.fr/public_html/doc/DwarfInterpret

.PHONY: docs