커널 컴파일시 ARCH, MAKE 은 어디에 정의되어 있나요?
글쓴이: linux_chozza / 작성시간: 월, 2005/04/04 - 10:26오전
안녕하세요. 궁금해서 글올립니다.
커널 컴파일시에 MAKE, ARCH 등과 같이
$(MAKE) 등으로 사용되던데요. 이게 미리 정의되어 있는거 같은데 어디에 정의되어 있는지 모르겠어요.
$(CROSS_COMPILE), $(ARCH) 라는 것도 사용되던데.. 어디에서 정의되어 있는지 모르겠네요.T_T
Forums:
$(MAKE) 변수는 Make 프로그램 자체에 내장된 변수로Makef
$(MAKE) 변수는 Make 프로그램 자체에 내장된 변수로
Makefile 에서 make 프로그램을 재귀적으로 호출할 때 사용됩니다.
나머지 변수들은 최상위 Makefile 내에 설정되어 있습니다.
$(ARCH) 변수는 커널을 빌드할 타겟 시스템의 아키텍처를 명시하는 것으로
사용자가 명령행에서 직접 값을 지정하지 않으면 uname -m 명령을 이용하여 현재 시스템의 아키텍처로 설정됩니다.
2.6 커널에서는 UML (User-Mode Linux) 를 고려하여 $(SUBARCH) 라는 변수를 새로 도입하였습니다.
$(CROSS_COMPILE) 변수는 현재 시스템의 아키텍처와 다른 아키텍처에 대한 커널을 빌드하기 위해
크로스 컴파일을 하는 경우 호스트 프로그램에서 사용하는 것과는 다른 툴체인을 사용하기 위해
명령에 앞에 들어가는 접두어를 가리키기 위한 변수입니다.
기본값으로는 아무것도 설정되어 있지 않습니다.
ARM 계열의 프로세서를 위한 툴체인은 일반적으로 arm-elf-gcc 와 같은 형태이기 때문에
이 경우 명령행에서 아래와 같은 형태로 빌드하게 됩니다.
make ARCH=arm CROSS_COMPILE=arm-elf-
댓글 달기