Tại sao cả `make clean` và` make mrproper` đều được sử dụng?


10

Nó được viết trong linux kernel Makefile

clean - Remove most generated files but keep the config and
        enough build support to build external modules
mrproper - Remove all generated files + config + various backup files

Và nó được ghi trên tài liệu vòm rằng

Để hoàn tất việc chuẩn bị, đảm bảo rằng cây nhân hoàn toàn sạch sẽ;

$ make clean && make mrproper

Vì vậy, nếu make mrproperloại bỏ triệt để hơn, tại sao được make cleansử dụng?

Câu trả lời:


18

Việc dọn dẹp được thực hiện theo ba cấp độ, như được mô tả trong một nhận xét trong kernel Makefile của Linux :

###
# Cleaning is done on three levels.
# make clean     Delete most generated files
#                Leave enough to build external modules
# make mrproper  Delete the current configuration, and all generated files
# make distclean Remove editor backup files, patch leftover files and the like

Theo Makefile, mrpropermục tiêu phụ thuộc vào cleanmục tiêu (xem dòng 1421 ). Ngoài ra, distcleanmục tiêu phụ thuộc vào mrproper.

make mrproperDo đó, việc thực thi sẽ là đủ vì nó cũng sẽ loại bỏ những điều tương tự như những gì cleanmục tiêu sẽ làm (và hơn thế nữa).

Các mrpropermục tiêu đã được bổ sung vào năm 1993 (Linux 0.97.7) và đã luôn luôn phụ thuộc vào cleanmục tiêu. Điều này có nghĩa là không bao giờ cần sử dụng cả hai mục tiêu như trong make clean && make mrproper.

Tài liệu tham khảo lịch sử: https://archive.org/details/git-history-of-linux


@derobert wow, tuyệt vời. Như vậy make cleanlà dư thừa, phải không?
sitilge

2
@sitilge vâng, nó là dư thừa, vì make sẽ chạy nó bằng mọi cách khi bạn chạy make mrproper.
derobert

0

cleanlà điều kiện tiên quyết cho mrpropermục tiêu trong Makefile , do đó, việc thực thi make cleanriêng là không cần thiết.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.