2009년 9월 25일 금요일

INSTALL.CROSS in Freetype Library

이 문서는 유닉스 호환 시스템상에서 FreeType 라이브러리를 교차생성(Cross-Build)하는 방법을 설명하고 있다. 예를 들면, FreeBSD/i386 시스템 상에서 Linux/MIPS에서 사용할 이미지들을 만든다던가 하는 것들 말이다. 이 문서를 읽기 전에 필요한 도구와 기본적이 생성 절차에 대해 알아 보기 위해서 INSTALL.UNIX문서를 살펴 보기 바란다.

1. 필요한 도구들
-----------------

유닉스 시스템상에서 FreeType 라이브러리를 생성하기 위해선 GNU Make 는 3.80이거나 그 이상의 버전이어야 한다. INSTALL.UNIX문서는 설치된 make의 버전을 체크하는 힌트를 포함하고 있다.

대상시스템을 교차생성하기 위해선 GNU C 컴파일러가 필요하다. 현재, 비 GNU 크로스 컴파일러를 사용하는 방법은 시도되지 않았다. 크로스 컴파일러는 대상 시스템에 대한 정보를 담고 있는 앞첨자를 가지고 설치 되어 있을 것이다. 예를 들면, 여러분의 생성-시스템이 FreeBSD/i386이고 대상-시스템이 Linux/MIPS라고 한다면, 크로스 컴파일러는 'mips-ip22-linux-elf-gcc'라는 이름을 갖고 설치 되어있을 것이다.

자체생성을 위한 C 컴파일러도 교차생성 과정동안 실행 되어야 하는 도구들을 만들기 위해서 필요하다. 비 GNU 자체-컴파일러도 수용가능하지만, 그러한 과정은 아직 시도되지 않았다.


2. 설 정
----------------

2.1. 생성 그리고 대상 시스템

교차생성을 위한 설정을 하기 위해서 '--host='옵션과 '--build='옵션을 configure 스크립트에 넘겨주어야 한다. 예를 들면, 여러분의 생성시스템이 FreeBSD/i386이고 대상시스템이 Linux/MIPS라면

./configure \
--build=i386-unknown-freebsd \
--host=mips-ip22-linux-elf \
[other options]

'--host='이 실제 생성과정이 일어 나는 시스템이 아니라 생성된 이미지가 실행될 시스템을 가리키는 것을 명심해야 한다. 오래된 버전의 GNU autoconf은 '--host='와 '--target'을 사용하였다. 하지만, 지금은 잘못된 표현으로 동작하지 않는다. 마찬가지로 명확하게 CC라는 환경 변수로 다음과 같은

env CC=mips-ip22-linux-gcc ./configure

또는,

env CC=/usr/local/mips-ip22-linux/bin/gcc ./configure

표현은 둘다 동작하지 않는다. 이런 방식은 크로스-C(생성된)와 원래의 C(생성에 사용될) 컴파일러를 찾을때 'configuration' 스크립트를 혼동시킨다.


2.2. FreeType2 설치하는데 필요한 prefix

`--prefix='을 적절히 샛팅하는 것은 중요하다. FreeType2를 설치하기 위한 prefix는 freetype-config 스크립트와 freetype2.pc같은 설정파일에 쓰여진다.

생성된 FreeType2 라이브러리는 교차생성시스템의 한부분으로 사용된다면, prefix는 자체생성시스템의 설치 위치와는 다르게 되어야 한다. 예를 들면, '--prefix=/usr/local'를 갖는 설정은 자체시스템에서 실행 될 수 없는 이미지를 자체시스템이 폭넓게 사용하는 '/usr/local' 디렉토리에 설치한다. 이것은 FreeType2를 사용하는 모든 응용프로그램의 설정에 혼돈을 초래한다. 대신, 교차생성을 자체시스템이 사용하는 디렉토리와 분리된 다른곳을 지정하는 prefix로 사용하라. 예를 들면, '--prefix=/usr/local/mips-ip22-linux/'.

다른 편으로, 생성된 FreeType2가 대상시스템의 한 부분으로 사용된다면, 설치될 prefix는 대상 시스템의 파일 시스템 구조를 참조하여 설정해야한다.


3. 생성 명령어
-------------------

설정이 성공적으로 끝났다면, GNU make 를 불러서 FreeType2를 만든다. 그냥 다음과 같이 치면 된다.

make

또는,

gmake

GNU make 실행 파일의 실제적인 이름에 따라 다른다.


4. 설 치
---------------

다음과 같이 치자.

make install

통상 '--prefix'옵션의 값으로 설정된 디렉토리에 FreeType2가 설치될 것이다.

2.2 문단에서 말했듯이 FreeType2는 때때로 교차생성을 하는 시스템에 설치되지 말고, 대상시스템의 시스템 디렉토리에 설치되도록 설정되기도 한다. 이러한 경우에 make의 변수값 'DESTDIR'을 설치할 root 디렉토리를 변경하는데 유용하다. 예를 들면, 다음과 같이

make DESTDIR=/mnt/target_system_root/ install

실행 한후에, 생성된 FreeType2 라이브러리 파일들은 '/mnt/target_system_root//lib' 디렉토리에 설치 되어진다.


5. 해야할일들
-------------

Cygwin(또는 MSys)와 Unix사이의 크로스-생성은 시도해보아야 한다.


----------------------------------------------------------------------

Copyright 2006, 2008 by suzuki toshiya
David Turner, Robert Wilhelm, and Werner Lemberg.


This file is part of the FreeType project, and may only be used,
modified, and distributed under the terms of the FreeType project
license, LICENSE.TXT. By continuing to use, modify, or distribute
this file you indicate that you have read the license and understand
and accept it fully.


--- end of INSTALL.CROSS ---

댓글 없음:

댓글 쓰기