Mengapa `make clean` dan` make mrproper` digunakan?

10

Ada tertulis di kernel linux Makefileitu

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

Dan dinyatakan pada dokumen lengkung itu

Untuk menyelesaikan persiapan, pastikan pohon kernel benar-benar bersih;

$ make clean && make mrproper

Jadi jika make mrpropermenghapus lebih menyeluruh, mengapa make cleandigunakan?

sitilge
sumber

Jawaban:

18

Pembersihan dilakukan pada tiga tingkatan, seperti yang dijelaskan dalam komentar di Linux kernel Makefile :

###
# 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

Menurut Makefile, mrpropertarget tergantung pada cleantarget (lihat baris 1421 ). Selain itu, distcleantarget tergantung pada mrproper.

Eksekusi make mrproperkarena itu akan cukup karena juga akan menghapus hal yang sama seperti apa yang cleanakan dilakukan target (dan banyak lagi).

The mrproperTarget ditambahkan pada tahun 1993 (Linux 0.97.7) dan selalu bergantung pada cleansasaran. Ini berarti bahwa tidak perlu menggunakan kedua target seperti pada make clean && make mrproper.

Referensi bersejarah: https://archive.org/details/git-history-of-linux

Kusalananda
sumber
@derobert wow, bagus. Begitu make cleanjuga berlebihan, kan?
sitilge
2
@sitilge ya, itu mubazir, karena make akan tetap menjalankannya saat Anda menjalankan make mrproper.
derobert
0

cleanadalah prasyarat untuk mrpropertarget di Makefile , jadi mengeksekusi make cleansecara terpisah adalah mubazir.

sebasth
sumber