/
Xakka
/
CPP3
Обзор
Документация
Войти
/
Xakka
/
CPP3
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/Makefile
120 строк
3 KB
moshedur
master: release 1.0
05 янв 2025, 00:12
05 янв 2025, 00:12
35ee4f6
Код
Авторство
О чём код?
SHELL = /bin/sh CC=gcc CXX=g++ FLAGS=-Wall -Wextra -Werror CXXFLAGS:=$(FLAGS) -std=c++17 GCOV:=$(FLAGS) --coverage GTK=`pkg-config --cflags --libs gtkmm-4.0` BLD=../build/ INST_DIR=~/brick_game_by_moshedur NC=-lncurses TC=tetris_cli TG=tetris_gui SC=snake_cli SG=snake_gui .PHONY: all tc tg sc sg 1 2 3 4 5 install uninstall clean dvi dist test tests gcov_report run all: $(BLD)$(SG) $(BLD)$(TG) $(BLD)$(SC) $(BLD)$(TC) $(BLD)$(SG): $(BLD)gui.o $(BLD)libsnake.a $(CXX) $(CXXFLAGS) $^ -o $@ $(GTK) $(BLD)$(TG): $(BLD)gui.o $(BLD)libtetris.a $(CXX) $(CXXFLAGS) $^ -o $@ $(GTK) $(BLD)$(SC): $(BLD)cli.o $(BLD)libsnake.a $(CXX) $(CXXFLAGS) $^ -o $@ $(NC) $(BLD)$(TC): $(BLD)cli.o $(BLD)libtetris.a $(CXX) $(CXXFLAGS) $^ -o $@ $(NC) $(BLD)gui.o: gui/desktop/view.cpp gui/desktop/view.h brick_game/api.h $(CXX) $(CXXFLAGS) -c gui/desktop/view.cpp -o $@ $(GTK) $(BLD)cli.o: gui/cli/view.c gui/cli/view.h brick_game/api.h $(CXX) $(CXXFLAGS) -c gui/cli/view.c -o $@ $(NC) $(BLD)libtetris.a: $(BLD)libtetris.o ar rc $@ $^ ranlib $@ $(BLD)libsnake.a: $(BLD)libsnake.o ar rc $@ $^ ranlib $@ $(BLD)libtetris.o: brick_game/tetris/libtetris.c brick_game/tetris/libtetris.h $(CC) $(FLAGS) -c brick_game/tetris/libtetris.c -o $@ $(BLD)libsnake.o: brick_game/snake/libsnake.cpp brick_game/snake/libsnake.h $(CXX) $(CXXFLAGS) -c brick_game/snake/libsnake.cpp -o $@ $(BLD)test.o: tests/test.cpp brick_game/snake/libsnake.h $(CXX) $(CXXFLAGS) -c tests/test.cpp -o $@ sg: all $(BLD)$(SG) tg: all $(BLD)$(TG) sc: all $(BLD)$(SC) tc: all $(BLD)$(TC) 1: sg 2: tg 3: sc 4: tc 5: gcov_report run: sg install: all mkdir -p $(INST_DIR) cp $(BLD)$(SG) $(BLD)$(TG) $(BLD)$(SC) $(BLD)$(TC) $(INST_DIR) uninstall: rm -f $(INST_DIR)/$(SG) $(INST_DIR)/$(TG) $(INST_DIR)/$(SC) $(INST_DIR)/$(TC) rmdir $(INST_DIR) dvi: # sudo apt-get install texlive-xetex # sudo apt-get install texlive-lang-cyrillic xelatex -output-directory=$(BLD) README.tex dist: $(BLD)$(SG) $(BLD)$(TG) $(BLD)$(SC) $(BLD)$(TC) rm -rf $(BLD)brickgame-2.0 mkdir $(BLD)brickgame-2.0 cp -p $^ $(BLD)brickgame-2.0 cd $(BLD) && tar chozf brickgame-2.0.tar.gz brickgame-2.0 rm -rf $(BLD)brickgame-2.0 clean: -rm -rf $(BLD)*.* $(BLD)*_* *.gcno *.gcda *.info $(BLD)test test: tests tests: $(BLD)test.o $(BLD)libsnake.a $(CXX) $(CXXFLAGS) $^ -o $(BLD)test -lgtest -clear -$(BLD)test vg: all valgrind --tool=memcheck --leak-check=yes ./$(BLD)$(SC) gcov_report: clean gcov_flag $(BLD)libsnake.a $(BLD)test.o clean test -rm -rf report/ -lcov --rc geninfo_unexecuted_blocks=1 --ignore-errors mismatch -t "libsnake_report" -o $(BLD)libsnake_report2.info -c -d $(BLD) -lcov -r $(BLD)libsnake_report2.info "*src/tests*" "*/usr/*" -o $(BLD)libsnake_report.info -genhtml -o report $(BLD)libsnake_report.info -make clean cpp: cppcheck --enable=all --suppress=missingIncludeSystem --checkers-report=$(BLD)/cpp.txt --check-config gui/desktop/view.cpp gui/desktop/view.h gui/cli/view.c gui/cli/view.h brick_game/api.h brick_game/snake/libsnake.cpp brick_game/snake/libsnake.h brick_game/tetris/libtetris.c brick_game/tetris/libtetris.h @cp ../materials/linters/.clang-format . clang-format -n gui/desktop/view.cpp gui/desktop/view.h gui/cli/view.c gui/cli/view.h brick_game/api.h brick_game/snake/libsnake.cpp brick_game/snake/libsnake.h brick_game/tetris/libtetris.c brick_game/tetris/libtetris.h @rm -f .clang-format gcov_flag: $(eval CXXFLAGS:=$(GCOV))