====== 컴파일 과정의 이해 ======
GP2 에서 컴파일되는 과정을 설명하고 있다. 전체 소스코드 자체가 방대하고, 컴파일에 소요되는 시간도 길기 때문에 단번에 이해하기는 어려울 수 있다.
하지만, 하나씩 하나씩 분석해보면 이 문서를 다 읽었을 쯤에는 대강의 큰 그림을 그릴 수 있을 것이다.
====== 들어가기 전에 ======
GP2 컴파일 시 대부분 아래의 경로에 가서 컴파일 한다.
$cd work/gp2/src/app/prj/dvb_saturn6/
$make epk GP2_DVB_EU.cfg # DVB 向 경우
위의 경우와 같이 실행했을 경우, Makefile 을 따라 컴파일되는 순서에 따라 설명하겠다.
====== 컴파일 과정 ======
===== gp2/src/apps/prj/dvb_saturn6/makefile =====
가장 먼저 실행되는 파일이다. 이 파일의 주 역할은 메인 Makefile 을 링크시켜 실행시키는 일이다.
include src/moduels.mk
include src/apps/platform/saturn6/makefile
===== gp2/src/modules.mk =====
CMN_MODULES1 =
CMN_MODULES2 =
CMN_MODULES3 =
CMN_MODULES = $(CMN_MODULES1) $(CMN_MODULES2) $(CMN_MODULES3)
DRV_DIR = src/drivers
DRV_MODULES = $(call cond_assign, YES, INCLUDE_TU, $(DRV_DIR)/tu/tu.mk,)
...
MW_MODULES = $(call cond_assign, YES, INCLUDE_FE, $(MW_DIR)/fe/fe.mk,)
...
LG_LIB_MODULES=font 관련
UI_MODULES = resource.mk, ui.mk, emanual.mk, mafs.mk, addonhost.mk
ROOT_MODULES =
...
MICOM_MODULES = += $(call cond_assign, YES, INCLUDE_MICOM, $(DRV_DIR)/micom/micom.mk,)
...
PLATFORM_MODULES += $(call cond_assign, YES, INCLUDE_MICOM, $(DRV_DIR)/$(PLATFORM_CHIP)/$(PLATFORM_CHIP).mk,)
----
{{indexmenu>:#1|skipns=/^(wiki|etc|diary|playground)$/ skipfile=/^(todays|about|guestbook)$/ nsort rsort}}
----