Huge thanks to our Platinum Members Endace and LiveAction,
and our Silver Member Veeam, for supporting the Wireshark Foundation and project.

Wireshark-dev: [Wireshark-dev] Why do we have three different clean targets on Windows?!?

From: Ulf Lamping <ulf.lamping@xxxxxx>
Date: Sun, 29 Oct 2006 22:56:38 +0100
Hi List!

Having three different clean targets in all the .nmake files doesn't make any real sense and provides a permanent cause of trouble and confusion.

The differences in:

-clean
-maintainer-clean
-distclean

... sounds all very much over-engineered to me.

To be honest I don't even know what the different target differ on and what they are intended for (and I guess most other Windows developers won't know either).

... and to be honest I don't really want to know. My experience is simple: Everything else than distclean doesn't work under some circumstances and will cause a lot more work than it will save


Remember on Windows, someone building from the sources *is* a developer (unlike Unix systems where it could be an educated user as well). If we enforce every developer to provide all required tools, it's pretty simpler to provide a single clean target which simply removes *all* intermediate and target files - so after that you simply build from scratch reliably.

So removing a lot of optionality in the Win32 build process and documenting only a single target well is far better than providing a lot of options which doesn't work at all combinations (and will never be tested under all combinations) - and of course will never be documented well - e.g. the maintainer-clean target was *never* documented for the Windows platforms *at all*.

We should simply have a single clean target which is doing the job. Everything else is just adding new complexity without gaining a lot more comfort from it. Calling a maintainer-clean target just to know if it doesn't work having to call the distclean target anyway just to make sure, doesn't make a lot of sense (and in the long run won't save any time IMHO).


So we should simply:
- remove the clean and maintainer-clean targets
- rename the distclean target into the "one and only" clean target

This will make the clean process a lot more robust and a lot less confusing ...

Regards, ULFL