Makefile 字符串中的变量名不为';t评估

Makefile 字符串中的变量名不为';t评估,makefile,gnu-make,Makefile,Gnu Make,我正在写一个makefile。在我的用例中,变量名存储在另一个变量中。我试图从功能上评估它,但评估不正确 在代码中,我希望“Devicenit”计算为UART_init。我的代码中有什么错误 VAR=MYDEV MYDEV_init=UART_init define create_kernels_c echo GGGGG $(VAR) baseinit=$$(echo $(VAR)_init); $$(eval devinit=\$$baseinit); ec

我正在写一个makefile。在我的用例中,变量名存储在另一个变量中。我试图从功能上评估它,但评估不正确

在代码中,我希望“Devicenit”计算为UART_init。我的代码中有什么错误

VAR=MYDEV
MYDEV_init=UART_init


define create_kernels_c
    echo GGGGG $(VAR)
    baseinit=$$(echo $(VAR)_init);
    $$(eval devinit=\$$baseinit);
    echo devinit $$devinit;
endef


all:
    @$(call create_kernels_c)

使用变量替换两次,不要忘记
。ONESHELL:
(或在任何地方追加
;\
):

VAR=MYDEV
MYDEV_init=UART_init


define create_kernels_c
    echo GGGGG $(VAR)
    devinit=$($(VAR)_init)
    echo devinit $$devinit
endef


.ONESHELL:
all:
    @$(call create_kernels_c)