Run if you want it
300x250

Build System 5

GCC attribute

gcc컴파일러가 제공하는 확장 기능으로 속성을 지정하는 키워드 해당 키워드를 통해서 변수 혹은 함수에 대한 속성을 지정할 수 있음. 종류 __attribute__((__used__)): 컴파일 시 최적화를 통해 사용하지 않는 변수들을 제외하는데 해당 속성을 지정하게 되면 사용하지 않는 변수에 대해서 제외시키지 않음 __attribute__((__aligned__(x))): 선언한 변수의 메모리 주소를 x 크기로 align __attribute__((__packed__)): 구조체 변수에 대해서 padding을 하지 않고 실제 data의 size만큼 할당. (4byte align) ex) 1번 case의 경우 padding에 의해 8byte 메모리를 할당. / 2번 case의 경우 해당 키워드를 통해 5b..

Build System 2024.02.02

PACKAGECONFIG

Description Yocto recipe상에서 해당 레시피에 대한 feature에 대하여 enable하거나 disable 또는 dependency를 설정할 수 있는 변수로서 아래와 같은 형태로 사용한다. 기본형태 PACKAGECONFIG ??= "f1" PACKAGECONFIG[f1] = "--with-f1,--without-f1,build-deps-f1,rt-deps-f1" 1. PACKAGECONFIG에 명시된 feature에 대하여 해당 feature에 대한 configure를 설정 ex) f1이 PACKAGECONFIG에 명시되어 있으므로 PACKAGECONFIG[f1]이 활성화 되어 정의된 configure 적용 2. 각 feature에 대한 configure 설정, 4 가지 config 설..

CMake

CMake 개요 기존 Makefile를 조금 더 쉽고 편리하게 작성할 수 있는 툴로써, 프로젝트의 규모가 커짐에 따라 관리해야하는 소스 파일의 양이 많아지고, 의존성이 많이 생겨 소스 관리가 어려워지는 Makefile의 한계를 해결하기 위해 탄생하였습니다. 소스 코드와 결과물 사이의 추상화를 통해 프로젝트 관리가 쉬워지는 장점이 있음 "CMake는 프로젝트를 빌드하는 것이 아닌 빌드 스크립트 파일(Makefile)을 생성해주는 프로그램" 장점 CMake의 경우 의존성 검사 시, 소스파일의 내부까지 분석해서 의존성 정보를 스스로 파악. Makefile과는 달리 object파일들에 대한 기술이 필요 없음. How to use CMake를 사용하기 위해서는 가장 먼저 CMakeLists.txt를 작성해주어야 ..

Build System/CMake 2021.07.23

bitbake metadata variable

bitbake에서 변수 할당은 metadata 문법의 핵심으로 잘 숙지할 필요가 있다. 기본변수설정 기본적으로 다음과 같이 변수를 할당한다. AAA = "var" 변수 확장 A = "Aval" B = "Left${A}Right" A에 할당된 값은 "Aval" B에 할당된 값은 "LeftAvalRight recipe 변수 yocto에서 사용되는 환경 변수 PR : Package Revision PN: Package Name PV: Package Version P : Package : "${PN}-${PV}" PF : Package full name : "${PN}-${PV}-${PR}" S : Unpacked source code directory - 압축해제, 패치, 컴파일이 진행되는 디렉토리 D: De..

recipe customize

bbappend 활용하기 .bbappend의 확장자를 가지고 있는 append파일은 .bb의 내용을 확장하거나 override하기 위해 사용한다. bitbake가 append 파일을 인식하기 위해서 .bb레시피와 이름이 같아야 한다. Common Usecase 이미 존재하는 레시피를 수정해야 하는 경우 .bb에 이어 .bbappend 파일을 레이어에 만들어야 함 ex) testapp_1.0.bb / testapp_1.0.bbapend Patch 적용하기 이미 존재하는 패키지에 패치를 적용하고 싶은 경우에는 다음과 같이 FILEEXTRAPATHS변수를 활용해야 한다. FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" SRC_URI += "file://patch1.patch..

728x90