making all rules depend on the Makefile itself

前端 未结 2 1752
野的像风
野的像风 2020-12-15 17:45

When I change a Makefile, its rules may have changed, so they should be reevaluated, but make doesn\'t seem to think so.

Is there any way to say, in a Makefile, that

相关标签:
2条回答
  • 2020-12-15 18:42

    The only answer I know to this is to add makefile explicitly to the dependencies. For example,

    %.o: %.c makefile
            $(CC) $(CFLAGS) -c $<
    
    0 讨论(0)
  • 2020-12-15 18:48

    This looks like one more simple, useful, logical thing that Make should be able to do, but isn't.

    Here is a workaround. If the clean rule is set up correctly, Make can execute it whenever the makefile has been altered, using an empty dummy file as a marker.

    -include dummy
    
    dummy: Makefile
        @touch $@
        @$(MAKE) -s clean
    

    This will work for most targets, that is targets that are actual files and that are removed by clean, and any targets that depend on them. Side-effect targets and some PHONY targets will slip through the net.

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