2012년 10월 28일 일요일

Make의 확장판 Autotoolset


make는 여러파일로 분할된 프로그램을 빌드할 때 사용된다.
리눅스 및 유닉스에서 다양하게 그리고 오래된 툴로 왠만한 사용자는 한번씩 들어보았을 거라 생각된다.

여기서 소개할 것은 Autotoolset이다.
파일이 많아지면 Makefile이 복잡해 지고 이식성을 높이기 위해 Makefile의 업그레이드판인 Autotoolset을 사용한다고 한다.


환경은 우분투 12.04 , Mint linux에서 실행했다.

1. Autotoolset을 설치하기 위해 sudo apt-get install automake 명령으로 설치한다.



2. 단순한 c파일을 만든다.(Hello world를 출력하는 c파일이라 한다.)



3. autoscan 을 입력한다. 그러면 configure.scan파일이 생성된다. 이 파일은 반자동으로 메이크파일과 플랫폼에 따른 매크로를 생성한다. configure.scan파일을 수정한다.


--configure.scan--
  #                                               -*- Autoconf -*-
  # Process this file with autoconf to produce a configure script.

  AC_PREREQ([2.68])
  AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])  
  AC_INIT(hello, 0.1 , kim@gmail.com)
  AC_CONFIG_SRCDIR([hello.c])
  AC_CONFIG_HEADERS([config.h])

  # Checks for programs.
  AC_PROG_CC

  # Checks for libraries.

  # Checks for header files.

  # Checks for typedefs, structures, and compiler characteristics.

  # Checks for library functions.

  AC_OUTPUT(Makefile)



--configure.scan--


이 후 configure.scan파일을 configure.in 로 파일명을 바꾸어 준다.



4. Makefile.am파일을 만든다.
 
   --Makefile.am--
   bin_PROGRAMS  = hello
   hello_SOURCES = hello.c



5. 프로그램에 대한 정보를 기술하는 문서를 든다.
  touch AUTHORS ChangeLog NEWS README
  이 파일이 없으면 에러를 뿜어내니.. 만들도록 하자(자동으로 만들어주지 않는다.)



6. aclocal, autoconf, automake 을 입력한다.




7. 이 후 configure파일이 생성되었을 텐데 이 파일을 실행시키자.
  ./configure




8. 그러면 Makefile이 나올 것이다. 이 파일을 열면 프로그램의 빌드에 필요한 많은 정보를 내포하고 있다.



9. make를 실행하면 hello파일이 생긴것을 확인 할 수 있다. hello파일을 실행시켜 보면 우리가 원하는 결과를 얻을 수 있다.





 

댓글 없음:

댓글 쓰기