我正在尝试使用 sed 更改 Makefile 变量。我写了一个小的 Makefile 来说明我想要做什么。CINCS 变量最终将附加到 CFLAGS 变量。CSINCS 变量应该保存所有包含文件的路径,前面没有“-I”。
#SHELL = /bin/sh
SRCS = /usr/local/src/jpeg/jpeg-9b
CINCS = -I/usr/local/src/jpeg/jpeg-9b
CSINCS = $(CINCS) | sed -e "s/-I//g"
check:
@echo 1. $(SRCS)
find $(SRCS) -name "*.c" -print > cscope.files
@echo 2. $(CSINCS)
find '$(CSINCS) -name" "*.h' -print >> cscope.files
cscope -k -b
cat cscope.files | xargs ctags -u
Run Code Online (Sandbox Code Playgroud)
#
我试图删除所有包含路径前面的“-I”。执行时:
$ make -f test check
1. /usr/local/src/jpeg/jpeg-9b
find /usr/local/src/jpeg/jpeg-9b -name "*.c" -print > cscope.files
2. /usr/local/src/jpeg/jpeg-9b
find '-I/usr/local/src/jpeg/jpeg-9b | sed …
Run Code Online (Sandbox Code Playgroud)