24

makeによって解釈される実行可能スクリプトを作成することは可能ですか?

私はこれを試しました:

#!/usr/bin/env make --makefile=/dev/stdin

main:
        @echo Hello!

しかし、それは機能しません-を押すまでハングしますCtrl-c

4

2 に答える 2

28
#!/usr/bin/make -f

main:
        @echo Hello World!

通常、標準のmakeファイルに必要なのはこれだけです。ファイル名は、最後の引数として暗黙的に渡されます。/dev/stdinこれが(通常)ttyです。env理由があればすべてを行うことができますが、多くの場合、必要はありません。

ajw@rapunzel:~/code/videocc/tools > vi Makefile                       
ajw@rapunzel:~/code/videocc/tools > chmod a+x Makefile         
ajw@rapunzel:~/code/videocc/tools > ./Makefile                 
Hello World!
于 2011-08-19T14:42:54.690 に答える
5

以下は間接参照のレベルを追加しますが、これは「makefile」と呼ばれない自己実行makefileに対して私が思いついた最良の解決策です。

#!/bin/sh
exec make -f- "$@" << 'eof'

.PHONY: all
all:
    @echo 'hello world!'

#集めようとしています!ここで各言語/プログラムのenvハック。

于 2016-08-28T06:56:03.397 に答える