POSIX Make 동작으로 GNU-Make 제한


12

Linux에서 make다른 사람의 Makefile을 편집하거나 사용할 때 Linux가 거부하여 Makefile에서 GNU‑Make 특정 확장명을 의도적으로 사용하도록 하는 알려진 방법이 있습니까? makePOSIX에 명시된 대로 GNU-Make를 동작하도록 제한 하고 GNU-Make 특정 확장을 거부 한다는 의미 입니까?

.POSIX특별 대상 "에 따르면, 충분하지 않다 4.9 특수 내장 타겟 이름 (gnu.org) ". 매뉴얼 페이지에는 이에 대한 명령 행 옵션이 언급되어 있지 않습니다.

다른 make유틸리티를 사용 하는 것이 옵션 일 수 있습니다.

— 2018-10-19 업데이트 —

난 아직 내 질문에 직접 답을 찾을 수없는,하지만 여기에이 문제를, 나는이 질문을 한 시간에 존재하지 않는 문서에 대한 적어도 문서입니다 :  휴대용 메이크에 자습서 (nullprogram.com) .


이 목록을 보면 엄격한 POSIX 만 만들 었는지 또는 확실하지 않은지 확실하지 않습니다. 따라서 make문제의 "다른 사람의 Makefile"과 함께 사용하기 위해 시작하는 것이 더 합리적 입니다. 또한 일부 문서를 읽으 면서 GNU의 " .POSIX목표는 충분하지 않다 " 고 말 했지만 실제 사례에서는이를 설명하지 못했습니다. 이는 약간의 XY 문제 입니다.
goldilocks

@goldilocks, X는 GNU-Make 사양의 마스터 링 부족으로 인해 (편집 및 수정을 위해) 고수하려는 제한 사항을 확인하고 일부 특수성이 있음을 알 수 있도록 도와줍니다. 시력 검사는 오류가 발생하기 쉬우 며 기계화 할 수 없으며 오류가 발생하기 쉬운 집에서 만든 grep / sed / awk 필터를 사용하여주의를 기울이고 확인하십시오.
Hibou57

나는 마법사도 아니지만, 그것에 대해 직접 묻는 것이 낫지 않습니까? (그렇다면 스택 오버플로가 더 좋은
곳일

당신이 옳을 수도 있습니다. 그건 그렇고, 게시 한 후에 먼저이 질문을 삭제 한 다음 다시 삭제하지 않았습니다 (위치가 확실하지 않았습니다). 나중에 제안한대로 스택 오버플로를 다시 요청할 수 있습니다. 걱정 해주셔서 감사합니다.
Hibou57

답변:


6

GNU make 확장 기능을 비활성화 할 수있는 방법이 없다고 확신합니다. .POSIX목표는 호환성이 향상되지만, 기능, 고유의 도트 타겟으로하지 비활성화 호환 확장 않는 %등 대상의 패턴을,

POSIX 기능을 고수하는 구현을 모르겠습니다. 예를 들어 MINIX, Solaris, OpenBSD는 모두 자체 확장명을 갖습니다. 최소한이 네 가지 구현으로 프로그램을 빌드하려고 시도 할 수 있습니다 (프로그램이이 모든 플랫폼에서 빌드된다고 가정 할 경우). 실제로 이식성이 확실히 보장됩니다. make무료 OS가 아닌 OS를 사용할 수 있다면 Visual Studio 의 유틸리티 와 일부 유닉스 셸 도구 포트를 사용하여 Windows를 추가하십시오 (무료 버전의 VS가 충분하다고 생각합니다).


3
데비안 리눅스에서는 pmakemakefile의 이식성을 테스트하고 있습니다. 그것은 NetBSD에서 맛을 본다고 주장합니다. (데비안의 최신 버전에서는입니다 bmake.)
Palec
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.