Makefile as an executable script with shebang?

前端 未结 2 1069
青春惊慌失措
青春惊慌失措 2020-12-05 10:20

Is it possible to create an executable script that would be interpreted by make?

I tried this:

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

main:
              


        
相关标签:
2条回答
  • 2020-12-05 11:08
    #!/usr/bin/make -f
    
    main:
            @echo Hello World!
    

    Is normally all you need in a standard make file. The filename is implicitly passed as the last argument. /dev/stdin here is (usually) the tty. You can do the whole env thing if there's a reason to, but often there's no need.

    ajw@rapunzel:~/code/videocc/tools > vi Makefile                       
    ajw@rapunzel:~/code/videocc/tools > chmod a+x Makefile         
    ajw@rapunzel:~/code/videocc/tools > ./Makefile                 
    Hello World!
    
    0 讨论(0)
  • 2020-12-05 11:15

    The following adds a level of indirection but it's the best solution I've come up with for self-executing makefiles not called "makefile":

    #!/bin/sh
    exec make -f- "$@" << 'eof'
    
    .PHONY: all
    all:
        @echo 'hello world!'
    

    I'm trying to collect #! env hacks for each language / program here.

    0 讨论(0)
提交回复
热议问题