Tôi đang cố gắng làm những điều sau đây. Có một chương trình, gọi là nó foo-bin
, lấy một tệp đầu vào duy nhất và tạo ra hai tệp đầu ra. Một quy tắc Makefile ngu ngốc cho điều này sẽ là:
file-a.out file-b.out: input.in
foo-bin input.in file-a.out file-b.out
Tuy nhiên, điều này không cho biết make
cả hai mục tiêu sẽ được tạo ra cùng một lúc. Điều đó tốt khi chạy make
nối tiếp, nhưng có thể sẽ gây ra rắc rối nếu một người cố gắng make -j16
hoặc một cái gì đó điên rồ tương tự.
Câu hỏi đặt ra là liệu có tồn tại cách viết quy tắc Makefile thích hợp cho trường hợp như vậy không? Rõ ràng, nó sẽ tạo ra một DAG, nhưng bằng cách nào đó, hướng dẫn tạo GNU không chỉ rõ cách xử lý trường hợp này.
Chạy cùng một đoạn mã hai lần và chỉ tạo ra một kết quả là điều không cần thiết, vì việc tính toán mất nhiều thời gian (hãy nghĩ: hàng giờ). Việc xuất ra chỉ một tệp cũng sẽ khá khó khăn, vì nó thường được sử dụng làm đầu vào cho GNUPLOT mà không biết cách xử lý chỉ một phần nhỏ của tệp dữ liệu.