====== SCV/OS 메뉴얼- 1.컴파일 ====== SCV/OS 를 분석하는 첫 번째 문서로서 컴파일과 관련한 환경 설정에 대해서 알아본다. ====== 디렉토리 구조 ====== #ls apps Config.in hal io language release service bootloader error include kernel Makefile Rules.mak tool 디렉토리 구조는 다음과 같다. | 이름 | 설명 | | apps | 사용자 애플리케이션 코드 | | bootloader | 부트로더 코드 | | docs | 사용자 메뉴얼문서 | | kernel | 커널 코드 | | hal | CPU CORE 에 관련한 코드 | | dev | 디바이스 드라이버 코드(serial, flash, lcd etc) | | error | 에러처리 관련한 코드 | | release | 최종적인 커널 이미지가 생성되는 디렉토리 | | tool | 컴파일을 하는데 필요한 ncurse 코드 | | language | 기존의 언어에서 구현된 함수 중에 필요한 코드 | | service | 서비스(메모리 할당 etc) 관련 코드 | 파일은 다음과 같다. | 이름 | 설명 | | Config.in | menuconfig 실행시 필요한 메뉴 구성 파일 | | Makefile | 컴파일 시 사용 | | Rules.mak | Makefile 에서 include 함 | ====== 컴파일 모드 ====== 기본적으로 'make menuconfig' 를 이용해서 필요한 커널 모듈을 선택하면 해당하는 파일이 컴파일 되는 구조를 가지고 있다. 그 외에도 여러가지 컴파일 방법을 지원한다. | 명령어 | 설명 | | menuconfig | ncurse 기반의 컴파일 설정 | | config | 각 항목을 일일이 입력 선택하는 컴파일 설정 | | oldconfig | .config 파일을 읽어들여 컴파일 설정 | | randconfig | 모든 항목을 랜덤하게 선택하여 컴파일 설정 | | defconfig | 기본적(default)으로 제공하는 .defconfig 파일을 읽어들여 컴파일 설정 | | allyesconfig | 모든 항목을 yes 로 선택하여 컴파일 설정 | | allnoconfig | 모든 항목을 no 로 선택하여 컴파일 설정 | | clean | 오브젝트 파일(.o, .bin) 과 커널 이미지를 삭제 | | allclean | clean 을 포함하고, ncurse 관련(mconf, conf) 오브젝트 파일 삭제 | | tags | tags 파일 생성 | ---- {{indexmenu>:#1|skipns=/^(wiki|etc|diary|playground)$/ skipfile=/^(todays|about|guestbook)$/ nsort rsort}} ----