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 파일 생성 |