간단하게 메모만 합니다.
OS X에서는 Crosstool-ng 가 정상적으로 컴파일되지 않습니다. (1.15.2 버전 기준)
sed, binutils, libtool을 별도로(GNU버전) 설치하고, configure 스크립트와 Makefile을 수정해줘야 합니다.
1. 필요한 패키지 설치.(MacPorts 이용)
$ sudo port install gsed binutils libtool
2. Crosstool-ng 다운로드 및 압축해제
이 글을 작성하는 시점에선 1.15.2가 가장 최신 버전입니다.
$ wget http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-1.15.2.tar.bz2
$ tar xjvf crosstool-ng-1.15.2.tar.bz2
$ cd crosstool-ng-1.15.2
3. configure.ac 수정.
configure 스크립트는 configure.ac 파일을 수정하고 autoconf로 재생성합니다.
File: configure.ac (1.15.2 버전 기준 125번째 줄 부터)
ACX_PATH_TOOL_REQ([OBJCOPY], [objcopy])
ACX_PATH_TOOL_REQ([OBJDUMP], [objdump])
ACX_PATH_TOOL_REQ([READELF], [readelf])
굵은 글씨로 표시한 부분을 아래와 같이 수정해 줍니다.
ACX_PATH_TOOL_REQ([OBJDUMP], [objdump gobjdump])
ACX_PATH_TOOL_REQ([READELF], [readelf greadelf])
그리고 bootstrap 스크립트를 실행새 configure 스크립트를 재생성합니다.
bootstrap 스크립트는 autoconf를 실행하는 스크립트입니다.
./bootstrap
4. configure 스크립트 실행
/PATH/TO/INSTALL 은 설치할 디렉토리.
$ ./configure --prefix=/PATH/TO/INSTALL --with-libtool=`which glibtool` --with-libtoolize=`which glibtoolize`
5. Makefile 수정
OS X에 기본으로 설치된 /usr/bin/install 프로그램은 -D 옵션을 지원하지 않습니다.
때문에 -D 옵션을 삭제하고 mkdir -p 명령을 별도로 추가해줍니다.
File: Makefile (1.15.2버전 기준 343번째 줄부터)
KCONFIG_FILES := conf mconf nconf kconfig.mk
install-lib-kconfig: $(DESTDIR)$(libdir) install-lib-main
@echo " INST 'kconfig/'"
@for f in $(KCONFIG_FILES); do \
install -D "kconfig/$${f}" "$(DESTDIR)$(libdir)/kconfig/$${f}"; \
done
위의 붉은 색 -D를 삭제하고 mkdir 명령을 추가해 줍니다.
install-lib-kconfig: $(DESTDIR)$(libdir) install-lib-main
@echo " INST 'kconfig/'"
@mkdir -p "$(DESTDIR)$(libdir)/kconfig"
@for f in $(KCONFIG_FILES); do \
install "kconfig/$${f}" "$(DESTDIR)$(libdir)/kconfig/$${f}"; \
done
6. 빌드하고 설치 완료.
$ make KBUILD_NO_NLS=1
$ sudo make install
KBUILD_NO_NLS=1 옵션은 http://www.crosstool-ng.org/#macos_x 참조.
Recent Comment