yocto - VIRTUAL-RUNTIME, virtual/

markyang92·2022년 6월 16일
0

yocto

목록 보기
2/53
post-thumbnail

VIRTUAL-RUNTIME과 virtual/

  • 대문자 변수인 VIRTUAL-RUNTIMEvirtual/ 의 차이는
    • VIRTUAL-RUNTIME: RDEPENDS 관련. 그래서 package 이름과 매칭
      • VIRTUAL-RUNTIME_bash = "bash"
        • RDEPENDS_tegra-nvs-base_append_class-target = "${VIRTUAL-RUNTIME_bash}"
        • RDEPENDS_tegra-nvs-base_remove_class-target = "${@oe.utils.conditional('MY_PREFERRED_PROVIDER', 'busybox', 'bash', '',d)}"
      • VIRTUAL-RUNTIME_init_manager = "systemd"
      • VIRTUAL-RUNTIME_initscripts = ""
      • VIRTUAL-RUNTIME_syslog = ""
      • VIRTUAL-RUNTIME_base-utils-syslog = ""
    • virtual/ : DEPENDS 관련. 그래서 recipe 관련
      • e.g., virtual/egl = "mesa"

virtual/*

  • virtual/ : build time DEPENDS와 관련. 그래서 recipe(.bb)와 관련있다.
    • e.g., PREFERRED_PROVIDER_virtual/egl = "mesa"

RDEPENDS vs DEPENDS

RDEPENDSDEPENDS
레시피가 빌드될 때는 일단 필요치 않음
이미지 만들 때, rootfs에서 설치되었는지 체크함
대표적으로 bash가 있음

RDEPENDS_${PN} += "bash" 시, 레시피 내부 빌드 시에는 bash가 있는지 체크 하지 않음
레시피 내부 소스에서 bash를 사용 한다면 당연히 걸어주어야함

레시피가 빌드될 때 선행으로 빌드되어, 내 레시피 빌드시 사용함
패키지 이름 명시레시피 이름 명시
VIRTUAL-RUNTIME_bash = "busybox" <-- 여기도 패키지 이름임
busybox 패키지
virtual/egl = "mesa"
mesa.bb 를 찾을 것임
전역 변수 사용 시,
RDEPENDS_tegra-nvs-base_append_class-target = " ${VIRTUAL-RUNTIME_bash}"
RDEPENDS_tegra-nvs-base_remove_class-target = "bash"

RDEPENDS 관련만 _pn-<레시피>를 안쓰는 것임!

전역 변수 사용 시,
DEPENDS_pn-<레시피>_append_class-target = " curl"
DEPENDS_pn-<레시피>_remove_class-target = "curl"
  • class_target에 대한 내용은 링크 참고

DEPENDS

DEPENDS 예

1. myhello.bb

  1. source file tree

  1. mylib.h

  1. print.c

  1. myhello.bb

  1. build output (packages-split)
FILES_path
FILES_SOLBSDEV
  • /lib/lib*.so
  • /usr/lib/lib*.so
  • FILES_${PN}-bin
  • /usr/bin/*
  • /usr/sbin/*
  • FILES_${PN}-dbg
  • /usr/lib/debug
  • /usr/lib/debug-static
  • /usr/src/debug
  • FILES_${PN}-dev
  • /usr/include
  • /lib/lib*.so
  • /usr/lib/lib*.so
  • /usr/lib/*.la
  • /usr/lib/*.o
  • /usr/lib/pkgconfig
  • /usr/share/pkgconfig
  • /usr/share/aclocal
  • /lib/*.o
  • /usr/lib/${PN}/*.la
  • /lib/*.la
  • /usr/lib/cmake
  • `/usr/share/cmake
  • FILES_${PN}-doc
  • /usr/share/doc
  • /usr/share/man
  • /usr/share/info
  • /usr/share/gtk-doc
  • /usr/share/gnome/help
  • FILES_${PN}-src
    FILES_${PN}-staticdev
  • /usr/lib/*.a
  • /lib/*.a
  • /usr/lib/${PN}/*.a
  • FILES_${PN}
  • /usr/bin/*
  • /usr/sbin/*
  • /usr/libexec/*
  • /usr/lib/lib*.so.*
  • /etc
  • /com
  • /var
  • /bin/*
  • /sbin/*
  • /lib/*.so.*
  • /lib/udev
  • /usr/lib/udev
  • /lib/udev
  • /usr/lib/udev
  • /usr/share/myhello
  • /usr/lib/myhello/*
  • /usr/share/pixmaps
  • /usr/share/applications
  • /usr/share/idl
  • /usr/share/omf
  • /usr/share/sounds
  • /usr/lib/bonobo/servers

    • myhello.shlibdeps
    • 패키지가 Depends 하는 패키지 명시

    2. myhello를 사용하는 myprog

    1. myprog.c

    1. myprog.bb

    1. output
    • myprog.shlibdeps
    profile
    pllpokko@alumni.kaist.ac.kr

    0개의 댓글