我可以有条件地以可移植的方式在Makefile中定义宏吗?

我可以有条件地以可移植的方式在Makefile中定义宏吗?,makefile,Makefile,当目标名称为DEBUG时,我一直在努力在一个可移植的Makefile中有条件地定义一个名为DEBUG的宏 它在GNU Make上运行良好,但我无法在bmake或fmake上运行它(来自Debian的freebsd buildutils) 根据一位古代学者的说法,条件宏定义有一种特殊的语法,但它就是不起作用: target-name := macro = value 另外,我还没有找到一个标准的方法 如何以可移植的方式有条件地定义调试?可移植的唯一方法是通过递归: debug:

当目标名称为DEBUG时,我一直在努力在一个可移植的Makefile中有条件地定义一个名为
DEBUG
的宏

它在GNU Make上运行良好,但我无法在
bmake
fmake
上运行它(来自Debian的
freebsd buildutils

根据一位古代学者的说法,条件宏定义有一种特殊的语法,但它就是不起作用:

target-name := macro = value 
另外,我还没有找到一个标准的方法


如何以可移植的方式有条件地定义调试?

可移植的唯一方法是通过递归:

debug:
        $(MAKE) all DEBUG='-O0 -g'
任何兼容POSIX的
make
版本都能正确处理此问题

target-name := macro = value 
debug:
        $(MAKE) all DEBUG='-O0 -g'