About Autotools

개요

Autotools를 한마디로 표현하면 리눅스환경에서의 visual studio라고 할 수 있다.cpp와 h파일과 디렉토리들의 상관관계들을 자동으로 판단해서 complie해주는 것이다. 즉 사용자는 Makefile.am 과 초기화를 위한 configure.ac파일만 작성하면 나머지는 macro에 의해 만들어진다.

순서

1. configure.ac 에 Makefile 이 필요로 하는 사항들을 기록한다.

2. Makefile.am 에 이들 가변수를 사용하여 Makefile 의 초안을 작성한다.

3. configure 실행시에 configure.ac 에 지정한 항목들이 check 되면서 Makefile.am 에서 필요한 정보들이 유효한 값들로 치환된다.

4. Makefile.am 이 유효한 값들을 가지면서 Makefile 이 된다.

configure.ac

  • autoconf, automake 의 입력값autoconf 는 이를 받아서 configure 파일을 만든다.automake 는 이를 makefile.am 과 함께 받아 makefile.in 을 만든다.
  • 보통 이미 지정된 macro 를 사용하여 원하는 정보를 얻거나 설정할수있다

Makefile.am

  • automake 의 입력값
  • 기본적인 Makefile 의 틀을 지니고 있지만, configure 에 따라 결정되는 변수들을 사용하고 있다.
  • Makefile.am 은 해당 소스를 컴파일 하고자 하는 위치면 어디든 놓이게 된다.
  • 가장 상위 directory 의 Makefile.am 에는 컴파일할 하위 directory 를 정하게 된다.
  • configrure.ac 에서 정의되고 configure 를 통해 유효값들을 가지게 되는 변수를 가져오기 위해 @variable@ 을 사용한다. _PROGRAMS, _SCRIPTS, _SOURCES 등 지정된 primary 들이 있고 앞에 인스톨될 위치나 프로그램명, 프로그램의 소스등을 지정하게 되어있다.

Process

  • aclocal : configure.ac –> aclocal.m4
  • autoheader : configure.ac + aclocal.m4 –> config.h.in
  • autoconf : configure.ac + aclocal.m4 –> configure
  • automake : configure.ac + aclocal.m4 + Makefile.am –> Makefile.in
  • configure : Makefile.in –> Makefile
입력 명령어 순서

aclocal

autoheader

autoconf

automake –add-missing -copy

./configure

make

make check

make install

더 공부하고싶은 분들을 위해

Autotools & Makefile
——————————————————-
http://wiki.kldp.org/wiki.php/DocbookSgml/Autotools-KLDP
https://wiki.kldp.org/KoreanDoc/html/gcc_and_make/gcc_and_make-2.html#ss2.2
https://minimonk.net/35341:47https://www.dartmouth.edu/~rc/classes/intro_openmp/compile_run.html
https://linuxspot.tistory.com/45#recentTrackback
http://wiki.kldp.org/wiki.php/DocbookSgml/Autotools-KLDP
https://twinw.tistory.com/138
https://wiki.kldp.org/KoreanDoc/html/gcc_and_make/gcc_and_make-2.html#ss2.2
https://minimonk.net/3534
https://stackoverflow.com/questions/9037434/enable-openmp-checks-and-flags-in-autoconf-and-automake
https://yechan821.tistory.com/4?category=786261

Author: rcvlab

RCV연구실 홈페이지 관리자 입니다.

1 thought on “About Autotools

  1. 리눅스환경에서의 visual studio같은 autotools에 대한 설명 잘 들었습니다. GUI하고 debugging측면에서 봤을때, autotools는 어떤가요? 예를들어 break point를 걸 수 있다거나 등등의 기능도 지원하나요?

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다