Tôi muốn xây dựng một quy tắc như thế này trong Makefile của tôi:thực hiện: thực hiện một hành động cho mỗi điều kiện tiên quyết
log: test_A test_B
./test_A >> [email protected]
./test_B >> [email protected]
nhưng test_A
và test_B
là một phần của một biến $(TESTS)
.
Vì vậy, có thể thực hiện một hành động (ở đây: gọi chương trình) cho mỗi điều kiện tiên quyết trong GNU/thực hiện không?
Lưu ý: How do I make a makefile rule execute its prerequisites? không hoàn toàn giải quyết vấn đề này, vì mục tiêu log
là bắt buộc (make log
).
Cám ơn câu trả lời của bạn, nó khẳng định những gì tôi đã kết thúc với: '$ (thử nghiệm foreach, $ ^, $ (shell ./$(test) >> $ @)) ' – CJlano
Nếu đó là các lệnh cho quy tắc _log_ của bạn, thì' $ (shell ...) 'là loại bỏ thứ: các lệnh cho quy tắc sẽ trống và các lệnh 'test_? 'sẽ xảy ra như một sản phẩm phụ của việc tìm ra các lệnh (thay vì xảy ra bằng cách thực hiện các lệnh). Về mặt triết học sai, và - thực tế hơn - không thể mở rộng để nắm bắt sự thất bại của một trong các kịch bản 'test_? 'Của bạn. (Nhưng dù sao nó sẽ xuất hiện mà bạn muốn đánh dấu câu trả lời này là chấp nhận ...) –
Sẽ không lặp lại hai lần này, một lần cho test_A và một lần cho test_B? Tôi có một vấn đề tương tự và thực hiện là hành xử rất kỳ lạ. – Jaseem