Các thành ngữ tiêu chuẩn là phải có các tập tin đối tượng (không phải là nguồn tập tin!) Phụ thuộc vào một mục tiêu mà không tồn tại và không có quy tắc hoặc phụ thuộc (mục tiêu này thông thường được gọi là FORCE), như thế này
always-recompile.o: FORCE
FORCE:
Điều này sẽ vi phạm nếu tệp có tên "FORCE" được tạo bằng cách nào đó. Với GNU làm cho bạn thay vì có thể sử dụng .PHONY mục tiêu đặc biệt, mà không có hạn chế này, nhưng không yêu cầu bạn phải có một quy tắc rõ ràng để xây dựng lại tập tin đó:
always-recompile.o:
$(CC) $(CFLAGS) -c -o always-recompile.o always-recompile.c
.PHONY: always-recompile.o
Xem http://www.gnu.org/software/make/manual/html_node/Phony-Targets.html để biết thêm chi tiết.
Đây có thể là giải pháp sai cho vấn đề của bạn. Một số công cụ phiên bản có thể giải thích chi tiết về phiên bản nguồn của bạn. Một chút kịch bản hackery trong quá trình xây dựng của bạn và những chi tiết đó được tích hợp vào mã của bạn. Không quan trọng nếu bạn phải kiểm tra nguồn và xây dựng lại trong thời gian mười năm - thông tin phiên bản của bạn sẽ vẫn phản ánh chi tiết cho thẻ đó. – Steve314
@ Steve314: nhiều khả năng anh ấy muốn một hộp về đề cập đến số xây dựng và ngày xây dựng. –
@Ken - nếu có, mẹo công cụ phiên bản là đúng cách. Không có lý do tại sao các tập lệnh hackery không thể đặt các chi tiết phiên bản vào mã (hoặc tập tin tài nguyên) cho một hộp về, và nhận được một số xây dựng vào một hộp về có lẽ cần dễ dàng quên mất can thiệp thủ công khác. Không thực hiện, trình biên dịch, cũng không phải hệ thống tập tin biết số bản dựng của bạn. – Steve314