PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)}"

PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio"

PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack"


如果安装了pulseaudio则使用--enable-pulse,类似 USE


出处: http://blog.csdn.net/xiaofeng_yan/article/details/7018349

PACKAGECONFIG是用来区分一个软件包在不同的条件下,配置依赖和编译选项

例如:

PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
          ${@base_contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)}"
PACKAGECONFIG[x11] = "--with-x,--without-x,${X11DEPENDS}"
PACKAGECONFIG[directfb] = ",,directfb"


用法说明:

PACKAGECONFIG[foo] = "--enable-foo,--disable-foo,foo_depends,foo_runtime_depends"

有四个参数,

--enable-foo:表示如果有foo的那么使能它

--disable-foo:表示没有foo的情况下就不是能它

foo_depends: 表示如果有foo的情况下编译时的依赖。

foo_runtime_depends:表示如果有foo的情况下,运行时的依赖

上面的例子是pango对基于x11或direcrfb的情况

如果是基于x11的(${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}),那么configure时,--with-x, 编译依赖${X11DEPENDS}

如果是基于direcrfb(${@base_contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)})的,那么运行confiure时,--without-x,编译依赖direcrfb