SRC_DIR = $(CURDIR)/src BUILD_DIR != echo /tmp/snowman.`echo $(CURDIR) | sha1sum | awk '{print $$1}'` //报错 “=”左边的名称太多。我把 !去掉了 BUILD_DIR_LINK = $(CURDIR)/build BUILD_SCRIPT = $(BUILD_DIR)/build.ninja DECOMPILER = $(BUILD_DIR)/nocode/nocode TEST_DIR = $(BUILD_DIR)/tests TEST_SCRIPT = $(TEST_DIR)/build.ninja .PHONY: all all: tags build .PHONY: build build: $(BUILD_DIR)/build.ninja cmake --build $(BUILD_DIR) $(BUILD_DIR) $(BUILD_DIR_LINK): mkdir -m 700 $(BUILD_DIR) ln -s $(BUILD_DIR) $(BUILD_DIR_LINK) $(BUILD_SCRIPT): $(BUILD_DIR) cd $(BUILD_DIR) && cmake -G Ninja $(SRC_DIR) .PHONY: test test: build $(TEST_SCRIPT) ninja -C $(TEST_DIR) -k 100 .PHONY: check check: build $(TEST_SCRIPT) ninja -C $(TEST_DIR) -t clean ninja -C $(TEST_DIR) -k 100 check .PHONY: update-tests update-answers: check ninja -C $(TEST_DIR) update $(TEST_SCRIPT): tests/configure.py --decompiler $(DECOMPILER) $(TEST_DIR) .PHONY: tags tags: -ctags --c++-kinds=+p --fields=+iaS --extra=+q -R $(SRC_DIR) //报错 'ctags' 不是内部或外部命令,也不是可运行的程序 .PHONY: doxydoc doxydoc: doxygen gitstats: .git gitstats . gitstats .PHONY: clean clean: rm -f tags gmon.out core core.* vgcore.* .ycm_extra_conf.pyc -cmake --build $(BUILD_DIR) --target clean -$(MAKE) -C doc clean rm -rf $(TEST_DIR) .PHONY: distclean: clean rm -rf $(BUILD_DIR) $(BUILD_DIR_LINK) doxydoc gitstats
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
跟我一起写Makefile