본문 바로가기

Tizen

[Tizen Porting] #4 소스 코드 빌드하기

#4 소스 코드 빌드하기(Building All Packages)



저번 포스팅에서는 repo를 이용해 Tizen 소스를 다운로드 받았습니다.


못 보신분들은 #3 Tizen Source 가져오기 를 참조하시기 바랍니다!


이번 포스팅에서는 소스 코드를 빌드하는 방법에 대해서 알아보도록 하겠습니다.


먼저 이전에 소스코드를 받기 위해 생성했던 디렉토리로 이동하도록 합시다.

$ cd <프로젝트 폴더>


그 다음 기본적으로 생성된 .gbs.conf 파일을 수정하도록 합시다.

$ vim ~/.gbs.conf


이전에 Tizen3.0 Mobile 버전의 소스코드를 받았기 때문에 Mobile 버전에 맞게 수정해줍시다.

[general] tmpdir=/var/tmp/ profile = profile.tizen3.0_mobile work_dir=. [repo.tizen3.0_x86] url=${work_dir}/pre-built/toolchain-x86/ [repo.tizen3.0_arm] url=${work_dir}/pre-built/toolchain-arm/


[profile.tizen3.0_generic]

repos=repo.tizen3.0_x86,repo.tizen3.0_arm

# For wayland

#buildconf=${work_dir}/scm/meta/build-config/build_wayland.conf

# For x11

#buildconf=${work_dir}/scm/meta/build-config/build_x11.conf

# For both wayland and x11

#buildconf=${work_dir}/scm/meta/build-config/build_xwayland.conf


[profile.tizen3.0_ivi]

repos=repo.tizen3.0_x86


[profile.tizen3.0_mobile] repos=repo.tizen3.0_x86,repo.tizen3.0_arm buildconf=${work_dir}/scm/meta/build-config/build.conf

우리가 사용할 프로필은 profile.tizen3.0_mobile 입니다.


그렇기 때문에 [general] 파트에 프로필 설정을 모바일에 맞춰주도록 합시다.


Generic 이나 ivi의 경우에도 프로필 설정을 바꿔주시면 됩니다. 주의하실점은 generic 프로필 부분에서 주석처리된 buildconf 중 하나의 경로는 주석 해제 하셔서 저장하셔야합니다.


수정이 완료되었다면 gbs로 빌드를 해봅시다.


  • i586 아키텍처로 빌드
gbs build -A i586 --threads=4 --clean-once --exclude=gcc,cmake,filesystem,aul,libmm-sound,libtool
  • armv7l 아키텍처로 빌드
$ accel_pkgs="bash,bzip2-libs,c-ares,cmake,coreutils,diffutils,eglibc,elfutils-libelf,elfutils-libs,elfutils,fdupes,file,findutils,gawk,gmp,gzip,libacl,libattr,libcap,libcurl,libfile,libgcc,liblua,libstdc++,make,mpc,mpfr,ncurses-libs,nodejs,nspr,nss-softokn-freebl,nss,openssl,patch,popt,rpm-build,rpm-libs,rpm,sed,sqlite,tar,xz-libs,zlib,binutils,gcc"
$ gbs build -A armv7l --threads=4 --clean-once --exclude=${accel_pkgs},filesystem,aul,libmm-sound,libtool


위의 두 가지 경우로 빌드할 수 있습니다. 빌드가 시작되면 다음과 같은 화면을 만날 수 있습니다.




빌드 결과입니다.



몇몇 패키지를 빌드하는 데 실패했다고 나오네요.


현재 이 부분을 수정해서 빌드가 정확하게 완료되면 다시 포스팅하도록 하겠습니다.