NateOn - 네이트온 프로토콜 플러그인 프로젝트

Windows 용 Nateon plugin 빌드하기

Windows에서 사용하는 libnateon.dll 은 mingw를 사용해 제작됩니다.

Windows 에서는 cygwin 환경을 사용하여 빌드하고,

Linux 에서는 cross-compile 합니다.

기본적인 사용은 Pidgin 사이트의 해당 섹션을 참고합니다.

http://developer.pidgin.im/wiki/BuildingWinPidgin

Windows 환경

  • 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
      
  • 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
      
  • 그리고 ~/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 에서 컴파일되지 않기 때문입니다.