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.