1
私はsedでMakefile変数を変更しようとしています。私は何をしようとしているのかを説明するために小さなMakefileを書きました。 CINCS変数は最終的にCFLAGS変数に追加されます。 CSINCS変数は、すべてのインクルードファイルのパスを "-I"の手前に保持することになっています。sedでMakefile変数を変更
#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
#
私はすべて含まれたパスの前に "-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 -e "s/-I//g" -name" "*.h' -print >> cscope.files
find: unknown predicate `-I/usr/local/src/jpeg/jpeg-9b | sed -e "s/-I//g" -name" "*.h'
test:8: recipe for target 'check' failed
make: *** [check] Error 1
「2」の位置では、CSINCS変数が正しく表示されます。 。。しかし、そこに私はcscopeのコマンドでCINCS変数を使用することができます知っていることが問題だ
」を見つけるのコマンドを使用して拡張したものです:
cscope -I $(CINCS)
が、私はctagsのためcscope.filesを使用したいです私はちょうど別のCSINCS変数を生成し、常に同期してCINCSとCSINCSを維持することができます。
@rsunを使用する必要はありませんが、あなたが4.0以上の最近の
を作る持っている場合[誰かが私の質問に答えるとどうすればいいですか?](https://stackoverflow.com/help/someone-answers) – Sundeep