diff --git a/Makefile b/Makefile index 25df43e..6ac8dd0 100644 --- a/Makefile +++ b/Makefile @@ -12,11 +12,12 @@ ifdef ALOG_DEBUG CFLAGS += -g endif -ALOG_SRC = alog.c +ALOG_TOP_DIR := $(dir $(lastword $(MAKEFILE_LIST))) +ALOG_SRC = $(ALOG_TOP_DIR)alog.c ALOG_OBJ = $(BUILD_DIR)/alog.o ALOG_LIB = $(TARGET_DIR)/alog.so -include tests/tests.mk +include $(dir $(lastword $(MAKEFILE_LIST)))tests/tests.mk .PHONY: so alog-so: $(if $(shell stat $(ALOG_LIB)), clean) $(ALOG_LIB) @@ -25,7 +26,7 @@ $(ALOG_LIB): $(TARGET_DIR) $(ALOG_OBJ) $(CC) $(LDFLAGS) -o $(ALOG_LIB) $(ALOG_OBJ) $(ALOG_OBJ): $(BUILD_DIR) - $(CC) $(CFLAGS) -fPIC -c alog.c -o $(ALOG_OBJ) + $(CC) $(CFLAGS) -fPIC -c $(ALOG_SRC) -o $(ALOG_OBJ) $(BUILD_DIR): mkdir $(BUILD_DIR) diff --git a/tests/tests.mk b/tests/tests.mk index 7681cee..f10e804 100644 --- a/tests/tests.mk +++ b/tests/tests.mk @@ -1,8 +1,9 @@ -ALOG_TEST_SRCS = $(shell find tests -iname "*.c" -exec basename {} \;) +ALOG_TEST_DIR := $(dir $(lastword $(MAKEFILE_LIST))) +ALOG_TEST_SRCS = $(shell find $(ALOG_TEST_DIR) -iname "*.c" -exec basename {} \;) ALOG_TESTS = $(ALOG_TEST_SRCS:.c=) $(ALOG_TESTS): $(ALOG_LIB) - $(CC) $(CFLAGS) -g -o $(BUILD_DIR)/$@.o -c tests/$@.c + $(CC) $(CFLAGS) -g -o $(BUILD_DIR)/$@.o -c $(ALOG_TEST_DIR)$@.c $(CC) -o $(TARGET_DIR)/$@ $(BUILD_DIR)/$@.o $(ALOG_LIB) -lpthread chmod +x $(TARGET_DIR)/$@