Disable make builtin rules and variables from inside the make file

后端 未结 7 677
隐瞒了意图╮
隐瞒了意图╮ 2020-12-04 17:40

I want to disable builtin rules and variables as per passing the -r and -R options to GNU make, from inside the make file. Other solutions that allow me to do this implicitl

相关标签:
7条回答
  • 2020-12-04 18:15

    Disabling the built-in rules is done by writing an empty rule for .SUFFIXES:

    .SUFFIXES:
    

    Having erased the built-in rules, I'm not sure that erasing the built-in variables helps you much more than just remembering to set them yourself or not use them, but you could use something like

    $(foreach V
        $(shell make -p -f/dev/null 2>/dev/null | sed -n '/^[^:#= ]* *=/s/ .*//p'),
        $(if $(findstring default,$(origin $V)),$(eval $V=)))
    

    ...which is admittedly fairly crazy. If there is a way to get a list of the defined variables from within make (instead of shelling out to another make), it would be viable. As it is, it's not really much better than

    CC=
    CXX=
    # etc, for each likely built-in variable
    
    0 讨论(0)
提交回复
热议问题