What does mrproper in “make mrproper” stand for?

Posted in kerneltrap.org on January 24, 2010 – 1:44am

Last Friday the morning session of my Languages for Scientific Computing class was about Makefile. Well, largely there was nothing interesting since I know how Makefile works already. But, still the teaching assistant could surprise me with: make mrproper.

Since the first day I fidded with a GNU/Linux system, I have called make mrproper for several times when building a Linux kernel again and again with different configurations. But, I had never known what it means by mrproper except that it fixed a build problem that I encountered. So, I thought that it was about making a proper dependency tree.

The teaching assistant was showing the step-by-step refinement of a simple Makefile into a rather complex one. After mentioning the clean target whose semantic I really do understand, he introduced mrproper that cleans more than the clean target. What? So, I asked the teaching assistant what mrproper stands for. He said that it is the name of a guy that advertises a cleaning product. The guy is called Mr. Proper. Ah, now I know the semantic of mrproper. Well, I really should have googled for that since years ago, but I grew up in an era and a place where Internet and search engine were not readily accessible so that I was not accustomed to looking up trivial things with a search engine.

To conclude, make mrproper has the semantic of returning the source tree to its former clean state without any generated artifact while make clean may still leave generated artifacts like the executable objects or generated reports while removing all intermediate artifacts like the object files that make up an executable object. The target mrproper stands for Mr. Proper, the name of a guy in a cleaning product advertisement as can be seen here.

Advertisements
This entry was posted in make, Software Usage and tagged . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s