/
solidbase
/
C5_s21_decimal
Обзор
Документация
Войти
/
solidbase
/
C5_s21_decimal
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
src/Makefile
67 строк
2 KB
maxiewal
lcov -c -d . --base-directory . --no-external
01 апр 2026, 16:47
01 апр 2026, 16:47
5ee2eeb
Код
Авторство
О чём код?
.PHONY: all clean test gcov_report valgrind cppcheck TARGET = s21_decimal.a CC = gcc CFLAGS = -Wall -Werror -Wextra -std=c11 -g3 OBJ_DIR = objects BIN_DIR = bin TEST_BIN = $(BIN_DIR)/test_runner SRCS = $(wildcard *.c) OBJS = $(SRCS:%.c=$(OBJ_DIR)/%.o) TEST_SRCS = $(wildcard tests/*.c) TEST_OBJS = $(TEST_SRCS:tests/%.c=$(OBJ_DIR)/%.o) # OS-specific Check library flags UNAME_S := $(shell uname -s) ifeq ($(UNAME_S), Darwin) CHECK_LIBS = -lcheck -lm -L/opt/homebrew/opt/check/lib CHECK_INCLUDES = -I/opt/homebrew/opt/check/include endif ifeq ($(UNAME_S), Linux) CHECK_LIBS = -lcheck -lm -lpthread IS_UBUNTU := $(shell grep -qi ubuntu /etc/os-release 2>/dev/null && echo yes) ifeq ($(IS_UBUNTU), yes) CHECK_LIBS += -lsubunit endif CHECK_INCLUDES = endif all: $(TARGET) $(TARGET): $(OBJS) @ar rcs $@ $^ $(OBJ_DIR)/%.o: %.c | $(OBJ_DIR) @$(CC) $(CFLAGS) -c $< -o $@ $(OBJ_DIR)/%.o: tests/%.c | $(OBJ_DIR) @$(CC) $(CFLAGS) $(CHECK_INCLUDES) -c $< -o $@ $(TEST_BIN): $(TARGET) $(TEST_OBJS) | $(BIN_DIR) @$(CC) $(CFLAGS) $(TEST_OBJS) $(TARGET) $(CHECK_LIBS) -o $@ test: $(TEST_BIN) @$(TEST_BIN) $(OBJ_DIR) $(BIN_DIR): @mkdir -p $@ gcov_report: CFLAGS += --coverage gcov_report: clean test @mkdir -p coverage_report @lcov -c -d . --base-directory . --no-external -o coverage_report/coverage.info @genhtml coverage_report/coverage.info -o coverage_report @echo "Open coverage_report/index.html in browser" valgrind: $(TEST_BIN) @valgrind --track-origins=yes --leak-check=full $(TEST_BIN) cppcheck: @cppcheck --std=c11 $(SRCS) clean: @rm -rf $(OBJ_DIR) $(BIN_DIR) $(TARGET) coverage_report informations @rm -f *.gcov *.gcda *.gcno tests/*.gcov tests/*.gcda tests/*.gcno