首页 > 解决方案 > 用“\”换行“不在 GNUmake 中工作?

问题描述

我有以下 Makefile WORKING片段:

LOWER_PKG := skeleton-init-common toolchain-external-custom argp-standalone cpio dosfstools ncurses libzlib util-linux e2fsprogs iputils xz kmod lzo mtd busybox bzip2 dhcpcd d
LOWER_OVR := $(BR2_EXTERNAL_VOCORE2_PATH)/overlay
LOWER_ADD :=.

define ROOTFS_LOWER_REMOVE
        echo "ooo $(LOWER_OVR)"
        echo "ppp $(LOWER_PKG)"
        echo "aaa $(LOWER_ADD)"
endef

如果我使用普通的 "\newline" 语法分割第一行,它就不再起作用(所有变量都打印为空,而不仅仅是最后一个:

LOWER_PKG := skeleton-init-common toolchain-external-custom \
             argp-standalone cpio dosfstools ncurses libzlib \
             util-linux e2fsprogs iputils xz kmod lzo mtd busybox \
             bzip2 dhcpcd
LOWER_OVR := $(BR2_EXTERNAL_VOCORE2_PATH)/overlay
LOWER_ADD :=.

define ROOTFS_LOWER_REMOVE
        echo "ooo $(LOWER_OVR)"
        echo "ppp $(LOWER_PKG)"
        echo "aaa $(LOWER_ADD)"
endef

注意:我在行首有 TAB 字符,但我不知道如何在这里输入它们,所以我替换了 8 个空格。

我究竟做错了什么?

这绝对是唯一的变化:我有一个不工作的 Makefile,加入了行,它开始正常工作。我很困惑。

注意 2:这个片段是 Buildroot 编译的配置部分,这是一个完全不受我控制的庞然大物(如果重要的话)。

标签: makefilegnu-make

解决方案


推荐阅读