Linux에서 make
다른 사람의 Makefile을 편집하거나 사용할 때 Linux가 거부하여 Makefile에서 GNU‑Make 특정 확장명을 의도적으로 사용하도록 하는 알려진 방법이 있습니까? make
POSIX에 명시된 대로 GNU-Make를 동작하도록 제한 하고 GNU-Make 특정 확장을 거부 한다는 의미 입니까?
.POSIX
특별 대상 “에 따르면, 충분하지 않다 4.9 특수 내장 타겟 이름 (gnu.org) “. 매뉴얼 페이지에는 이에 대한 명령 행 옵션이 언급되어 있지 않습니다.
다른 make
유틸리티를 사용 하는 것이 옵션 일 수 있습니다.
— 2018-10-19 업데이트 —
난 아직 내 질문에 직접 답을 찾을 수없는,하지만 여기에이 문제를, 나는이 질문을 한 시간에 존재하지 않는 문서에 대한 적어도 문서입니다 : 휴대용 메이크에 자습서 (nullprogram.com) .
답변
GNU make 확장 기능을 비활성화 할 수있는 방법이 없다고 확신합니다. .POSIX
목표는 호환성이 향상되지만, 기능, 고유의 도트 타겟으로하지 비활성화 호환 확장 않는 %
등 대상의 패턴을,
POSIX 기능을 고수하는 구현을 모르겠습니다. 예를 들어 MINIX, Solaris, OpenBSD는 모두 자체 확장명을 갖습니다. 최소한이 네 가지 구현으로 프로그램을 빌드하려고 시도 할 수 있습니다 (프로그램이이 모든 플랫폼에서 빌드된다고 가정 할 경우). 실제로 이식성이 확실히 보장됩니다. make
무료 OS가 아닌 OS를 사용할 수 있다면 Visual Studio 의 유틸리티 와 일부 유닉스 셸 도구 포트를 사용하여 Windows를 추가하십시오 (무료 버전의 VS가 충분하다고 생각합니다).