파일이 GNU Make로 존재하는지 확인하는 함수
GNU makefile은 중소기업이 컴파일을 특정 클라이언트의 시스템에 적용 할 수있는 소스 코드를 작성하고 문제 또는 충족되지 않은 소프트웨어 종속성을 사전에 감지 할 수있게합니다. 특정 파일이 존재하는지 확인하는 것은 GNU make 기능의 핵심이며, 여러 가지 방법 중 하나를 선택하여 수행 할 수 있습니다.
규칙
파일이 GNU makefile 안에 존재하는지 확인하는 한 가지 방법은 내장 된 규칙 시스템을 포함합니다. "target : normal-requrequisites | order-only-prerequisites"구문 아래의 코드는 "target"으로 지정된 파일이 "normal-prerequisites"에서 지정한 파일보다 최신이 아닌 경우에만 실행되며 "주문 전용 전제 조건"에 명시되어 있습니다. "target : | order-only-requrequisites"구문을 사용하고 "|"의 왼쪽에 파일을 지정하지 않으면 " 기호가있는 경우 아래 코드는 "주문 전용 전제 조건"으로 지정한 파일이있는 경우에만 실행됩니다.
테스트 기능
"test -f"명령은 특정 파일이 있는지 여부를 확인할 수도 있습니다. 이 명령은 파일 이름을 인수로 취하고 명령을 전달한 파일 경로가 존재하면 부울 값 "true"를 반환하고 존재하지 않으면 "false"를 반환합니다. 이 명령을 "if"문과 다른 제어 기능에 통합하여 결과를 처리하는 세밀한 제어를 위해 makefile에 배치 할 수 있습니다.
디렉토리 검사
rules 메쏘드 나 "test -d"명령은 "test -f"명령과 똑같이 작동합니다. 인자로 제공 한 경로가 기존 디렉토리인지 아닌지를 확인합니다. . makefile이 컴파일되거나 빌드 될 디렉토리의 존재를 확인하는 경우, "mkdir -p directory-name"명령은 "directory-name"으로 지정한 이름으로 디렉토리를 작성하려고 시도합니다 그것은 이미 존재합니다. "-p"인수는 mkdir이 최종 사용자가 무언가가 잘못되었다고 생각하게하는 오류 메시지를 던지지 않도록합니다. 그런 다음 이미 존재했거나 mkdir이 만들었 기 때문에 파일이 있음을 알면서 makefile 코드에서 디렉토리를 사용할 수 있습니다.
강력한 메이크 파일
다른 클라이언트 시스템은 소프트웨어가 약간 다른 디렉토리 경로에 의존하는 패키지를 저장합니다. 그러나 단일 위치를 가정하면 클라이언트는 이미 가지고있는 소프트웨어 패키지가 필요하다고 알리는 makefile을 수신 할 수 있습니다. 대상 클라이언트 기반에서 사용되는 다른 시스템을 조사하여이 문제점을 최소화하고 makefile이 종속 소프트웨어 패키지에 대한 여러 위치를 검사하도록 할 수 있습니다.