우선, autotools 의 따라하기는 아래와 같다.
순서를 안지켜도 상관은 없지만..
configure 먼저 생성하고 make 쪽을 생성한는게 좀 나이스 해 보인다.
  1. autoscan 으로 configure.scan 파일 생성하기
  2. configure.scan 을 configure.ac 로 이름바꾸기 (configure.in 은 더이상쓰지 않겠다!!)
  3. configure.ac 에 AM_INIT_AUTOMAKE, AC_CONFIG_FILES([Makefile]) 을 추가하기
  4. aclocal 로 m4 매크로 포함시켜주기
  5. autoheader 로 config.h.in 생성하기
  6. autoconf 로 configure 생성하기
  7. Makefie.am 파일 생성하기
  8. automake --copy --add-missing --foreign 으로 Makefile.in 생성하기
  9. configure 떄려서 Makefile 와 config.h 생성하기

사실위에건 에러 안나게 한방에 진행되는 나이스인경우고,
순서를 안지키게되면, configure.ac 를 수정할때 aclocal  이라던지 autoconf 등등을 실행
시켜줘야한다.
즉, 안되면 이것저것 다시 다 때리면 되는 경우가 많다.
#
글을 쓴 목적은 automake 가 AM_CONFIG_HEADERS 를 찾는 경우가있다.
실제 autoscan 으로 scan 파일을 만들면 AC_CONFIG_HEADER 을 디폴트로 던져준다.
즉 automake 와 다른 auto 유틸의 버전이 맞지 않아서 매크로가 똑같지 않아서인 듯하다.
요즘 우분투니 이런식으로 해결할수있다.
automake 버전이 1.4 대인 경우 주로 발생하는것같다.
apt-get install automake1.9 ; apt-get remove automake1.4 이걸 써서 해결했다.
혹시 같은 문제로 고민하는 사람들에게 도움이 되었으면한다.
#
Makefile.am 에 library 생성을 넣게 되면, configure.ac 에 AC_PROG_LIBTOOL 을 넣어줘야한다.
libtool 을 쓰지 않을 것이라면, AC_PROG_RANLIB 로도 library 생성은 가능하다.
libtool 을 쓴다면 libtoolize --automake --copy --force 를써서 la 를 사용하는 libtool 환경을
만들어 주자.
libtools 를 쓸것이라면, Makefile.am 에는 lib_LIBRARIES 매크로로 la 사용임을 알려주어야
automake 시 에러가 뜨지 않는다.

Posted by jinushun