Cleaning .x and .y files

Duncan Coutts duncan.coutts at worc.ox.ac.uk
Tue Oct 17 16:32:28 EDT 2006


On Tue, 2006-10-17 at 16:40 +0100, Ian Lynagh wrote:
> Hi all,
> 
> I think Duncan has already said that we need a way to have .x and .y
> files included in sdists, but we also need a clean variant or flag that
> doesn't clean them. Apologies if this has also already been pointed out
> and I missed it.

As an example, automake based systems have several levels of clean.

I'm not suggesting we need all of these, but it's prior art to consider.

http://www.gnu.org/prep/standards/standards.html#Standard-Targets
It's talking about makefiles of course.

‘clean’
        Delete all files in the current directory that are normally
        created by building the program. Also delete files in other
        directories if they are created by this makefile. However, don't
        delete the files that record the configuration. Also preserve
        files that could be made by building, but normally aren't
        because the distribution comes with them. There is no need to
        delete parent directories that were created with ‘mkdir -p’,
        since they could have existed anyway. 
        
        Delete .dvi files here if they are not part of the
        distribution. 
        
        
‘distclean’
        Delete all files in the current directory (or created by this
        makefile) that are created by configuring or building the
        program. If you have unpacked the source and built the program
        without creating any other files, ‘make distclean’ should leave
        only the files that were in the distribution. However, there is
        no need to delete parent directories that were created with
        ‘mkdir -p’, since they could have existed anyway. 
‘mostlyclean’
        Like ‘clean’, but may refrain from deleting a few files that
        people normally don't want to recompile. For example, the
        ‘mostlyclean’ target for GCC does not delete libgcc.a, because
        recompiling it is rarely necessary and takes a lot of time. 
‘maintainer-clean’
        Delete almost everything that can be reconstructed with this
        Makefile. This typically includes everything deleted by
        distclean, plus more: C source files produced by Bison, tags
        tables, Info files, and so on. 
        
        The reason we say “almost everything” is that running the
        command ‘make maintainer-clean’ should not delete configure even
        if configure can be remade using a rule in the Makefile. More
        generally, ‘make maintainer-clean’ should not delete anything
        that needs to exist in order to run configure and then begin to
        build the program. Also, there is no need to delete parent
        directories that were created with ‘mkdir -p’, since they could
        have existed anyway. These are the only exceptions;
        maintainer-clean should delete everything else that can be
        rebuilt. 
        
        The ‘maintainer-clean’ target is intended to be used by a
        maintainer of the package, not by ordinary users. You may need
        special tools to reconstruct some of the files that ‘make
        maintainer-clean’ deletes. Since these files are normally
        included in the distribution, we don't take care to make them
        easy to reconstruct. If you find you need to unpack the full
        distribution again, don't blame us. 
        
        To help make users aware of this, the commands for the special
        maintainer-clean target should start with these two: 
        
                  @echo 'This command is intended for maintainers to use; it'
                  @echo 'deletes files that may need special tools to rebuild.'




More information about the cabal-devel mailing list