[ << ] [ < ] [ 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 on February 24, 2015 using texi2html 5.0.