개발용 도구

GNU make 4.3

GNU make 4.3은 많은 결점 수정, 새로운 기능과 성능 향상을 포함합니다.

하위-비호환성

버전 3.8을 만들기 위한 호환성 패치가 페도라가 다른 배포판과 동일하게 만드는 것으로 이번 출시에서 제거되었습니다.

GNU make의 오래된 버전에(우리가 제거하려는 3.8용 호환성 패치를 포함) 특정한 makefile 기능에 의존하는 꾸러미 소유자는 FTBFS를 사용 할 수 있으며 이들 Makefile을 조정해야 합니다. 이와 같은 향상 이전에 제작된 꾸러미는 영향을 받지 않습니다.

특정 이전 버전 비호환성:

* 경고: 하위-비호환성!
  Number signs (#) appearing inside a macro reference or function invocation
  no longer introduce comments and should not be escaped with backslashes:
  thus a call such as:
    foo := $(shell echo '#')
  is legal.  Previously the number sign needed to be escaped, for example:
    foo := $(shell echo '\#')
  Now this latter will resolve to "\#".  If you want to write makefiles
  portable to both versions, assign the number sign to a variable:
    H := \#
    foo := $(shell echo '$H')
  This was claimed to be fixed in 3.81, but wasn't, for some reason.
  To detect this change search for 'nocomment' in the .FEATURES variable.

* 경고: 하위-비호환성!
  Previously appending using '+=' to an empty variable would result in a value
  starting with a space.  Now the initial space is only added if the variable
  already contains some value.  Similarly, appending an empty string does not
  add a trailing space.

새로운 기능

  • 그룹화된 명시적 대상 유형 규칙은 레시피를 한 번만 호출하여 여러 대상을 생성 할 수 있는 기능을 항상 갖고 있었습니다. 이는 이제 명시적 규칙이 단일 호출로 여러 대상을 생성한다고 선언 할 수 있습니다. 이렇게 사용하려면, 규칙에서 `&:`를 갖는 `:`토큰을 교체합니다. 이와 같은 기능을 감지하려면 .FEATURES 특수 변수에서 'grouped-target’을 위해 검색하세요.

  • 이와 같은 변수에서 .EXTRA_PREREQS 변수 단어는 대상의 전제 조건으로 간주되지만 이들은 레시피를 확장 할 때에 자동 변수 값에 추가되지 않습니다. 이와 같은 변수는 전역(모든 대상에 적용) 또는 대상-지역별 변수일 수 있습니다. 이와 같은 기능을 감출하려면 .FEATURES 특수 변수에서 `extra-prereqs`를 검색하세요.

  • Makefile은 이제 이들 MAKEFLAGS 변수에서 -j 옵션을 지정 할 수 있고 이는 make를 그와 같은 병렬 방식을 활성화 할 수 있습니다.

  • GNU make는 이제 사용 가능한 시스템에서 posix_spawn()`을 사용합니다. 만약 당신은 posix_spawn()이 존재하는 시스템에서도 fork/exec를 사용하려는 경우라면, 당신은 구성하는데 `--disable-posix-spawn 옵션을 사용 할 수 있습니다.

  • 존재하지 않는 명령을 호출 할 때에 출력되는 오류 메시지는 정리되고 일관성 있게 유지되어 있습니다.

  • 신규 옵션 `--no-silent`가 추가되었으며, 이는 `-s/--silent/--quiet 플래그의 영향을 취소합니다.

  • 신규 옵션 `-E`는 `--evel`을 위한 짧은 별칭으로 추가되었습니다.

  • 최신 GNU libc와 musl C 동작시간 라이브러리와 함께 상호 운용합니다.

이 출시에 대하여 보다 자세한 정보는업스트림 출시 발표를 참고하세요.

결점 수정됨

이 버전에서 수정된 결점의 전체 목록은 make - Bugs에서 사용 할 수 있습니다