При тестировании с makefile выдает ошибки
cc -c -Wall -Werror -I thirdparty/ -I src -MP -MMD test/test_main.c -o obj/test/test_main.o -lm
cc -c -Wall -Werror -I thirdparty/ -I src -MP -MMD test/test_geometry.c -o obj/test/test_geometry.o -lm
make: Circular test <- test dependency dropped.
cc -I thirdparty/ -I src -MP -MMD obj/test/test_main.o obj/test/test_geometry.o obj/src/libgeometry/lib_calc_trans.o obj/src/libgeometry/lib_main_chek.o obj/src/libgeometry/libmainchek.o -o test -lm
/usr/bin/ld: cannot open output file test: Is a directory
collect2: error: ld returned 1 exit status
make: *** [makefile:52: test] Error 1
Error: Process completed with exit code 2.
В чем они заключаются и как их пофиксить?
APP_NAME = geometry
LIB_NAME = libgeometry
TEST_NAME = test
CFLAGS = -Wall -Werror
CPPFLAGS = -I src -MP -MMD
LBOFLAGS = -lm
OBJ_DIR = obj
SRC_DIR = src
TEST_DIR = test
TEST_PATH = $(TEST_NAME)
APP_PATH = $(APP_NAME)
LIB_PATH = $(OBJ_DIR)/$(SRC_DIR)/$(LIB_NAME)/$(LIB_NAME).a
SRC_EXT = c
APP_SOURCES = $(shell find src/geometry -name '*.$(SRC_EXT)')
APP_OBJECTS = $(APP_SOURCES:$(SRC_DIR)/%.$(SRC_EXT)=$(OBJ_DIR)/$(SRC_DIR)/%.o)
TEST_SOURCES = $(shell find test -name '*.$(SRC_EXT)')
TEST_OBJECTS = $(TEST_SOURCES:test/%.c=obj/test/%.o)
LIB_SOURCES = $(shell find $(SRC_DIR)/$(LIB_NAME) -name '*.$(SRC_EXT)')
LIB_OBJECTS = $(LIB_SOURCES:$(SRC_DIR)/%.$(SRC_EXT)=$(OBJ_DIR)/$(SRC_DIR)/%.o)
DEPS = $(APP_OBJECTS:.o=.d) $(LIB_OBJECTS:.o=.d) $(TEST_OBJECTS:.o=.d)
.PHONY: test clean
all: $(APP_PATH)
-include $(DEPS)
$(APP_PATH): $(APP_OBJECTS) $(LIB_PATH)
$(CC) $(CFLAGS) $(CPPFLAGS) $^ -o $@ $(LBOFLAGS) $(LDLIBS) -lm
$(LIB_PATH): $(LIB_OBJECTS)
ar rcs $@ $^
$(OBJ_DIR)/%.o: %.c
$(CC) -c $(CFLAGS) $(CPPFLAGS) -I thirdparty $< -o $@ -lm
test: $(TEST_PATH)
-include $(DEPS)
$(TEST_PATH): $(TEST_OBJECTS) $(LIB_PATH)
$(CC) -I thirdparty/ $(CPPFLAGS) $(TEST_OBJECTS) $(LIB_OBJECTS) -o $@ $(LBOFLAGS)
.PHONY: clean
clean:
$(RM) $(APP_PATH) $(LIB_PATH) $(TEST_PATH)
find $(OBJ_DIR) -name '*.o' -exec $(RM) '{}' \;
find $(OBJ_DIR) -name '*.d' -exec $(RM) '{}' \;