-PROJ := elfedit
+PROJ := elfucli
+
+LIBRARIES := libelf
BUILDDIR := build
INCLUDEDIR := include
SOURCES := $(shell find $(SRCDIR)/ -iname "*.c")
OBJS := $(patsubst %.c, $(BUILDDIR)/%.o, $(SOURCES))
-INCLUDES := $(patsubst %, -I%, $(INCLUDEDIR) $(SRCDIR)) -I /usr/include/libelf
-CFLAGS := -g -Wall
-LDFLAGS := -lelf
+INCLUDES := $(patsubst %, -I%, $(INCLUDEDIR) $(SRCDIR)) $(shell pkg-config --cflags-only-I $(LIBRARIES))
+CFLAGS := -g -Wall $(shell pkg-config --cflags-only-other $(LIBRARIES))
+LDFLAGS := $(shell pkg-config --libs $(LIBRARIES))
default: $(EXE)
+.PHONY: check
+check: $(EXE)
+ $(error the re-layouting has broken make check for now, sorry.)
+ $(EXE) $(EXE) -o testexe
+ @cmp $(EXE) testexe
+ @rm testexe
+ @echo "Check successful."
+
+
+.PHONY: debug
+debug: $(EXE)
+ gdb $(EXE) $(shell ps -e | sed "s/^ *\([0-9]\+\) .*$(PROJ).*$$/\1/g;te;d;:e")
+
$(EXE): $(OBJS)
@if [ ! -d $(BUILDDIR) ] ; then echo "Error: Build dir '$(BUILDDIR)' does not exist." ; false ; fi
- gcc $(LDFLAGS) -o $@ $^
+ gcc -o $@ $^ $(LDFLAGS)
$(BUILDDIR)/$(SRCDIR)/%.o: $(SRCDIR)/%.c $(HEADERS)