[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
m4
는 입력중에 어떤 위치에서던 특정한 파일을 포함할 수 있다.
8.1 파일을 삽입하기 | ||
8.2 삽입할 파일 검색하기 |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
m4
에서 파일을 삽입하는 내장 매크로는 2개가 있다.
include(filename) sinclude(filename) |
둘다 filename의 파일을 읽어들인다. 파일의 끝에 다다랐다면 입력은 이제 이전의 입력파일로 가정된다.
include
와 sinclude
의 확장은 따라서 filename의 속
내용이 된다.
파일을 include
하는 과정에서 파일이 없으면 에러가 생긴다.
에러메시지를 보지 않으려면 sinclude
를 사용하라. 만일 존재한다면
확장되고 그렇지 않으면 아무것도 확장되지 않는다.
include(`no-such-file') ⇒ error-->30.include:2: m4: Cannot open no-such-file: No such file or directory sinclude(`no-such-file') ⇒ |
`incl.m4'가 다음과 같은 내용을 가지고 있다고 가정하자.
Include file start foo Include file end |
보통은 파일을 삽입하는 것은 파일의 속 내용을 현재의 입력 스트림으로 삽입 하는 것이다. 파일의 내용은 읽혀지고 파일내용은 매크로 호출로 확장될 것이다.
define(`foo', `FOO') ⇒ include(`incl.m4') ⇒Include file start ⇒FOO ⇒Include file end ⇒ |
사실, include
와 sinclude
는 파일의 내용으로 확장되는 데,
이것은 보통 파일 전체에서 매크로를 정의하기 위해서 사용한다. 예를들면,
여기에서 `bar'는 `incl.m4'로 확장된다.
define(`bar', include(`incl.m4')) ⇒ This is `bar': >>>bar<<< ⇒This is bar: >>>Include file start ⇒foo ⇒Include file end ⇒<<< |
이러한 include
의 사용은 파일이 인용문자와, 쉼표, 괄호를 포함할 수
있는 만큼 간단치 않다. 때로는 m4가 구문 분석 작업을 하는 데 방해가 될
수도 있는 것 이다.
내장 매크로 include
와 sinclude
는 인자가 있을 때에만 인식된다.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
GNU m4
에서는 현재 디렉토리가 아닌 다른 디렉토리에서 삽입할
파일을 찾는 것을 허용한다.
파일 이름이 절대경로를 포함하지 않고, 현재 작업디렉토리에서 보이지 않는다면, 파일은 특별한 패스를 검색한다. 먼저, 명령행에서 `-I' 옵션으로 기술한 곳을 찾는다. 두 번째로, `M4PATH' 환경변수가 설정되어 있다면 그 순서대로 검색할 것이다. `M4PATH' 의 내용은 콜론으로 구분된 디렉토리 리스트를 포함하는 것이다.
파일 삽입시 자동 검색으로 문제점이 발생한다면, `p' 디버깅 플래그로 이러한 문제점을 억제할 수 있는 도움을 받을 수 있다 (see section 디버깅 출력을 제어하기).
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated by Autobuild on March, 29 2007 using texi2html 1.76.