Как делать адекватную отладку Make-файлов?

Сейчас сделал Makefile. Он естественно не работает и требуется отладка.

Выдаёт сообщения "Не требует выполнения команд". Хотя это надо сделать и тут без вариантов. Удаления файлов, timestamp и прочее не помогает.

При вводе параметра -d выводится тонны помойного текста с "Попытка применения неявной зависимости"/"Попытка применения ..." "Makefile.(какой-то вид расширения)".

Я не могу понять, что это всё означает. Информативности (как для меня) нету никакой абсолютно (Так как файлов с расширением, например, .mod или .ssh у меня в проекте нету).

В статьях/гайдах/рассказах всё сводится к использованию параметра -d для отладки и не более. Других вариантов обнаружить не удалось

Как при таких входных проводить отладку и выяснять причину проблемы в Makefile?

Вот файл НЕрабочий:


CC=g++

# TYPICAL FLAGS
FLAGS_1=-c -fPIC 

# FOLDERS WITH FILES
HEADERS=include
SOURCE=src
LIBRARIES=lib
BASE_DIRECTORY=./

# EXECUTION FILE
EXEC=main
# .CPP file of library
LIB=mathFunctionsForL

$(EXEC): $(BASE_DIRECTORY)$(SOURCE)/$(EXEC).cpp $(BASE_DIRECTORY)$(LIBRARIES)/lib$(LIB).so
    $(CC) $(BASE_DIRECTORY)$(SOURCE)/$(EXEC).cpp -I $(BASE_DIRECTORY)$(HEADERS) -o $(EXEC) -L. $(BASE_DIRECTORY)$(LIBRARIES)/lib$(LIB).so 

$(BASE_DIRECTORY)$(LIBRARIES)/lib$(LIB).so: $(BASE_DIRECTORY)$(LIB).o
    $(CC) -shared -o $(BASE_DIRECTORY)$(LIBRARIES)/lib$(LIB).so $(BASE_DIRECTORY)$(LIB).o 

$(BASE_DIRECTORY)$(LIB).o: blank.c $(BASE_DIRECTORY)$(SOURCE)/$(LIB).cpp
    $(CC) $(FLAGS_1) -I $(BASE_DIRECTORY)$(HEADERS) $(BASE_DIRECTORY)$(SOURCE)/$(LIB).cpp

blank.c: 
    echo "Hello World!" > ./text.txt
    

Рабочий файл


CC=g++

# TYPICAL FLAGS
FLAGS_1=-c -fPIC 

# FOLDERS WITH FILES
HEADERS=include
SOURCE=src
LIBRARIES=lib
BASE_DIRECTORY=./

# EXECUTION FILE
EXEC=main

$(EXEC): $(BASE_DIRECTORY)$(SOURCE)/$(EXEC).cpp $(BASE_DIRECTORY)$(LIBRARIES)/libmath_ops.so
    $(CC) $(BASE_DIRECTORY)$(SOURCE)/$(EXEC).cpp -I $(BASE_DIRECTORY)$(HEADERS) -o $(EXEC) -L. $(BASE_DIRECTORY)$(LIBRARIES)/libmath_ops.so 

$(BASE_DIRECTORY)$(LIBRARIES)/libmath_ops.so: $(BASE_DIRECTORY)math_ops.o
    $(CC) -shared -o $(BASE_DIRECTORY)$(LIBRARIES)/libmath_ops.so $(BASE_DIRECTORY)math_ops.o 

$(BASE_DIRECTORY)math_ops.o: blank.c $(BASE_DIRECTORY)$(SOURCE)/math_ops.cpp
    $(CC) $(FLAGS_1) -I $(BASE_DIRECTORY)$(HEADERS) $(BASE_DIRECTORY)$(SOURCE)/math_ops.cpp

blank.c: 
    echo "Hello World!" > ./text.txt

Вот вырезка из сообщения дебаггера (полностью скинуть нельзя из-за киллобайтного текста):

Попытка применения правила с образцом «Makefile.mydynamicCopy».
 Отвержение невозможной неявной зависимости «Makefile.mydynamicCopy.S».
 Попытка применения правила с образцом «Makefile.mydynamicCopy».
 Отвержение невозможной неявной зависимости «Makefile.mydynamicCopy.mod».
 Попытка применения правила с образцом «Makefile.mydynamicCopy».
 Попытка применения неявной зависимости «Makefile.mydynamicCopy.sh».
 Поиск правила с промежуточным файлом «Makefile.mydynamicCopy.sh».
  Избежание рекурсивного вызова неявного правила.



Ответы (0 шт):