123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- # Компилятор
- CC = gcc
- # Флаги компиляции
- CFLAGS = -Wall -Wextra $(shell pkg-config --cflags libmagic uchardet libarchive libavformat libavcodec libavutil libexif)
- # Имя исполняемого файла
- TARGET = cmfa
- # Исходные файлы
- SOURCES = complex_modules_file_analyzer.c $(wildcard module_*.c)
- # Объектные файлы
- OBJECTS = $(SOURCES:.c=.o)
- # Библиотеки
- LIBS = $(shell pkg-config --libs libmagic uchardet libarchive libavformat libavcodec libavutil libexif)
- # Цель по умолчанию: компиляция программы
- all: check_deps $(TARGET)
- # Проверка зависимостей
- check_deps:
- @command -v pkg-config >/dev/null 2>&1 || \
- (echo "Ошибка: pkg-config не установлен. Установите его: sudo apt install pkgconf"; exit 1)
- @pkg-config --exists libmagic uchardet libarchive libavformat libavcodec libavutil libexif || \
- (echo "Ошибка: Необходимые библиотеки не найдены."; \
- echo "Установите их с помощью: sudo apt install libmagic-dev libuchardet-dev libarchive-dev libavformat-dev libavcodec-dev libavutil-dev libexif-dev"; \
- exit 1)
- # Правило для сборки исполняемого файла
- $(TARGET): $(OBJECTS)
- $(CC) $(OBJECTS) -o $(TARGET) $(LIBS)
- # Правило для компиляции исходных файлов в объектные
- %.o: %.c
- $(CC) $(CFLAGS) -c $< -o $@
- # Очистка скомпилированных файлов
- clean:
- rm -f $(OBJECTS) $(TARGET)
- # Указываем, что clean и check_deps — не файлы
- .PHONY: clean check_deps
|