[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

17. 조건

Automake는 간단한 조건문을 지원한다.

조건문을 사용하기 전에, configure.in 파일에 AM_CONDITIONAL을 써야 한다. AM_CONDITIONAL 매크로는 두개의 인수가 필요하다.

AM_CONDITIONAL의 첫번째 인수는 조건문의 이름이다. 이 이름은 문자로 시작하고, 문자, 숫자, 그리고 밑줄로만 된 간략한 문자열이어야 한다.

AM_CONDITIONAL의 두번째 인수는 셸의 if 문장에 사용되는 데 적합한 셸 조건문이다. 이 조건은 configure가 실행될때 검사된다.

조건문은 보통 사용자가 configure 스크립트에 넘겨준 옵션에 따라 좌우된다. 사용자가 `--enable-debug' 옵션을 주었을때 참인 조건문을 쓰는 예가 여기 있다.

 
AC_ARG_ENABLE(debug,
[  --enable-debug    Turn on debugging],
[case "${enableval}" in
  yes) debug=true ;;
  no)  debug=false ;;
  *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;;
esac],[debug=false])
AM_CONDITIONAL(DEBUG, test x$debug = xtrue)

여기 `Makefile.am'에 어떻게 이 조건문을 쓰는지 있다:

 
if DEBUG
DBG = debug
else
DBG =
endif
noinst_PROGRAMS = $(DBG)

이 간단한 예는 `EXTRA_PROGRAMS'을 사용해서도 처리할 수 있다 (see section 프로그램을 build하기).

한개의 if문에서 한개의 변수만 테스트할 수 있다. else문은 생략될 수 있다. 조건문은 어떤 깊이로도 둘러쌓일(nexted) 수 있다.

Automake의 조건문은 GNU Make의 조건문과는 다르다는 것에 유의하자. Autoamke 조건문은 configure 시에 `configure' 스크립트에 의해 검사되고, `Makefile.in'에서 `Makefile'로 옮겨질때 영향을 미친다. 조건문은 `configure'에 넘겨진 옵션과 시스템에서 `configure'가 발견한 사실들에 따라 결정된다. GNU Make 조건문은 make시에 검사되고, make 프로그램에 넘겨지거나, `Makefile'에 정의된 변수에 따라 결정된다.

Automake 조건문은 어떤 make 프로그램과도 동작한다.


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Autobuild on March, 29 2007 using texi2html 1.76.