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 hack在这里

于 2016-08-28T06:56:03.397 回答