영어프랑스어스페인어

Ad


온웍스 파비콘

bmake - 클라우드에서의 온라인

Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터를 통해 OnWorks 무료 호스팅 제공업체에서 bmake를 실행하세요.

이것은 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 제공업체에서 실행할 수 있는 bmake 명령입니다.

프로그램:

이름


비메이크 — 프로그램 종속성을 유지합니다.

개요


비메이크 [-BeikNnqrstWwX] [-C 예배 규칙서] [-D 변수] [-d 플래그] [-f 메이크 파일] [-I 예배 규칙서]
[-J 사설] [-j 최대_작업] [-m 예배 규칙서] [-T 파일] [-V 변수] [변수=값]
[목표 ...]

기술


비메이크 다른 프로그램의 유지 관리를 단순화하도록 설계된 프로그램입니다. 그 입력은
프로그램 및 기타 파일이 의존하는 파일에 대한 사양 목록입니다. 그렇지 않은 경우 -f
메이크 파일 makefile 옵션이 제공됩니다. 비메이크 열어보려고 합니다'메이크 파일'다음'Makefile'에서
사양을 찾으려면. 만약 파일이 '.의존하다'가 존재하면 읽혀집니다(참조 mkdep(삼)).

이 매뉴얼 페이지는 참조 문서로만 제작되었습니다. 좀 더 자세한 설명을 원하시면
of 비메이크 makefile에 대해서는 다음을 참조하십시오. PMake - A 튜토리얼.

비메이크 내용 앞에 추가됩니다. 메이크플래그 환경 변수를 명령줄에 추가
구문 분석하기 전에 인수를 사용합니다.

옵션은 다음과 같습니다

-B 명령당 단일 쉘을 실행하고 다음을 수행하여 이전 버전과 호환되도록 노력하십시오.
종속성 라인의 소스를 순서대로 만드는 명령을 실행합니다.

-C 예배 규칙서
로 변경 예배 규칙서 makefile을 읽거나 다른 작업을 수행하기 전에. 만약에
여러 -C 옵션이 지정되면 각각은 이전 옵션과 관련하여 해석됩니다.
-C / -C 에 해당하는 -C / 기타.

-D 변수
밝히다 변수 글로벌 맥락에서 1이 됩니다.

-d [-]플래그
디버깅을 활성화하고 디버깅의 어느 부분을 지정합니다. 비메이크 디버깅을 인쇄하는 것입니다
정보. 플래그 앞에 '-'가 붙지 않는 한 플래그는 메이크플래그
환경 변수이며 모든 하위 make 프로세스에서 처리됩니다. 기본적으로,
디버깅 정보는 표준 오류로 인쇄되지만 이는 다음을 사용하여 변경할 수 있습니다.
전에, F 디버깅 플래그. 디버깅 출력은 항상 버퍼링되지 않습니다. 게다가 만약에
디버깅이 활성화되었지만 디버깅 출력이 표준 출력으로 전달되지 않은 경우
표준 출력은 라인 버퍼링됩니다. 깃발 다음 중 하나 이상입니다.

A 가능한 모든 디버깅 정보를 인쇄합니다. 모두 지정하는 것과 같습니다.
디버깅 플래그.

a 아카이브 검색 및 캐싱에 대한 디버깅 정보를 인쇄합니다.

C 현재 작업 디렉터리에 대한 디버깅 정보를 인쇄합니다.

c 조건부 평가에 대한 디버깅 정보를 인쇄합니다.

d 디렉터리 검색 및 캐싱에 대한 디버깅 정보를 인쇄합니다.

e 실패한 명령 및 대상에 대한 디버깅 정보를 인쇄합니다.

F[+]파일 이름
디버깅 출력이 기록되는 위치를 지정합니다. 이것이 마지막 플래그여야 합니다.
인수의 나머지 부분을 소비하기 때문입니다. 캐릭터의 경우
'F' 플래그가 '+'인 직후에 파일이 다음 위치에서 열립니다.
추가 모드; 그렇지 않으면 파일을 덮어쓰게 됩니다. 파일명이 다음과 같은 경우
'stdout' 또는 'stderr'이면 디버깅 출력이 표준에 기록됩니다.
출력 또는 표준 오류 출력 파일 설명자(그리고 '+'
옵션은 효과가 없습니다). 그렇지 않으면 출력은 명명된 이름에 기록됩니다.
파일. 파일 이름이 '.%d'로 끝나면 '%d'가 pid로 대체됩니다.

f 루프 평가에 대한 디버깅 정보를 인쇄합니다.

g1 아무것도 만들기 전에 입력 그래프를 인쇄하십시오.

g2 모든 작업을 마친 후 또는 오류로 종료하기 전에 입력 그래프를 인쇄합니다.

g3 오류 발생 시 종료하기 전에 입력 그래프를 인쇄합니다.

j 여러 셸 실행에 대한 디버깅 정보를 인쇄합니다.

l 접두사가 붙었는지 여부에 관계없이 Makefile의 인쇄 명령
'@' 또는 기타 "quiet" 플래그를 사용합니다. "시끄러운" 행동이라고도 합니다.

M 대상에 대한 "메타" 모드 결정에 대한 디버깅 정보를 인쇄합니다.

m 수정을 포함하여 대상 만들기에 대한 디버깅 정보를 인쇄합니다.
날짜.

n 명령을 실행할 때 생성된 임시 명령 스크립트를 삭제하지 마세요.
이러한 임시 스크립트는 다음이 참조하는 디렉토리에 생성됩니다.
TMPDIR 환경 변수 또는 / TMP TMPDIR이 설정되지 않았거나 다음으로 설정된 경우
빈 문자열. 임시 스크립트는 다음에 의해 생성됩니다. mkstemp(3) 그리고
양식의 이름 makeXXXXXX. 주의사항: TMPDIR 또는 여러 파일을 생성할 수 있습니다.
/ TMP이므로 주의해서 사용하세요.

p makefile 구문 분석에 대한 디버깅 정보를 인쇄합니다.

s 접미사 변환 규칙에 대한 디버깅 정보를 인쇄합니다.

t 대상 목록 유지 관리에 대한 디버깅 정보를 인쇄합니다.

V 강제 -V 변수의 원시 값을 인쇄하는 옵션입니다.

v 변수 할당에 대한 디버깅 정보를 인쇄합니다.

x 다음을 사용하여 쉘 명령을 실행하십시오. -x 실제 명령은 그대로 인쇄됩니다.
실행.

-e 환경 변수가 makefile 내의 매크로 할당을 재정의하도록 지정합니다.

-f 메이크 파일
기본값 ' 대신 읽을 메이크파일을 지정하세요.메이크 파일'. 만약에 메이크 파일 '-'
표준 입력을 읽습니다. 여러 메이크파일을 지정할 수 있으며 다음에서 읽을 수 있습니다.
주문 지정.

-I 예배 규칙서
메이크파일과 포함된 메이크파일을 검색할 디렉터리를 지정합니다. 그만큼
시스템 makefile 디렉토리(또는 디렉토리, -m 옵션)이 자동으로
이 목록의 일부로 포함되었습니다.

-i makefile에서 XNUMX이 아닌 쉘 명령 종료를 무시합니다. 지정하는 것과 동일
'-makefile의 각 명령줄 앞에 '를 입력합니다.

-J 사설
이 옵션은 지원 사용자가 지정해야 합니다.

j 옵션이 재귀 빌드에서 사용 중이면 이 옵션은 make에 의해 전달됩니다.
자식은 빌드의 모든 make 프로세스가 협력하여 방지하도록 허용합니다.
시스템 과부하.

-j 최대_작업
최대 작업 수를 지정합니다. 비메이크 언제든지 실행 중일 수 있습니다. 그만큼
값이 저장됩니다 .MAKE.JOBS. 호환 모드를 끕니다. B 깃발은
또한 지정됩니다. 호환 모드가 꺼져 있으면 다음과 관련된 모든 명령이
대상은 기존 쉘 호출과 달리 단일 쉘 호출로 실행됩니다.
줄당 쉘 호출. 이로 인해 변경되는 기존 스크립트가 손상될 수 있습니다.
각 명령 호출 시 디렉터리를 삭제하고 새로운 디렉터리로 시작할 것으로 예상합니다.
환경은 다음 줄에 있습니다. 오히려 스크립트를 수정하는 것이 더 효율적입니다.
이전 버전과의 호환성을 켜는 것보다.

-k 오류가 발생한 후에도 처리를 계속합니다. 단, 오류가 발생하는 대상에서만 처리하세요.
생성 시 오류가 발생한 대상에 의존하지 않습니다.

-m 예배 규칙서
sys.mk 및 makefile을 통해 포함된 파일을 검색할 디렉터리를 지정합니다.
파일⟩ 스타일의 include 문입니다. 그만큼 -m 옵션을 여러 번 사용하여
검색 경로. 이 경로는 기본 시스템 포함 경로를 재정의합니다.
/usr/공유/mk. 또한 시스템 포함 경로가 검색에 추가됩니다.
"에 사용되는 경로파일" 스타일 include 문(참조: -I 선택권).

파일이나 디렉터리 이름이 -m 인수(또는 MAKESYSPATH 환경
변수)는 ".../" 문자열로 시작한 다음 비메이크 지정된 것을 검색합니다
인수 문자열의 나머지 부분에 명명된 파일 또는 디렉터리입니다. 검색
Makefile의 현재 디렉토리에서 시작하여 위쪽으로 작업합니다.
파일 시스템의 루트. 검색이 성공하면 결과 디렉터리는
의 ".../" 사양을 대체합니다. -m 논쟁. 사용하는 경우 이 기능을 사용하면
비메이크 현재 소스 트리에서 사용자 정의된 sys.mk 파일을 쉽게 검색합니다(예:
".../mk/sys.mk"를 인수로 사용).

-n 실행되었을 명령을 표시하지만 실제로 실행하지는 않습니다.
대상이 .MAKE 특수 소스에 의존하지 않는 한(아래 참조)

-N 실행되었을 명령을 표시하지만 실제로는 실행하지 않습니다.
그들의; 아래로 내려가지 않고 최상위 makefile을 디버깅하는 데 유용합니다.
하위 디렉토리.

-q 어떤 명령도 실행하지 마십시오. 그러나 지정된 대상이 최신이고 업데이트된 경우 0을 종료하십시오.
1, 그렇지 않은 경우.

-r 시스템 makefile에 지정된 내장 규칙을 사용하지 마십시오.

-s 명령이 실행될 때 어떤 명령도 에코하지 마십시오. '를 지정하는 것과 같습니다.@' 전에
makefile의 각 명령줄.

-T 추적 파일
와 함께 사용할 때 -j 플래그를 지정하고 추적 레코드를 추가합니다. 추적 파일 각 작업이 시작될 때마다
완료되었습니다.

-t makefile에 지정된 대로 대상을 다시 빌드하는 대신 대상을 생성하거나 업데이트하십시오.
최신 상태로 보이도록 수정 시간입니다.

-V 변수
인쇄 비메이크가치에 대한 의 생각 변수, 글로벌 맥락에서. 빌드하지 않음
어떤 목표. 이 옵션의 여러 인스턴스를 지정할 수 있습니다. 변수는
각 null 또는 정의되지 않은 변수에 대해 빈 줄을 사용하여 한 줄에 하나씩 인쇄됩니다. 만약에
변수 '$'가 포함되어 있으면 인쇄하기 전에 값이 확장됩니다.

-W makefile을 구문 분석하는 동안 경고를 오류로 처리합니다.

-w 디렉토리 메시지 입력 및 출력, 사전 및 사후 처리를 인쇄합니다.

-X 명령줄에서 전달된 변수를 환경에 개별적으로 내보내지 마세요.
명령줄에 전달된 변수는 여전히 다음을 통해 내보내집니다. 메이크플래그
환경 변수. 이 옵션은 제한이 작은 시스템에서 유용할 수 있습니다.
명령 인수의 크기에 대해.

변수=값
변수의 값을 설정 변수가치. 일반적으로 모든 값은
명령줄은 환경의 하위 제품으로도 내보내집니다. 그만큼 -X 플래그
이 동작을 비활성화합니다. 변수 할당은 POSIX 옵션을 따라야 합니다.
호환성이 있지만 순서는 적용되지 않습니다.

makefile에는 XNUMX가지 유형의 라인이 있습니다: 파일 종속성 사양,
쉘 명령, 변수 할당, include 문, 조건 지시문, for 루프,
및 의견.

일반적으로 줄은 백슬래시로 끝나서 한 줄에서 다음 줄로 계속될 수 있습니다.
('\'). 다음 줄의 후행 개행 문자와 초기 공백은 다음과 같습니다.
하나의 공간으로 압축되었습니다.

FILE 의존 스펙


종속성 라인은 하나 이상의 대상, 연산자 및 XNUMX개 이상의 소스로 구성됩니다.
이는 대상이 소스에 "의존"하는 관계를 형성하며 일반적으로
그들로부터 만들어졌습니다. 대상과 소스 간의 정확한 관계가 결정됩니다.
이를 구분하는 연산자에 의해. 세 가지 연산자는 다음과 같습니다.

: 수정 시간이 다른 수정 시간보다 짧은 경우 대상은 오래된 것으로 간주됩니다.
그 출처의. 다음과 같은 경우 대상의 소스가 종속성 라인에 누적됩니다.
연산자가 사용됩니다. 다음과 같은 경우 대상이 제거됩니다. 비메이크 중단됩니다.

! 대상은 항상 다시 생성되지만 모든 소스를 검사하고 다시 생성할 때까지는 그렇지 않습니다.
필요에 따라 생성되었습니다. 다음과 같은 경우 대상의 소스가 종속성 라인에 누적됩니다.
연산자가 사용됩니다. 다음과 같은 경우 대상이 제거됩니다. 비메이크 중단됩니다.

:: 소스를 지정하지 않으면 대상이 항상 다시 생성됩니다. 그렇지 않으면 목표는
소스 중 하나가 해당 소스보다 최근에 수정된 경우 오래된 것으로 간주됩니다.
표적. 다음과 같은 경우 대상의 소스는 종속성 라인에 누적되지 않습니다.
연산자가 사용됩니다. 다음과 같은 경우 대상이 제거되지 않습니다. 비메이크 중단됩니다.

대상과 소스에는 셸 와일드카드 값 '?', '*', '[]' 및 '{}'가 포함될 수 있습니다. 그만큼
값 '?', '*' 및 '[]'는 대상의 최종 구성요소의 일부로만 사용될 수 있습니다.
소스이며 기존 파일을 설명하는 데 사용해야 합니다. '{}' 값이 반드시 다음과 같을 필요는 없습니다.
기존 파일을 설명하는 데 사용됩니다. 확장은 알파벳 순서가 아닌 디렉토리 순서입니다.
쉘에서 완료되었습니다.

SHELL 명령


각 대상에는 일반적으로 사용되는 하나 이상의 셸 명령 줄이 연결되어 있을 수 있습니다.
대상을 생성합니다. 이 스크립트의 각 줄은 절대로 필요한 것 앞에 탭이 와야 합니다. (을 위한
역사적인 이유로 공백은 허용되지 않습니다.) 대상은 많은 종속성에 나타날 수 있습니다.
원하는 경우 행에 따라 기본적으로 이러한 규칙 중 하나만 뒤에 생성 스크립트가 올 수 있습니다.
'::' 연산자가 사용되지만 모든 규칙에는 스크립트가 포함될 수 있으며 스크립트는
찾은 순서대로 실행됩니다.

각 줄은 줄의 끝이
백슬래시('\') 이 경우 해당 줄과 다음 줄이 결합됩니다. 첫 번째 문자의 경우
명령의 조합은 '@''+'또는'-', 명령은 특별히 취급됩니다. ㅏ
'@' 명령이 실행되기 전에 에코되지 않도록 합니다. ㅏ '+' 명령을 실행합니다.
때에도 처형된다 -n 주어진다. 이는 .MAKE 특수 명령의 효과와 유사합니다.
단, 효과는 스크립트의 한 줄로 제한될 수 있습니다. ㅏ '-'에서
호환 모드에서는 명령줄의 XNUMX이 아닌 종료 상태가 무시됩니다.

인셀덤 공식 판매점인 비메이크 작업 모드에서 실행됩니다. -j 최대_작업, 대상에 대한 전체 스크립트가 다음에 공급됩니다.
쉘의 단일 인스턴스. 호환성(비작업) 모드에서 각 명령은 다음과 같은 방식으로 실행됩니다.
별도의 프로세스. 명령에 셸 메타 문자가 포함된 경우
('#=|^(){};&<>*?[]:$`\\n') 셸로 전달됩니다. 그렇지 않으면 비메이크 시도할 것이다
직접 실행. 한 줄이 '로 시작하는 경우-' 그리고 쉘에 ErrCtl이 활성화되어 있고 실패했습니다.
명령줄의 명령줄은 호환 모드에서처럼 무시됩니다. 그렇지 않으면 '-'에 영향을 미친다.
전체 직업; 스크립트는 실패한 첫 번째 명령줄에서 중지되지만 대상은
실패한 것으로 간주되지 않습니다.

Makefile은 모드가 다음과 같이 작성되어야 합니다. 비메이크 작업은 변경되지 않습니다
행동. 예를 들어 잠재적으로 "cd" 또는 "chdir"을 사용해야 하는 모든 명령은
후속 명령에 대한 디렉터리 변경은 실행되도록 괄호 안에 넣어야 합니다.
서브쉘에서. 하나의 쉘을 강제로 사용하려면 줄바꿈을 피하여
전체 스크립트 하나의 명령. 예를 들어:

회피-chdir-부작용:
@echo `pwd`에서 $@ 빌드
@(cd ${.CURDIR} && ${MAKE} $@)
@echo `pwd`로 돌아옴

모드에 관계없이 하나의 쉘을 보장하십시오:
@echo`pwd`에 $@ 빌딩; \
(cd ${.CURDIR} && ${MAKE} $@); \
echo `pwd`로 돌아옴

이후 비메이크 의지 chdir(2) '에.OBJDIR' 대상을 실행하기 전에 각 하위 프로세스
현재 작업 디렉토리로 시작합니다.

변하기 쉬운 과제


make의 변수는 셸의 변수와 매우 유사하며 전통적으로 모든 변수로 구성됩니다.
대문자.

변하기 쉬운 할당 수정
변수에 값을 할당하는 데 사용할 수 있는 XNUMX가지 연산자는 다음과 같습니다.

= 변수에 값을 할당합니다. 이전 값은 재정의됩니다.

+= 변수의 현재 값에 값을 추가합니다.

?= 아직 정의되지 않은 경우 변수에 값을 할당합니다.

:= 확장을 통해 할당합니다. 즉, 변수에 할당하기 전에 값을 확장합니다.
일반적으로 변수가 참조될 때까지 확장은 수행되지 않습니다. 주의사항: 참고자료
정의되지 않은 변수는 지원 퍼지는. 변수가 있을 때 문제가 발생할 수 있습니다.
수정자가 사용됩니다.

!= 값을 확장하고 실행을 위해 셸에 전달하고 결과를
변하기 쉬운. 결과의 모든 줄 바꿈은 공백으로 대체됩니다.

할당되기 전의 공백 가치 제거되었습니다. 값이 추가되는 경우
변수의 이전 내용과 추가된 내용 사이에 단일 공백이 삽입됩니다.
값.

변수 이름을 중괄호('{}') 또는 중괄호로 묶어 변수를 확장합니다.
괄호('()') 앞에 달러 기호('$')를 붙입니다. 변수 이름에 다음이 포함된 경우
문자 하나만 있으면 주변 중괄호나 괄호는 필요하지 않습니다. 이 더 짧은
양식은 권장하지 않습니다.

변수 이름에 달러가 포함되어 있으면 이름 자체가 먼저 확장됩니다. 이를 통해
거의 임의의 변수 이름이지만 달러, 중괄호, 괄호 또는
공백은 피하는 것이 가장 좋습니다!

변수 확장 결과에 달러 기호('$')가 포함된 경우 문자열이 확장됩니다.
또.

변수 대체는 변수가 어디에 있는지에 따라 세 가지 별개의 시간에 발생합니다.
사용 중입니다.

1. 라인을 읽으면 종속 라인의 변수가 확장됩니다.

2. 쉘 명령이 실행되면 쉘 명령의 변수가 확장됩니다.

3. ".for" 루프 인덱스 변수는 각 루프 반복에서 확장됩니다. 그 외 참고하세요
변수는 루프 내부에서 확장되지 않으므로 다음 예제 코드는 다음과 같습니다.

.1 2 3의 나를 위해
a+= ${i}
j= ${i}
b+= ${j}
.endfor

모든 :
@에코 ${a}
@에코 ${b}

인쇄됩니다 :

+ 1 2 3
+ 3 3 3

루프가 실행된 후 ${a}에는 "1 2 3"이 포함되지만 ${b}에는 "${j}가 포함됩니다.
${j} ${j}"는 루프가 완료된 후 ${j}에 "3"이 포함되므로 "3 3 3"으로 확장됩니다.

변하기 쉬운 수업
네 가지 변수 클래스(우선순위가 높아지는 순서대로)는 다음과 같습니다.

환경 변수
다음의 일부로 정의된 변수 비메이크의 환경.

전역 변수
makefile 또는 포함된 makefile에 정의된 변수입니다.

명령줄 변수
명령줄의 일부로 정의된 변수입니다.

지역 변수
특정 대상에 대해 구체적으로 정의된 변수입니다.

지역 변수는 모두 내장되어 있으며 해당 값은 대상마다 마술처럼 다릅니다. 그것
현재는 새로운 지역 변수를 정의하는 것이 불가능합니다. XNUMX개의 지역 변수는 다음과 같습니다.
다음과 같습니다 :

.ALLSRC 이 대상의 모든 소스 목록입니다. 또한 ~으로 알려진 '>'.

.보관소 아카이브 파일의 이름입니다. 또한 ~으로 알려진 '!'.

.IMPSRC 접미사 변환 규칙에서 소스의 이름/경로
대상은 변환됩니다("묵시적" 소스). 또한 ~으로 알려진 '<'. 그것
명시적인 규칙에 정의되어 있지 않습니다.

.회원 아카이브 회원의 이름 또한 ~으로 알려진 '%'.

.OODATE 오래된 것으로 간주된 이 대상의 소스 목록입니다. ~으로 알려져있다
같이 '?'.

.접두사 접미사 없이 파일 부분만 포함하는 대상의 파일 접두사
또는 이전 디렉토리 구성 요소; 또한 ~으로 알려진 '*'. 접미사는 다음과 같아야 합니다.
다음과 같이 선언된 알려진 접미사 중 하나 .접미사 아니면 그렇지 않을 것이다
인식.

.표적 대상의 이름 또한 ~으로 알려진 '@'.

더 짧은 형식('>''!''<''%''?''*','@')는 뒤로 허용됩니다.
과거 makefile 및 레거시 POSIX make와의 호환성은 권장되지 않습니다.

구두점 바로 뒤에 'D' 또는 'F'가 오는 이러한 변수의 변형, 예:
'$(@디)'는 ':H' 및 ':T' 수정자를 사용하는 것과 동일한 레거시 형식입니다. 이러한 양식은
AT&T System V UNIX makefile 및 POSIX와의 호환성을 위해 허용되지만 허용되지는 않습니다.
좋습니다.

지역 변수 중 XNUMX개는 확장되므로 종속성 라인의 소스에서 사용될 수 있습니다.
라인의 각 대상에 대해 적절한 값으로 설정됩니다. 이들 변수는 '.표적''.접두사'
'.보관소','.회원'.

추가 내장 변수
또한, 비메이크 다음 변수를 설정하거나 알고 있습니다.

$ 단일 달러 기호 '$', 즉 '$$'는 단일 달러 기호로 확장됩니다.

.모든 대상 Makefile에서 발견된 모든 대상의 목록입니다. 동안 평가한다면
Makefile 구문 분석은 지금까지 발견된 대상만 나열합니다.

.CURDIR 디렉토리 경로 비메이크 처형되었다. 설명을 참조하세요
자세한 내용은 'PWD'를 참조하세요.

.INCLUDEDFROMDIR
이 Makefile이 포함된 파일의 디렉터리입니다.

.INCLUDEDFROM파일
이 Makefile이 포함된 파일의 파일 이름입니다.

MAKE 그 이름을 비메이크 (로 실행되었습니다.인수[0]). 호환성을 위해 비메이크
또한 세트 .만들다 같은 값으로. 사용하기 가장 좋은 변수는
환경 변수 MAKE는 다른 버전과 더 잘 호환되기 때문입니다.
of 비메이크 동일한 이름을 가진 특수 대상과 혼동될 수 없습니다.

.MAKE.DEPENDFILE
makefile의 이름을 지정합니다(기본값은 '.의존하다') 생성된 종속성은
읽어보십시오.

.MAKE.EXPAND_VARIABLES
기본 동작을 제어하는 ​​부울입니다. -V 옵션을 선택합니다.

.제작.수출됨 내보낸 변수 목록 비메이크.

.MAKE.JOBS 에 대한 주장 -j 옵션을 선택합니다.

.MAKE.JOB.프리픽스
If 비메이크 와 함께 실행됩니다 j 그런 다음 각 대상에 대한 출력 앞에 토큰이 붙습니다.
'--- target ---' 첫 번째 부분은 다음을 통해 제어할 수 있습니다.
.MAKE.JOB.프리픽스. 면 .MAKE.JOB.프리픽스 비어 있으면 토큰이 인쇄되지 않습니다.
예: .MAKE.JOB.PREFIX=${.newline}---${.MAKE:T}[${.MAKE.PID}]
'---make[1234] target ---'과 같은 토큰을 생성하여 더 쉽게 추적할 수 있습니다.
병렬성 수준이 달성되었습니다.

MAKEFLAGS 환경 변수 'MAKEFLAGS'에는 다음과 같은 내용이 포함될 수 있습니다.
에 지정된 비메이크의 명령줄입니다. 다음에 명시된 모든 것 비메이크님의 명령
행은 'MAKEFLAGS' 변수에 추가되며 이 변수는
모든 프로그램을 위한 환경 비메이크 실행합니다.

.메이크.레벨 재귀 깊이 비메이크. 초기 인스턴스 비메이크 0이 될 것이고,
증가된 값은 다음 사용자가 볼 수 있도록 환경에 입력됩니다.
세대. 이를 통해 다음과 같은 테스트를 수행할 수 있습니다. .if ${.MAKE.LEVEL} == 0 보호
초기 인스턴스에서만 평가되어야 하는 것 비메이크.

.MAKE.MAKEFILE_PREFERENCE
메이크파일 이름의 정렬된 목록(기본값은 '메이크 파일''Makefile') 저것
비메이크 찾아볼 것입니다.

.MAKE.MAKEFILES
읽은 makefile 목록 비메이크, 이는 추적에 유용합니다.
의존성. 각 메이크파일은 개수에 상관없이 한 번만 기록됩니다.
여러 번 읽었습니다.

.메이크.모드 모든 makefile을 읽은 후 처리됩니다. 모드에 영향을 줄 수 있습니다. 비메이크 실행
in. 여기에는 여러 키워드가 포함될 수 있습니다.

동료 처럼 -B, 놓는다 비메이크 "호환" 모드로 들어갑니다.

메타 퍼츠 비메이크 메타 파일이 생성되는 "메타" 모드로
각 대상은 명령 실행, 생성된 출력 및
if filemon(4)는 다음과 같은 시스템 호출을 사용할 수 있습니다.
관심 비메이크. 캡처된 출력은 다음과 같은 경우에 매우 유용할 수 있습니다.
오류 진단.

커디르알았어= bf 일반적으로 비메이크 '에 .meta 파일을 생성하지 않습니다..CURDIR'. 이것
설정으로 재정의할 수 있습니다. bf 나타내는 값으로
참된.

환경 디버깅을 위해 환경을 포함하는 것이 유용할 수 있습니다.
.meta 파일.

말 수가 많은 "메타" 모드인 경우, 구축 중인 대상에 대한 단서를 인쇄합니다.
이는 빌드가 자동으로 실행되는 경우 유용합니다. 그만큼
메시지는 다음 값을 인쇄했습니다. .MAKE.META.접두사.

무시-cmd 일부 makefile에는 단순히 안정적이지 않은 명령이 있습니다. 이것
키워드를 사용하면 해당 키워드가 무시되는지 여부를 결정할 수 있습니다.
"메타" 모드에서는 대상이 오래되었습니다. 또한보십시오 .NOMETA_CMP.

침묵= bf If bf True이면 .meta 파일이 생성되면 대상을 표시합니다.
.조용한.

.MAKE.META.BAILIWICK
"메타" 모드에서는 디렉터리와 일치하는 접두사 목록을 제공합니다.
의해 제어 비메이크. 외부에서 생성된 파일인 경우 .OBJDIR 비자 면제 프로그램에 해당하는 국가의 시민권을 가지고 있지만
해당 베일리윅이 누락된 경우 현재 목표는 범위를 벗어난 것으로 간주됩니다.
날짜입니다.

.MAKE.META.생성됨
"메타" 모드에서 이 변수에는 업데이트된 모든 메타 파일 목록이 포함됩니다.
비어 있지 않으면 다음 처리를 트리거하는 데 사용될 수 있습니다. .MAKE.META.FILES.

.MAKE.META.FILES
"메타" 모드에서 이 변수에는 사용된 모든 메타 파일 목록이 포함됩니다.
(업데이트 여부). 이 목록은 메타 파일을 처리하는 데 사용할 수 있습니다.
종속성 정보를 추출합니다.

.MAKE.META.IGNORE_PATHS
무시해야 하는 경로 접두사 목록을 제공합니다. 왜냐하면
내용은 시간이 지남에 따라 변경될 것으로 예상됩니다. 기본 목록에는 다음이 포함됩니다: '/ dev
/ 기타 / proc / TMP / var / 실행 / var / tmp'

.MAKE.META.접두사
"meta verbose"에서 업데이트된 각 메타 파일에 대해 인쇄되는 메시지를 정의합니다.
방법. 기본값은 다음과 같습니다.
${.TARGET:H:tA}/${.TARGET:T} 구축

.메이크오버라이드 이 변수는 할당된 변수의 이름을 기록하는 데 사용됩니다.
명령줄에서 'MAKEFLAGS'의 일부로 내보낼 수 있습니다. 이것
'에 빈 값을 할당하여 동작을 비활성화할 수 있습니다..메이크오버라이드'
메이크파일 내에서. 다음을 통해 makefile에서 추가 변수를 내보낼 수 있습니다.
'에 자신의 이름을 추가.메이크오버라이드'. 'MAKEFLAGS'가 다시 수출됩니다.
언제든지 '.메이크오버라이드'가 수정되었습니다.

.MAKE.PATH_FILEMON
If 비메이크 로 지어졌다 filemon(4) 지원, 이는 다음의 경로로 설정됩니다.
장치 노드. 이를 통해 makefile이 이 지원을 테스트할 수 있습니다.

.MAKE.PID 프로세스 ID 비메이크.

.MAKE.PPID 상위 프로세스 ID 비메이크.

.MAKE.SAVE_DOLLARS
값은 수행할 때 '$$'가 보존되는지 여부를 제어하는 ​​부울이어야 합니다.
':=' 할당. 이전 버전과의 호환성을 위해 기본값은 false입니다. 세트
다른 제품과의 호환성을 위해 사실입니다. false로 설정하면 '$$'는
일반 평가 규칙에 따라 '$'입니다.

MAKE_PRINT_VAR_ON_ERROR
인셀덤 공식 판매점인 비메이크 오류로 인해 중지되면 이름과 값이 인쇄됩니다.
'.CURDIR'에 이름이 지정된 모든 변수의 값은 물론
'MAKE_PRINT_VAR_ON_ERROR'.

.newline 이 변수에는 단순히 개행 문자가 값으로 할당됩니다. 이것
다음을 사용하여 확장을 허용합니다. :@ 반복 사이에 개행 문자를 넣는 수정자
공백이 아닌 루프의 형태입니다. 예를 들어, 인쇄
'MAKE_PRINT_VAR_ON_ERROR'는 다음과 같이 할 수 있다
${MAKE_PRINT_VAR_ON_ERROR:@v@$v='${$v}'${.newline}@}.

.OBJDIR 대상이 빌드된 디렉터리의 경로입니다. 그 가치는
노력해서 결정 chdir(2) 다음 디렉토리에 순서대로
첫 번째 일치 사용:

1. ${MAKEOBJDIRPREFIX}${.CURDIR}

(환경이나 명령에 'MAKEOBJDIRPREFIX'가 설정된 경우에만 해당)
선.)

2. ${MAKEOBJDIR}

(환경이나 명령에 'MAKEOBJDIR'이 설정된 경우에만 해당)
선.)

3. ${.CURDIR}/obj.${기계}

4. ${.CURDIR}/obj

5. /usr/obj/${.CURDIR}

6. ${.CURDIR}

사용되기 전의 값에 대해 변수 확장이 이루어지므로
다음과 같은 표현
${.CURDIR:S,^/ usr / src,/var/obj,}
사용될 수있다. 이는 'MAKEOBJDIR'에 특히 유용합니다.

'.OBJDIR'는 특수 대상 '을 통해 makefile에서 수정될 수 있습니다..OBJDIR'.
모든 상황에서, 비메이크 의지 chdir(2) 지정된 디렉토리가 존재하는 경우,
그리고 '를 설정하세요..OBJDIR' 및 'PWD'는 대상을 실행하기 전에 해당 디렉터리에 저장됩니다.

.PARSEDIR 현재 ' 디렉토리의 경로Makefile'를 분석하고 있습니다.

.PARSEFILE 현재 '의 기본 이름Makefile'를 분석하고 있습니다. 이 변수와
'.PARSEDIR'는 둘 다 '메이크 파일'를 분석하고 있습니다. 만약에
현재 값을 유지하려면 다음을 사용하여 변수에 할당하세요.
확장 할당: (':=').

.길 디렉토리 목록을 나타내는 변수 비메이크 검색할 것이다
파일용. 검색 목록은 '대상'을 사용하여 업데이트되어야 합니다..길'
변수보다는요.

PWD 현재 디렉터리에 대한 대체 경로입니다. 비메이크 일반적으로 '를 설정합니다..CURDIR~까지
에 의해 주어진 정식 경로 getcwd(삼). 그러나 환경변수의 경우
'PWD'가 설정되고 현재 디렉터리에 대한 경로가 제공됩니다. 비메이크 세트
'.CURDIR'를 'PWD' 값으로 변경합니다. 이 동작은 다음과 같은 경우 비활성화됩니다.
'MAKEOBJDIRPREFIX'가 설정되었거나 'MAKEOBJDIR'에 변수 변환이 포함되어 있습니다.
'PWD'는 '값으로 설정됩니다..OBJDIR' 모든 프로그램에 대해 비메이크
실행합니다.

.TARGETS 명령줄에 명시적으로 지정된 대상 목록(있는 경우).

VPATH 콜론으로 구분된(":") 디렉토리 목록 비메이크 파일을 검색합니다.
이 변수는 이전 make 프로그램과의 호환성을 위해서만 지원됩니다.
'.길' 대신에.

변하기 쉬운 수정
변수 확장은 변수의 각 단어를 선택하거나 수정하도록 수정될 수 있습니다(여기서
"단어"는 공백으로 구분된 문자 시퀀스입니다. 변수의 일반적인 형식
확장은 다음과 같습니다.

${변수[:수정자[:...]]}

각 수정자는 콜론으로 시작하며 백슬래시('\')로 이스케이프할 수 있습니다.

수정자 세트는 다음과 같이 변수를 통해 지정할 수 있습니다.

modifier_variable=수정자[:...]
${변수:${modifier_variable}[:...]}

이 경우 modifier_variable의 첫 번째 수정자는 콜론으로 시작하지 않습니다.
참조 변수에 나타나야 합니다. 다음의 수정자 중 하나라도 있는 경우
modifier_variable에는 달러 기호('$')가 포함되어 있습니다. 조기에 발생하지 않도록 하려면 이를 두 배로 늘려야 합니다.
확장.

지원되는 수정자는 다음과 같습니다.

:E 변수의 각 단어를 해당 접미사로 바꿉니다.

:H 변수의 각 단어를 마지막 구성 요소를 제외한 모든 단어로 바꿉니다.

:M무늬
일치하는 단어만 선택하세요. 무늬. 표준 쉘 와일드카드 문자
('*', '?', '[]')를 사용할 수 있습니다. 와일드카드 문자는 다음을 사용하여 이스케이프할 수 있습니다.
백슬래시('\'). 값이 단어로 분할되고 일치되는 방식의 결과로
그런 다음 합류하면 다음과 같은 구성이 됩니다.
${VAR:M*}
단어 간 간격을 정규화하고 모든 선행 및 후행 공백을 제거합니다.
여러 개의 연속 공백을 단일 공백으로 변환합니다.

:N무늬
이는 '와 동일하다.:M'이지만 일치하지 않는 모든 단어를 선택합니다. 무늬.

:O 변수의 모든 단어를 알파벳순으로 정렬합니다. 단어를 역순으로 정렬하려면
':O:[-1..1]' 수식어 조합.

:황소 변수의 단어를 무작위로 추출합니다. 추천할 때마다 결과가 달라집니다
수정된 변수에; 확장과 함께 할당을 사용합니다(':=') 그런 것을 방지하기 위해
행동. 예를 들어,

목록= 우노 듀 트레 콰트로
RANDOM_LIST= ${LIST:Ox}
STATIC_RANDOM_LIST:= ${LIST:Ox}

모든 :
@echo "${RANDOM_LIST}"
@echo "${RANDOM_LIST}"
@echo "${STATIC_RANDOM_LIST}"
@echo "${STATIC_RANDOM_LIST}"
다음과 유사한 출력이 생성될 수 있습니다.

콰트로 듀 트레 우노
트레 듀에 콰트로 우노
듀노 콰트로 트레
듀노 콰트로 트레

:Q 안전하게 전달될 수 있도록 변수의 모든 쉘 메타 문자를 인용합니다.
재귀 호출을 통해 비메이크.

:R 변수의 각 단어를 접미사를 제외한 모든 단어로 바꿉니다.

:gmtime
값은 다음에 대한 형식 문자열입니다. strftime(3) 현재를 사용하여 지엠타임(3).

:해시시
값의 32비트 해시를 계산하고 이를 XNUMX진수로 인코딩합니다.

:현지 시각
값은 다음에 대한 형식 문자열입니다. strftime(3) 현재를 사용하여 현지 시각(3).

:고마워 다음을 사용하여 변수를 절대 경로로 변환하려고 시도합니다. 진짜 경로(3), 이것이 실패하면,
값은 변하지 않습니다.

:tl 변수를 소문자로 변환합니다.

:tsc
변수의 단어는 일반적으로 확장 시 공백으로 구분됩니다. 이 수정자
구분 기호를 문자로 설정합니다. c. 면 c 생략되면 구분 기호가 사용되지 않습니다.
일반적인 이스케이프(XNUMX진수 코드 포함)는 예상대로 작동합니다.

:투 변수를 대문자로 변환합니다.

:tW 값이 단일 단어로 처리됩니다(흰색이 포함되어 있을 수 있음).
공간). 또한보십시오 ':[*]'.

:tw 값이 공백으로 구분된 일련의 단어로 처리됩니다. 보다
또한 ':[@]'.

:S/old_string/new_string/[1gW]
첫 번째 항목 수정 old_string 변수 값에서 다음으로 대체합니다.
new_string. 패턴의 마지막 슬래시에 'g'가 추가되면,
각 단어가 교체됩니다. 패턴의 마지막 슬래시에 '1'이 추가된 경우에만
첫 번째 단어가 영향을 받습니다. 패턴의 마지막 슬래시에 'W'가 추가되면
그러면 값은 단일 단어로 처리됩니다(공백이 포함될 수 있음).
If old_string 캐럿('^')으로 시작합니다. old_string 시작 부분에 고정되어 있습니다.
각 단어. 만약에 old_string 달러 기호('$')로 끝나는 경우 끝에 고정됩니다.
각 단어. 내부에 new_string, 앰퍼샌드('&')는 다음으로 대체됩니다. old_string (없이
'^' 또는 '$'). 모든 문자를 해당 부분의 구분 기호로 사용할 수 있습니다.
수정자 문자열. 앵커링, 앰퍼샌드 및 구분 기호 문자는 다음을 사용하여 이스케이프할 수 있습니다.
백슬래시('\').

변수 확장은 두 내부 모두에서 일반적인 방식으로 발생합니다. old_stringnew_string
백슬래시가 달러의 팽창을 방지하기 위해 사용된다는 점을 제외하면
기호('$')는 평소처럼 달러 기호 앞에 붙지 않습니다.

:C/무늬/바꿔 놓음/[1gW]
XNUMXD덴탈의 :C 수정자는 :S 이전 문자열과 새 문자열을 제외하고 수정자
단순한 문자열이 아닌 확장된 정규 표현식입니다(참조: 정규식(3))
무늬ed(1) 스타일 문자열 바꿔 놓음. 일반적으로 첫 번째 발생
패턴의 무늬 값의 각 단어는 다음으로 대체됩니다. 바꿔 놓음. 그만큼
'1' 수정자는 대체가 최대 한 단어에 적용되도록 합니다. 'g' 수식어
검색 패턴의 많은 인스턴스에 대체가 적용됩니다. 무늬 as
그것이 발견된 단어 또는 단어들에서 발생합니다. 'W' 수정자는 값을 다음과 같이 만듭니다.
단일 단어로 처리됩니다(공백이 포함될 수 있음). '1'과
'g'는 직교합니다. 전자는 여러 단어가 잠재적으로 사용될 수 있는지 여부를 지정합니다.
영향을 받으며, 후자는 각 내에서 여러 대체가 잠재적으로 발생할 수 있는지 여부입니다.
영향을 받은 단어.

에 대해서는 :S 수정자, 무늬바꿔 놓음 변수 확장이 적용됩니다.
정규식으로 구문 분석되기 전에.

:T 변수의 각 단어를 마지막 구성 요소로 바꿉니다.

:u 인접한 중복 단어 제거(예: 유니크(삼)).

:?true_string:false_string
변수 이름(해당 값이 아님)이 .if 조건식으로 구문 분석될 때
true로 평가되면 해당 값으로 반환됩니다. true_string그렇지 않으면 다음을 반환합니다.
false_string. 변수명을 표현식으로 사용하므로 :? 첫 번째 여야합니다
변수 이름 자체 뒤의 수정자 - 물론 일반적으로 다음을 포함합니다.
변수 확장. 일반적인 오류는 다음과 같은 표현식을 사용하려고 하는 것입니다.
${NUMBERS:M42:?일치:아니요}
실제로 정의된 테스트(NUMBERS), "42"와 일치하는 단어가 있는지 확인하려면 다음을 수행해야 합니다.
다음과 같이 사용하십시오.
${"${NUMBERS:M42}" != "":?match:no}.

:old_string=new_string
이는 AT&T System V UNIX 스타일 변수 대체입니다. 마지막이겠지
수정자가 지정되었습니다. 만약에 old_string or new_string 일치하는 패턴을 포함하지 않습니다.
문자 % 그런 다음 각 단어의 끝에 고정되어 있다고 가정합니다.
접미사 또는 전체 단어가 대체될 수 있습니다. 그렇지 않으면 % 의 하위 문자열입니다 old_string
에서 교체할 예정 new_string.

변수 확장은 두 내부 모두에서 일반적인 방식으로 발생합니다. old_stringnew_string
백슬래시가 달러의 팽창을 방지하기 위해 사용된다는 점을 제외하면
기호('$')는 평소처럼 달러 기호 앞에 붙지 않습니다.

:@임시직@@
이것은 OSF 개발 환경(ODE) 제작의 루프 확장 메커니즘입니다.
같지 않은 .을위한 참조 시 루프 확장이 발생합니다. 양수인 임시직 단어 하나하나에
변수에서 평가하고 . ODE 규칙은 다음과 같습니다. 임시직 시작해야하고
마침표로 끝납니다. 예를 들어.
${링크:@.LINK.@${LN} ${TARGET} ${.LINK.}@}

그러나 단일 문자 변수가 더 읽기 쉬운 경우가 많습니다.
${MAKE_PRINT_VAR_ON_ERROR:@v@$v='${$v}'${.newline}@}

:U뉴발
변수가 정의되지 않은 경우 뉴발 값입니다. 변수가 정의된 경우
기존 값이 반환됩니다. 이것은 또 다른 ODE 만들기 기능입니다. 설정하는데 편리해요
예를 들어 대상별 CFLAGS는 다음과 같습니다.
${_${.TARGET:T}_CFLAGS:U${DEF_CFLAGS}}
변수가 정의되지 않은 경우에만 값이 필요한 경우 다음을 사용하십시오.
${VAR:D:유뉴발}

:D뉴발
변수가 정의된 경우 뉴발 값입니다.

:L 변수의 이름은 값입니다.

:P 변수와 이름이 같은 노드의 경로가 값입니다. 그런 것이 없다면
노드가 존재하거나 해당 경로가 null인 경우 변수 이름이 사용됩니다. 위해서는
이 수정자가 작동하려면 이름(노드)이 최소한 Rhs에 나타나야 합니다.
의존.

:!cmd를!
실행의 출력 cmd를 값입니다.

:쉿 변수가 비어 있지 않으면 명령으로 실행되고 출력은 새 변수가 됩니다.
값.

::=하위 버전
변수에 값이 할당됩니다. 하위 버전 교체 후. 이 수정자와 그
변형은 다음과 같은 경우 변수를 설정하려는 모호한 상황에서 유용합니다.
쉘 명령이 구문 분석되고 있습니다. 이러한 할당 수정자는 항상 아무것도 확장하지 않습니다.
따라서 규칙 라인에 그 자체로 나타나는 경우 유지해야 할 항목이 선행되어야 합니다.
비메이크 행복.

'::'는 AT&T System V UNIX 스타일과의 잘못된 일치를 방지하는 데 도움이 됩니다. := 수정자와
대체는 항상 발생하기 때문에 ::= 형태가 모호하게 적절합니다.

::?=하위 버전
~에 관해서는 ::= 하지만 변수에 아직 값이 없는 경우에만 해당됩니다.

::+=하위 버전
추가 하위 버전 변수에.

::!=cmd를
출력 할당 cmd를 변수에.

:[범위]
값에서 하나 이상의 단어를 선택하거나 해당 값과 관련된 다른 작업을 수행합니다.
값을 단어로 나누는 방식입니다.

일반적으로 값은 공백으로 구분된 일련의 단어로 처리됩니다. 일부
수정자는 이 동작을 억제하여 값이 단일 단어로 처리되도록 합니다.
(공백이 포함되어 있을 수 있음) 빈 값 또는 다음으로 구성된 값
공백으로만 구성된 경우 단일 단어로 처리됩니다. '의 목적을 위해:[]'
수정자, 단어는 양의 정수를 사용하여 앞쪽으로 색인화됩니다(여기서 색인 1
첫 번째 단어를 나타냄), 음의 정수를 사용하여 거꾸로(인덱스 -1)
마지막 단어를 나타냅니다).

XNUMXD덴탈의 범위 변수 확장이 적용되고 확장된 결과는 다음과 같습니다.
다음과 같이 해석됩니다.

색인 값에서 단일 단어를 선택합니다.

스타트..end
다음에서 모든 단어를 선택합니다. 스타트end, 포함한. 예를 들어, ':[2..-1]'를 선택합니다
두 번째 단어부터 마지막 ​​단어까지의 모든 단어. 만약에 스타트 보다 큰 end,
그러면 단어가 역순으로 출력됩니다. 예를 들어, ':[-1..1]' 모두 선택
마지막부터 처음까지의 단어.

* 후속 수정자가 값을 단일 단어로 처리하도록 합니다(아마도
공백이 포함되어 있음). Bourne의 "$*" 효과와 유사
껍질.

0 '과 같은 의미:[*]'.

@ 후속 수정자가 값을 구분된 일련의 단어로 처리하도록 합니다.
공백으로. Bourne 쉘의 "$@" 효과와 유사합니다.

# 값의 단어 수를 반환합니다.

포함 진술서, 조건부 위한 루프


Makefile 포함, 조건부 구조 및 C 프로그래밍을 연상시키는 for 루프
언어가 제공됩니다 비메이크. 이러한 모든 구조는 다음으로 시작하는 줄로 식별됩니다.
단일 점('.') 문자입니다. 파일은 다음 중 하나에 포함됩니다. .포함하다파일⟩ 또는 .포함하다
"파일". 꺾쇠 괄호나 큰따옴표 사이의 변수는 확장되어 파일을 형성합니다.
이름. 꺾쇠 괄호를 사용하는 경우 포함된 makefile이 시스템에 있을 것으로 예상됩니다.
메이크파일 디렉토리. 큰따옴표를 사용하는 경우 포함 makefile의 디렉토리 및
다음을 사용하여 지정된 디렉토리 -I 옵션은 시스템 makefile 디렉토리 이전에 검색됩니다.
다른 버전과의 호환성을 위해 비메이크 '파일 포함 ...'도 허용됩니다.

include 문이 다음과 같이 작성된 경우 .-포함하다 또는 .포함 그런 다음 오류 찾기 및/또는
포함 파일을 여는 것은 무시됩니다.

include 문이 다음과 같이 작성된 경우 .포함 찾기 및/또는 열기 오류뿐만 아니라
포함 파일은 무시되지만 포함 파일 내의 오래된 종속성은 무시됩니다.
처럼 .MAKE.DEPENDFILE.

조건식 앞에는 줄의 첫 번째 문자로 점 하나가 옵니다.
가능한 조건은 다음과 같습니다.

.오류 메시지
메시지는 makefile 이름과 줄 번호와 함께 인쇄됩니다.
비메이크 종료됩니다.

.내보내다 변수 ...
지정된 전역 변수를 내보냅니다. 변수 목록이 제공되지 않으면 모든 전역 변수
내부 변수('.'로 시작하는 변수)를 제외하고는 내보내집니다. 이것은 아니다
에 의해 영향을받는 -X 플래그이므로 주의해서 사용해야 합니다. 호환성을 위해
other 비메이크 프로그램 '변수=값 내보내기'도 허용됩니다.

변수 이름 추가 .제작.수출됨 변수를 내보내는 것과 같습니다.

.export-env 변수 ...
변수가 추가되지 않는다는 점을 제외하면 '.export'와 동일합니다. .제작.수출됨.
이를 통해 사용된 값과 다른 환경으로 값을 내보낼 수 있습니다.
by 비메이크 내부적으로.

.export-literal 변수 ...
값의 변수가 확장되지 않는다는 점을 제외하면 '.export-env'와 동일합니다.

.INFO 메시지
메시지는 makefile 이름 및 줄 번호와 함께 인쇄됩니다.

.undef 변수
지정된 전역 변수를 정의 취소합니다. 전역 변수만 정의 취소할 수 있습니다.

.내보내기 취소 변수 ...
'.export'의 반대입니다. 지정된 전역 변수 에서 제거됩니다
.제작.수출됨. 변수 목록이 제공되지 않으면 모든 전역 변수의 내보내기가 취소되고
.제작.수출됨 삭제됨

.unexport-env
이전에 내보낸 모든 전역 항목의 내보내기를 취소하고 다음에서 상속된 환경을 지웁니다.
부모. 이 작업으로 인해 원래 환경의 메모리 누수가 발생하므로
아껴서 사용해야 합니다. 테스트 대상 .메이크.레벨 0이면 의미가 있습니다. 또한
상위 환경에서 시작된 모든 변수는
원하는 경우 명시적으로 보존됩니다. 예를 들어:

.if ${.MAKE.LEVEL} == 0
경로 := ${PATH}
.unexport-env
.내보내기 경로
.endif

최소한의 유용성을 갖는 'PATH'만 포함하는 환경이 생성됩니다.
환경. 실제로 '.MAKE.LEVEL'도 새로운 환경으로 밀려날 예정입니다.

.경고 메시지
'라는 접두어가 붙은 메시지경고:'는 makefile의 이름과 함께 인쇄됩니다.
그리고 줄 번호.

.만약에 [!]표현 [연산자 표현 ...]
표현식의 값을 테스트합니다.

.ifdef [!]변수 [연산자 변수 ...]
변수의 값을 테스트합니다.

.ifndef [!]변수 [연산자 변수 ...]
변수의 값을 테스트합니다.

.ifmake [!]목표 [연산자 목표 ...]
빌드 중인 대상을 테스트합니다.

.ifnmake [!] 목표 [연산자 목표 ...]
빌드 중인 대상을 테스트합니다.

.또 다른 마지막 조건부의 의미를 반대로 바꿉니다.

.elif [!] 표현 [연산자 표현 ...]
'의 조합.또 다른' 다음에 '.만약에'.

.elifdef [!]변수 [연산자 변수 ...]
'의 조합.또 다른' 다음에 '.ifdef'.

.elifndef [!]변수 [연산자 변수 ...]
'의 조합.또 다른' 다음에 '.ifndef'.

.elifmake [!]목표 [연산자 목표 ...]
'의 조합.또 다른' 다음에 '.ifmake'.

.elifnmake [!]목표 [연산자 목표 ...]
'의 조합.또 다른' 다음에 '.ifnmake'.

.endif 조건문 본문을 종료합니다.

XNUMXD덴탈의 연산자 다음 중 하나일 수 있습니다.

|| 논리적 OR.

&& 논리 AND; "||"보다 우선순위가 높습니다.

C에서와 같이, 비메이크 조건을 결정하는 데 필요한 만큼만 조건을 평가합니다.
값. 평가 순서를 변경하려면 괄호를 사용할 수 있습니다. 부울 연산자 '!'
전체 조건을 논리적으로 부정하는 데 사용될 수 있습니다. 것보다 우선순위가 높습니다.
'&&'.

의 가치 표현 다음 중 하나일 수 있습니다.

한정된 변수 이름을 인수로 취하고 변수가 변경된 경우 참으로 평가됩니다.
한정된.

확인 대상 이름을 인수로 취하고 대상이 다음과 같은 경우 참으로 평가됩니다.
의 일부로 지정됨 비메이크의 명령줄이거나 기본 대상으로 선언되었습니다.
(암시적이든 명시적이든 다음을 참조하세요. .기본)를 포함하는 줄 앞에
가정 어구.

가능한 수정자와 함께 변수를 취하고 확장이 있는 경우 true로 평가합니다.
변수의 결과는 빈 문자열이 됩니다.

존재 파일 이름을 인수로 사용하고 파일이 존재하면 true로 평가됩니다. 그만큼
시스템 검색 경로에서 파일이 검색됩니다(참조: .길).

목표 인수로 대상 이름을 취하고 대상이 다음과 같은 경우 참으로 평가됩니다.
한정된.

명령
인수로 대상 이름을 취하고 대상이 다음과 같은 경우 참으로 평가됩니다.
정의되어 있으며 이와 관련된 명령이 있습니다.

표현 산술 또는 문자열 비교일 수도 있습니다. 변수 확장이 수행됩니다.
비교의 양쪽에서 적분 값이 비교됩니다. 값은
앞에 0x가 있으면 XNUMX진수로 해석되고, 그렇지 않으면 XNUMX진수입니다. XNUMX진수
지원되지 않습니다. 표준 C 관계 연산자가 모두 지원됩니다. 이후라면
변수 확장('의 왼쪽 또는 오른쪽)=='또는'!=' 연산자는
정수 값이면 확장된 변수 간에 문자열 비교가 수행됩니다. 그렇지 않은 경우
관계 연산자가 주어지면 확장된 변수를 비교하는 것으로 가정합니다.
문자열 비교의 경우 0 또는 빈 문자열에 대해.

인셀덤 공식 판매점인 비메이크 이러한 조건식 중 하나를 평가하고 (흰색-
공백으로 구분됨) 인식할 수 없는 단어인 경우 "make" 또는 "definition" 표현은 다음과 같습니다.
조건문의 형태에 따라 적용됩니다. 형태가 '인 경우.ifdef'
'.ifndef'또는'.만약에' '정의된' 표현이 적용됩니다. 마찬가지로, 형식이 다음과 같은 경우
'.ifmake'또는'.ifnmake, 전에,' make' 표현이 적용되었습니다.

조건이 true로 평가되면 makefile의 구문 분석이 이전과 같이 계속됩니다. 그 경우
false로 평가되면 다음 줄을 건너뜁니다. 두 경우 모두 이는 다음 시점까지 계속됩니다.
'.또 다른'또는'.endif'가 발견됩니다.

For 루프는 일반적으로 파일 목록에 규칙 집합을 적용하는 데 사용됩니다. a의 구문
for 루프는 다음과 같습니다.

.을위한 변수 [변수 ...] in 표현
⟨메이크 규칙⟩
.endfor

for 이후 표현 평가되면 단어로 분할됩니다. 각 반복에서
루프에서는 하나의 단어가 선택되어 각 단어에 할당됩니다. 변수, 순서대로, 그리고 이것들은 변수 are
으로 대체 규칙을 만들다 for 루프의 본문 내부. 단어 수는 반드시
심지어 나오다; 즉, 세 개의 반복 변수가 있는 경우 제공되는 단어 수
XNUMX의 배수여야 합니다.

의견


주석은 쉘 명령줄을 제외한 모든 곳에서 해시('#') 문자로 시작됩니다.
이스케이프되지 않은 새 줄의 끝까지 계속하십시오.

스페셜 SOURCES (속성)


.EXEC Target은 결코 최신이 아니지만 어쨌든 항상 명령을 실행합니다.

.무시하다 이 대상과 관련된 명령의 모든 오류를 마치 다음과 같이 무시합니다.
모두 앞에 대시('-')가 붙었습니다.

.만들어진 이 대상의 모든 소스를 최신으로 표시합니다.

.만들다 다음과 같은 경우에도 이 대상과 관련된 명령을 실행합니다. -n or -t 옵션은
지정. 일반적으로 재귀를 표시하는 데 사용됩니다. 비메이크s.

.메타 다음과 같이 플래그가 지정된 경우에도 대상에 대한 메타 파일을 생성합니다. .위조품, .만들다
.특별한. 와 함께 사용 .만들다 경우가 가장 가능성이 높습니다. "메타"에서는
모드에서 메타 파일이 없으면 대상이 오래된 것입니다.

.노메타 대상에 대한 메타 파일을 생성하지 마십시오. 메타 파일도 생성되지 않습니다.
.위조품, .만들다.특별한 목표.

.NOMETA_CMP
대상이 오래된 것인지 결정할 때 명령의 차이점을 무시하십시오. 이것은
명령에 항상 변경되는 값이 포함되어 있는 경우 유용합니다. 수의 경우
명령이 변경되더라도 대상은 여전히 ​​최신 상태가 아닙니다. 동일한 효과
변수를 사용하는 모든 명령줄에 적용됩니다. .OODATE에 사용할 수 있는
달리 필요하지 않거나 원하지 않는 경우에도 해당 목적:

일부 비교 건너뛰기:
@echo 이것은 비교될 것입니다
@echo 이것은 ${.OODATE:M.NOMETA_CMP}가 아닙니다.
@echo 이것도 비교됩니다

XNUMXD덴탈의 :M 패턴은 원하지 않는 변수의 확장을 억제합니다.

.NOPATH 다음으로 지정된 디렉토리에서 대상을 검색하지 마십시오. .길.

.NOTMAIN 일반적으로 비메이크 처음 만나는 대상을 기본 대상으로 선택합니다.
대상이 지정되지 않은 경우 빌드됩니다. 이 소스는 이 대상이
선택된.

.선택 과목
대상이 이 속성으로 표시되어 있고 비메이크 만드는 방법을 알 수 없습니다
이 사실을 무시하고 파일이 필요하지 않거나 이미 존재한다고 가정합니다.

.위조품 대상이 실제 파일과 일치하지 않습니다. 항상 그렇게 여겨진다.
오래되어 다음 버전으로 생성되지 않습니다. -t 옵션. 접미사 변환
규칙은 적용되지 않습니다. .위조품 목표.

.귀중한
인셀덤 공식 판매점인 비메이크 중단되면 일반적으로 부분적으로 만들어진 목표를 제거합니다. 이것
소스는 대상이 제거되는 것을 방지합니다.

.재귀적
동의어 .만들다.

.조용한 이 대상과 관련된 명령을 마치 마치 것처럼 에코하지 마십시오.
모두 앞에 at 기호('@')가 붙었습니다.

.사용 목표를 다음으로 바꾸십시오. 비메이크님의 매크로 버전입니다. 대상을 다음과 같이 사용하는 경우
다른 대상에 대한 소스가 있으면 다른 대상은 명령, 소스 및
속성(제외 .사용) 출처입니다. 대상에 이미 명령이 있는 경우
전에, .사용 대상의 명령이 여기에 추가됩니다.

.이전에 사용하세요
정확히 같은 .사용, 그러나 앞에 .이전에 사용하세요 대상에게 명령을 보냅니다.

.기다리다 If .기다리다 종속성 라인에 나타나면 그 앞에 나오는 소스는 이전에 만들어집니다.
라인에서 그것을 계승하는 소스. 파일의 종속 항목이 아니기 때문에
파일 자체를 만들 수 있을 때까지 만들어지면 종속 항목도 중지됩니다.
종속성 트리의 다른 분기에 필요하지 않은 경우 빌드됩니다. 그래서 주어진:

x: .기다림 b
에코 x
a:
에코
비: b1
에코 b
b1 :
에코 b1

출력은 항상 'a', 'b1', 'b', 'x'입니다.
에 의해 부과된 주문 .기다리다 병렬 제작에만 해당됩니다.

스페셜 목표


특수 목표는 다른 목표와 함께 포함될 수 없습니다. 즉, 유일한 목표여야 합니다.
지정되었습니다.

.시작하다 이 대상에 연결된 모든 명령줄은 다른 작업이 실행되기 전에 실행됩니다.
끝난.

.기본
이것은 일종의 .사용 소스로만 사용된 모든 대상에 대한 규칙
비메이크 다른 생성 방법을 찾을 수 없습니다. 쉘 스크립트만 사용됩니다.
XNUMXD덴탈의 .IMPSRC 상속받은 대상의 변수 .기본의 명령이 다음으로 설정되었습니다.
대상 자신의 이름.

. END 이 대상에 연결된 모든 명령줄은 다른 모든 항목이 완료된 후에 실행됩니다.
끝난.

.오류 이 대상에 연결된 모든 명령줄은 다른 대상이 실패할 때 실행됩니다.
XNUMXD덴탈의 .ERROR_TARGET 변수는 실패한 대상으로 설정됩니다. 또한보십시오
MAKE_PRINT_VAR_ON_ERROR.

.무시하다 각 출처를 다음과 같이 표시하세요. .무시하다 기인하다. 소스를 지정하지 않은 경우
이는 다음을 지정하는 것과 동일합니다. -i 옵션을 선택합니다.

.방해하다
If 비메이크 중단되면 이 대상에 대한 명령이 실행됩니다.

.기본 대상을 지정하지 않은 경우 비메이크 호출되면 이 타겟이 빌드됩니다.

.MakeFLAGS
이 대상은 다음에 대한 플래그를 지정하는 방법을 제공합니다. 비메이크 makefile을 사용할 때.
플래그는 마치 쉘에 입력된 것과 같습니다. -f 옵션은 아무런 영향을 미치지 않습니다.

.NOPATH 을 적용 .NOPATH 지정된 소스에 속성을 부여합니다.

.비평행
병렬 모드를 비활성화합니다.

.NO_평행
동의어 .비평행, 다른 pmake 변형과의 호환성을 위해.

.OBJDIR 소스는 '의 새로운 값입니다..OBJDIR'. 만약 존재한다면, 비메이크 의지 chdir(2) 그것에
'값을 업데이트합니다..OBJDIR'.

.주문하다 명명된 대상은 순서대로 만들어집니다. 이 순서는 대상을 추가하지 않습니다.
만들 목표 목록입니다. 대상의 종속 항목이 빌드되지 않으므로
'a'가 다른 부분에 의해 구축되지 않는 한, 타겟 자체가 구축될 수 있을 때까지
종속성 그래프에서 다음은 종속성 루프입니다.

.주문: 바
b : a

에 의해 부과된 주문 .주문하다 병렬 제작에만 해당됩니다.

.길 소스는 해당 디렉토리에서 찾을 수 없는 파일을 검색할 디렉토리입니다.
현재 디렉토리. 소스가 지정되지 않은 경우 이전에 지정한 소스
디렉토리가 삭제됩니다. 출처가 특별한 경우 .DOTLAST 대상, 다음
현재 작업 디렉토리가 마지막으로 검색됩니다.

.길.접미사
처럼 .길 그러나 특정 접미사가 붙은 파일에만 적용됩니다. 접미사는 다음과 같아야 합니다.
이전에 다음과 같이 선언되었습니다. .접미사.

.위조품 을 적용 .위조품 지정된 소스에 속성을 부여합니다.

.귀중한
을 적용 .귀중한 지정된 소스에 속성을 부여합니다. 소스가 없는 경우
지정된, .귀중한 속성은 파일의 모든 대상에 적용됩니다.

.껍데기 쉘을 설정합니다. 비메이크 명령을 실행하는 데 사용됩니다. 소스는 다음과 같습니다.
필드=값 한 쌍.

name 이것은 내장된 것 중 하나를 선택하는 데 사용되는 최소 사양입니다.
쉘 사양; sh, KSHCSH.

통로 쉘의 경로를 지정합니다.

hasErrCtl 쉘이 오류 발생 시 종료를 지원하는지 여부를 나타냅니다.

검사 오류 검사를 켜는 명령입니다.

무시 오류 검사를 비활성화하는 명령입니다.

에코 실행된 명령의 에코를 켜는 명령입니다.

조용한 실행된 명령의 에코를 끄는 명령입니다.

필터링 발행 후 필터링할 출력 조용한 명령. 일반적으로
와 동일 조용한.

오류 플래그 오류 검사를 활성화하기 위해 셸을 전달하는 플래그입니다.

echoFlag 명령 에코를 활성화하기 위해 셸을 전달하는 플래그입니다.

개행 문자 단일 줄 바꿈을 생성하는 셸을 전달하는 문자열 리터럴
인용 문자 외부에서 사용되는 경우 문자입니다.
예:

.SHELL: 이름=ksh 경로=/bin/ksh hasErrCtl=true \
check="set -e" 무시="set +e" \
echo="set -v" Quiet="set +v" 필터="set +v" \
echoFlag=v errFlag=e 개행="'\n'"

.조용한 을 적용 .조용한 지정된 소스에 속성을 부여합니다. 소스를 지정하지 않은 경우
전에, .조용한 속성은 파일의 모든 명령에 적용됩니다.

.탁한 이 대상은 종속성 파일에 오래된 항목이 포함되어 있을 때 실행됩니다. .ALLSRC
해당 종속성 파일의 이름으로 설정됩니다.

.접미사
각 소스는 다음에 대한 접미사를 지정합니다. 비메이크. 소스가 지정되지 않은 경우
이전에 지정한 접미사는 삭제됩니다. 접미사 생성을 허용합니다.
변환 규칙.

예:

.접미사: .o
.co:
참조 -o ${.TARGET} -c ${.IMPSRC}

환경


비메이크 존재하는 경우 다음 환경 변수를 사용합니다: MACHINE, MACHINE_ARCH,
MACHINE_MULTIARCH, MAKE, MAKEFLAGS, MAKEOBJDIR, MAKEOBJDIRPREFIX, MAKESYSPATH, PWD 및
TMPDIR.

MAKEOBJDIRPREFIX 및 MAKEOBJDIR은 환경이나 명령줄에서만 설정할 수 있습니다.
비메이크 makefile 변수가 아닙니다. '에 대한 설명을 참조하세요..OBJDIR' 상세 사항은.

onworks.net 서비스를 사용하여 온라인으로 bmake를 사용하세요.


무료 서버 및 워크스테이션

Windows 및 Linux 앱 다운로드

  • 1
    딥 클린
    딥 클린
    모든 빌드를 중단시키는 Kotlin 스크립트
    Gradle/Android 프로젝트의 캐시.
    Gradle 또는 IDE에서 허용할 때 유용합니다.
    아래에. 스크립트가 테스트되었습니다.
    맥OS이지만...
    다운로드
  • 2
    이클립스 체크스타일 플러그인
    이클립스 체크스타일 플러그인
    이클립스 체크스타일 플러그인
    Checkstyle Java 코드 통합
    Eclipse IDE로 감사합니다. 그만큼
    플러그인은 실시간 피드백을 제공합니다.
    viol에 대한 사용자...
    Eclipse 체크스타일 플러그인 다운로드
  • 3
    AstrOrzPlayer
    AstrOrzPlayer
    AstrOrz Player는 무료 미디어 플레이어입니다.
    소프트웨어, 부품은 WMP 및 VLC 기반입니다. 그만큼
    플레이어는 미니멀한 스타일로,
    XNUMX개 이상의 테마 색상과
    B ...
    AstrOrzPlayer 다운로드
  • 4
    무비스타트
    무비스타트
    Kodi Movistar+ TV는 XBMC/용 애드온입니다.
    Kodi que allowede disponer de un 유엔
    IPTV 서비스 디코더 디코더
    Movistar 통합 en uno de los
    미디어 센터 엄마...
    다운로드
  • 5
    코드 :: 블록
    코드 :: 블록
    Code::Blocks는 무료 오픈 소스입니다.
    크로스 플랫폼 C, C++ 및 Fortran IDE
    가장 까다로운 요구 사항을 충족하도록 제작
    사용자의. 그것은 매우 설계
    연장...
    다운로드 코드::블록
  • 6
    가운데
    가운데
    고급 Minecraft 인터페이스 중 또는 고급
    데이터/구조 추적은
    Minecraft 개요 표시
    실제로 생성하지 않고 그것
    할 수있다 ...
    가운데 다운로드
  • 더»

Linux 명령

Ad