Tôi đang sử dụng một tệp makefile để biên dịch chương trình được tạo từ nhiều tệp .c
và bất kỳ lúc nào make
được gọi nó chỉ biên dịch các tệp đó được sửa đổi sau lần chạy cuối cùng (không có gì đặc biệt cho đến đây).Kiểm soát độ dài của việc tạo
Để tránh làm lộn xộn màn hình, tôi thêm @
vào đầu mỗi cuộc gọi $(CC)
và trước khi tôi in một thông báo tùy chỉnh echo
. Ví dụ:
%.o: %.c $(h1) $(h3) %.h
@echo -e "\tCompiling <" $<
@$(CC) $(CFLAGS) -c $< -o $(libDir)[email protected]$(MATHOPTS)
Câu hỏi của tôi là: làm thế nào tôi có thể kiểm soát tính cách rườm rà của make
trong một "cách năng động" hơn, để có thể:
- hành vi bình thường: chỉ một thông báo tùy chỉnh được in cho mọi quy tắc makefile được thực hiện.
- Hành vi chi tiết: in lệnh thực sự được thực thi bởi mọi quy tắc makefile (như thể tất cả
@
không được sử dụng).
Trong phần đầu tiên của bạn, giả sử bạn cũng cần ghi đè 'CC = $ (CC _ $ (V))'. –
Có. Đó là sự vắng mặt là một fart não mà tôi sẽ sửa chữa ngay bây giờ. Tôi cũng nên chỉ ra rằng việc mở rộng biến đệ quy được triển khai rộng rãi nhưng hiện không có trong POSIX (nhưng điều đó sẽ thay đổi trong một bản sửa đổi trong tương lai). –
Giải pháp tuyệt vời @JackKelly. Việc tạo biến 'AT' rất đơn giản và hiệu quả !. –