make
Linux에서 다른 Makefile을 편집하거나 사용할 때 Linux가 Makefile에서 예기치 않은 GNU-Make 특정 확장 사용을 거부하도록 하는 알려진 방법이 있습니까? 내 말은, GNU‑Make의 동작을 제한한다는 것입니다.make
POSIX에 지정됨GNU-Make 특정 확장을 거부하시겠습니까?
.POSIX
“특별한 목표로는 충분하지 않다” 에 따르면4.9 특수 내장 대상 이름(gnu.org)". 매뉴얼 페이지에는 이에 대한 명령줄 옵션에 대한 언급이 없습니다.
다른 make
유틸리티를 사용하는 것도 선택 사항일 수 있습니다.
— 업데이트 날짜: 2018-10-19 —
아직 내 질문에 대한 직접적인 답을 찾지 못했지만, 이 질문을 할 당시에는 존재하지 않았던 주제에 대한 문서가 하나 이상 있습니다. 휴대용 Makefile 튜토리얼(nullprogram.com).
답변1
나는 GNU make 확장을 비활성화할 수 있는 방법이 없다고 확신합니다. 이 대상은 호환성을 향상시키지만 함수, 포인트별 대상, 대상의 패턴 등과 .POSIX
같은 호환 가능한 확장을 비활성화하지 않습니다.%
나는 POSIX 기능을 준수하는 make 구현을 알지 못합니다. 예를 들어 MINIX, Solaris 및 OpenBSD에는 자체 확장이 있습니다. 최소한 이 네 가지 구현을 사용하여 프로그램을 빌드해 볼 수 있으며(프로그램이 이러한 모든 플랫폼에서 빌드된다고 가정) 실제로는 꽤 좋은 이식성을 보장할 것입니다. make
무료가 아닌 OS에 액세스할 수 있는 경우(VS 무료 버전이면 충분할 것 같습니다) Visual Studio의 유틸리티를 사용하여 Windows를 추가하고 일부 Unix 셸 도구에 포트를 추가하세요.