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,)