Windows 용 Nateon plugin 빌드하기
Windows에서 사용하는 libnateon.dll 은 mingw를 사용해 제작됩니다.
Windows 에서는 cygwin 환경을 사용하여 빌드하고,
Linux 에서는 cross-compile 합니다.
기본적인 사용은 Pidgin 사이트의 해당 섹션을 참고합니다.
http://developer.pidgin.im/wiki/BuildingWinPidgin
Windows 환경
- The easy way에 설명된 대로, cygwin 을 설치하고 Build Environment Fetcher 스크립트를 사용하는 것이 가장 간단합니다.
- nateon plugin 소스를 사용하면 인스톨러 스크립트가 포함되어 있습니다. NSIS 인스톨러가 설치되어 있다면 다음 명령어로 인스톨러를 만들 수 있습니다. 만들어진 인스톨러로 설치하면 libnateon.dll 플러그인과 필요한 pixmap 그림들만 설치됩니다. pidgin 오리지널 패키지기 원래 설치되어 있어야 합니다.
$ make -f Makefile.mingw installer_nateon
Cross compile
- mingw 크로스 컴파일러와 환경을 다운받습니다.
- Ubuntu 는 mingw32 mingw32-binutils mingw32-runtime 패키지를 다음과 같이 설치합니다.
$ sudo apt-get install mingw32 mingw32-binutils mingw32-runtime
- Ubuntu 는 mingw32 mingw32-binutils mingw32-runtime 패키지를 다음과 같이 설치합니다.
- nateon 을 포함한 pidgin 소스를 받습니다. ~/nateon/trunk 에 파일들이 풀렸다고 가정합니다.
- ~/nateon/win32-dev 디렉을 만듭니다. 그리고 그 안에 GTK+ 헤더인 gtk-dev-2.6.10-rev-a.tar.gz 와 libxml2 관련 파일인 libxml2-2.6.24.tar.gz 을 다운받아 압축 풉니다. (linux 패키지 헤더를 사용하려면 /usr 를 include 해야 하는데, 그러면 mingw 헤더와 파일들이 꼬여 컴파일이 되지 않습니다.)
- ~/nateon/trunk/ 안의 local.mak 파일을 알맞게 편집합니다.
- Ubuntu festy 에서는 다음과 같은 설정으로 동작합니다.
CC := /usr/bin/i586-mingw32msvc-cc GMSGFMT := msgfmt MAKENSIS := /usr/bin/makensis PERL := /usr/bin/perl EXTUTILS := /usr/share/perl/5.8/ExtUtils WINDRES := /usr/bin/i586-mingw32msvc-windres STRIP := /usr/bin/i586-mingw32msvc-strip INCLUDE_PATHS := -I/usr/i586-mingw32msvc/include LIB_PATHS := -I/usr/i586-mingw32msvc/lib
- Ubuntu festy 에서는 다음과 같은 설정으로 동작합니다.
- 그리고 ~/nateon/trunk 에서 다음 명령어로 컴파일하면 libpurple/protocols/nateon/libnateon.dll 이 생성됩니다.
$ make -C libpurple/protocols/nateon -f Makefile.mingw
- nsis 로 installer 를 빌드하기 위해서는 nsis 윈도우 배포판의 System.dll 을 /usr/share/nsis/Plugins/ 등의 nsis 플러그인 디렉토리에 복사하셔야 합니다. 인스톨러에서 사용하는 nsis 의 System:: 함수들이 gcc 에서 컴파일되지 않기 때문입니다.
