Chức năng kiểm tra nếu một tệp tồn tại với GNU Make
GNU makefiles cho phép doanh nghiệp nhỏ của bạn đưa ra mã nguồn có thể điều chỉnh quá trình biên dịch của nó với máy của một khách hàng cụ thể và phát hiện sớm các vấn đề hoặc phụ thuộc phần mềm chưa được đáp ứng. Kiểm tra xem liệu các tệp nhất định có tồn tại là trung tâm của hàm tạo GNU hay không và bạn có thể chọn một trong một số phương thức để thực hiện điều đó.
Quy tắc
Một cách để kiểm tra xem một tệp có tồn tại trong tệp Makefile GNU của bạn có liên quan đến hệ thống quy tắc tích hợp của nó không. Mã bên dưới cú pháp "target: normal-prerequisites | order-only-prorquisites" sẽ chỉ thực thi nếu tệp hoặc tệp được chỉ định là "đích" không mới hơn các tệp bạn chỉ định trong "điều kiện tiên quyết thông thường" và nếu các tệp bạn xác định trong "chỉ điều kiện tiên quyết" tồn tại. Nếu bạn sử dụng cú pháp "đích: | chỉ đặt hàng theo điều kiện tiên quyết" và không chỉ định bất kỳ tệp nào ở phía bên trái của "|" ký hiệu, sau đó mã dưới đây sẽ chỉ thực thi nếu tệp hoặc tệp bạn chỉ định là "điều kiện tiên quyết duy nhất" tồn tại.
Chức năng kiểm tra
Lệnh "test -f" cũng có thể kiểm tra nếu một tệp cụ thể tồn tại. Lệnh này lấy tên tệp làm đối số, sau đó trả về giá trị Boolean là "true" nếu đường dẫn tệp bạn đã truyền lệnh tồn tại và "false" nếu không có ở đó. Bạn có thể tích hợp lệnh này vào các câu lệnh "nếu" và các hàm điều khiển khác mà bạn đặt trong tệp tạo tệp để kiểm soát chi tiết trong việc xử lý kết quả.
Kiểm tra thư mục
Phương thức quy tắc hoặc lệnh "test -d" hoạt động chính xác như lệnh "test -f", chỉ có nó trả về đúng nếu đường dẫn bạn cung cấp làm đối số là một thư mục hiện có, thay vì kiểm tra xem đối số có phải là tệp không . Nếu bạn đang kiểm tra sự tồn tại của một thư mục mà tệp tạo tệp của bạn sẽ biên dịch hoặc xây dựng tệp, lệnh "mkdir -p thư mục tên" sẽ cố gắng tạo một thư mục có tên bạn chỉ định là "tên thư mục", trừ khi nó đã tồn tại Đối số "-p" ngăn mkdir ném thông báo lỗi khiến người dùng cuối nghĩ rằng có gì đó không ổn. Sau đó, bạn có thể sử dụng thư mục trong mã makefile của mình khi biết rằng tệp tồn tại - bởi vì nó đã ở đó hoặc vì mkdir đã tạo ra nó.
Makefile mạnh mẽ
Các hệ thống máy khách khác nhau lưu trữ các gói mà phần mềm của bạn phụ thuộc vào các đường dẫn thư mục hơi khác nhau. Tuy nhiên, nếu bạn giả sử một địa điểm duy nhất, khách hàng của bạn có thể nhận được các tệp tạo tệp cho họ biết họ yêu cầu gói phần mềm họ đã có. Bạn có thể giảm thiểu vấn đề này bằng cách nghiên cứu các hệ thống khác nhau được sử dụng bởi cơ sở khách hàng mục tiêu của bạn và đảm bảo rằng tệp thực hiện của bạn kiểm tra nhiều vị trí có thể cho các gói phần mềm phụ thuộc.