2015-07-22

Eclipse CDT Autotools 설정

Eclipse CDT Autotools 설정






1. Autotools?

요즘에는 그렇지도 않고 rpm, yast, apt등 훌륭한 배포 도구 들이 많이 존재하지만 ,
정말 옛날에는 Linux에서 다운받은  Open source 프로젝트나, 작성한 gcc 프로그램을 compile하려면 make file이라는 것을 만들어야 했다. 그리고 이게 꽤 어려웠던 기억이 있다.
물론 지금은 전혀 기억이 안남.

다시 프로그램에 손을 대려다보니 Eclipse에 익숙해져서 도저히 메모장 코딩은 못하겠어서 찾으니 eclipse환경에 CDT 플러그인 에 autotools 로 compiler 및 환경 연결을 시켜주면 지가 알아서 make file 들도 만들고 해서 하나의 build System을 완성 시켜준다.

그리고 Source Package를 Build할 System이 Build에 필요한 Library나 Tool을 가지고 있는 지를 Check하여 없을 경우에는 미리 경고를 표시할 수 있습니다. 또는 Source Code와 연계하여서 OS에 따라 제공하지 않는 Method를 따로 구현해서 제공할 수도 있습니다.

이 외에도 Autotools를 사용하면 여러가지 이득을 볼 수 있습니다. 물론 Autotools를 사용하여 Source Package에 Build System을 구축해 놓으면 다른 사람들에게 전문적인 Project인 것처럼 보이게 하는 효과도 있습니

2. 구성

Autotools는 Automake, Autoconf, Libtool 등의 Package로 구성되어 있으며 각 Package는 다음과 같은 기능을 합니다.
  • Automake : Source Code를 Build하기 위해 사용되는 make를 위해서 여러 OS에 Porting할 수 있는 Makefile을 자동으로 생성합니다. 생성을 위해서는 Makefile.am을 작성해야 합니다.
  • Autoconf : 각 OS의 환경을 Check하고 Build에 필요한 환경 File을 생성해 주는 configure Script를 자동으로 생성합니다. 생성을 위해서는 configure.ac를 작성해야 합니다.
  • Libtool : Source Code의 최종 결과물이 실행 File이 아닌 Shared Library나 Static Library를 만드는데 사용하는 Tool입니다. Automake와 Autoconf와 같이 사용될 경우, configure.ac와 Makefile.am을 통해서 간접적으로 사용됩니다.

< 그림 1>
Source Code에 Autotools로 Build System을 구축하는 방법은 위의 그림과 같은 순서로 이루어 집니다. 약간 복잡해 보이지만 다음과 같이 설명할 수 있습니다.


  1. Makefile.am : automake를 실행하기 위해서 Makefile.am을 만듭니다.
  2. autoscan : Source code가 있는 Directory에서 autoscan을 실행하여 configure.ac를 자동으로 생성합니다.
  3. aclocal : configure.ac에 지정한 Macro에 대한 정보를 가지고 m4 macro를 생성합니다.
  4. autoheader : configure.ac에 지정한 정보를 가지고 config.h.in을 생성합니다. 이것은 나중에 config.h를 만드는 기초자료로 사용되며, Source code에서 config.h를 include하여 해당 Symbol의 상태를 이용하여 System dependent한 구현들을 상황에 맞게 처리할 수 있게 됩니다.
  5. automake : Makefile.am과 configure.ac의 정보를 가지고 Makefile.in을 생성합니다.
  6. autoconf : aclocal.m4와 configure.ac를 가지고 configure Script를 자동으로 생성합니다.
  7. configure : System을 Check하고 Build를 하기 위한 정보를 수집하여 저장하고 make를 위한 Makefile을 생성합니다.
  8. make : configure를 통해 생성된 Makefile을 가지고 Buld를 수행합니다.

3. 설치

구성환경: Ubuntu Desktop 12.x  + Eclipse juno (4.2)

1) Eclipse 설치


2) Eclipse CDT Plugin 설치

eclipse -> help ->  Install New Software 를 통해 설치

  • Autotools support for CDT (Incubation)
  • C/C++ Development Tools
  • C/C++ Library API Documentation Hover Help (Incubation)

3) Autotools 설치


  # sudo apt-get install build-essential autoconf automake libtool









reference

No comments:

Post a Comment