makefile 调用自身

Rya*_*yan 5 makefile

当一个 makefile 调用自己时

test : 
    @ mv $(BIN_SRC) $(BIN_SCR_TMP)
    @ mv $(BIN_TEST_SRC) $(BIN_TEST_SRC_TMP)
    @ make runtest
    @ mv $(BIN_SCR_TMP) $(BIN_SRC)
    @ mv $(BIN_TEST_SRC_TMP) $(BIN_TEST_SRC)

runtest : $(OBJS) $(LIB)
    g++ -o $(TEST_BIN_FILE) $(OBJS) $(LIB)
    @ chmod ugo+x $(TEST_BIN_FILE)
    $(TEST_BIN_FILE)
Run Code Online (Sandbox Code Playgroud)

然后运行make test它会将其打印到终端:

make test

make[1]: Entering directory `/users/home2/admin/stringha/cs240/webcrawler'
g++ -o bin/webcrawler-tests  obj/URL.o  obj/webcrawler-tests.o lib/libcs240utils.a bin/webcrawler-tests
Hello webcrawler test!
make[1]: Leaving directory `/users/home2/admin/stringha/cs240/webcrawler'
Run Code Online (Sandbox Code Playgroud)

我想知道如何使它不打印出线条

make[1]: Entering directory `/users/home2/admin/stringha/cs240/webcrawler'
Run Code Online (Sandbox Code Playgroud)

make[1]: Leaving directory `/users/home2/admin/stringha/cs240/webcrawler'
Run Code Online (Sandbox Code Playgroud)

谢谢!

Eld*_*mov 6

添加--no-print-directory标志

MAKEFLAGS += --no-print-directory
Run Code Online (Sandbox Code Playgroud)

或者直接添加到子make调用命令中:

test :
    ...
    @$(MAKE) runtest --no-print-directory
    ...
Run Code Online (Sandbox Code Playgroud)

另请阅读有关使用MAKE变量的信息。


Wil*_*ell 3

将 --no-print-directory 添加到 MAKEFLAGS:

$ 导出 MAKEFLAGS=--无打印目录

或者将该选项添加到 make 的调用中:

$ make test --无打印目录