make clean failes to cleanup everything

Tijl Coosemans tijl at
Tue Oct 4 14:12:20 UTC 2016

On Tue, 4 Oct 2016 14:18:51 +0200 Gerhard Schmidt <schmidt at> wrote:
> Am 04.10.2016 um 14:03 schrieb Tijl Coosemans:
>> On Tue, 4 Oct 2016 13:36:29 +0200 Gerhard Schmidt <schmidt at> wrote:  
>>> Am 04.10.2016 um 12:48 schrieb Tijl Coosemans:  
>>>> On Tue, 4 Oct 2016 09:52:23 +0200 Gerhard Schmidt <schmidt at> wrote:    
>>>>> make clean fails to clean autoconf and automake.
>>>>> If a port uses autoconf and autoconf isn't installed on the system, it
>>>>> will be build and installed.
>>>>> if you run make clean after installing the port, every dependency is
>>>>> cleaned as well but not autoconf.    
>>>> Can you give an example of such a port, because we have two mechanisms
>>>> that can pull in autoconf.    
>>> It's seams to be quite a complex problem.
>>> To find out which ports causes this problem tried to build lang/php56
>>> which uses autoconf. But when I do a make clean autoconf is cleaned as
>>> well.
>>> [root at etustar /usr/ports/lang/php56]# make clean  
>>> ===>  Cleaning for autoconf-2.69_1
>>> ===>  Cleaning for php56-5.6.25_1    
>>> But it also installs help2man, gmake, p5-Locale-gettext-1.06 and
>>> autoconf-wrapper-20131203 and these are not cleaned.
>>> The transcript is attached as typescript_clean
>>> now do a pkg autoremove which removes autoconf and the missed ports form
>>> the system.
>>> now try again to compile php56 and it fails
>>> the transcript is attached as typescript_unclean
>>> It seams that dependencies of dependencies are not clean. It seams that
>>> autoconf was only the most memorable one.  
>> This seems to be intended.  Make clean runs make limited-clean-depends
>> which cleans direct dependencies only.  If you want to do full recursive
>> clean you have to run make clean-depends.
> I use FreeBSD since FreeBSD 2.2.5. When did this change in semantics
> happen? Why do the first layer. This is something nobody can understand.
> Either make clean should only clean the actual port. So everybody sees
> that dependencies are not cleaned (maybe a message "You should run make
> clean-depens to clean dependencies as well" should be printed if
> dependencies are touched) or do it right and clean all touched.
> make clean-depends doesn't take that much more time than make clean, so
> why the change?

I've filed a bug:

More information about the freebsd-ports mailing list