Sometimes when a build of Cygwin fails, there will be a message suggesting running 'make distclean'. But this fails to clean the winsup/cygwin subdirectory, and the build still fails.

On the other hand, 'make clean' in winsup/cygwin removes two source files, which have to be restored before one can rebuild.

The attached patch fixes both problems.

Ken
From 71c16ecc3126a41ae41cbf354428c64282952951 Mon Sep 17 00:00:00 2001
From: Ken Brown <kbr...@cornell.edu>
Date: Sun, 5 Jun 2016 12:58:22 -0400
Subject: [PATCH] Allow 'make distclean' to clean winsup/cygwin
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

But don’t let it remove source files.
---
 winsup/Makefile.in        | 4 ++--
 winsup/cygwin/Makefile.in | 7 ++++---
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/winsup/Makefile.in b/winsup/Makefile.in
index 1fdf93a..9eca806 100644
--- a/winsup/Makefile.in
+++ b/winsup/Makefile.in
@@ -48,7 +48,7 @@ CLEAN_SUBDIRS=${patsubst %,clean_%,$(SUBDIRS)}
 
 INSTALL_LICENSE:=@INSTALL_LICENSE@
 
-.PHONY: all install clean all-info info install-info install-license check \
+.PHONY: all install clean distclean all-info info install-info install-license 
check \
        $(SUBDIRS) $(INSTALL_SUBDIRS) $(CLEAN_SUBDIRS)
 
 .SUFFIXES:
@@ -71,7 +71,7 @@ install-license: CYGWIN_LICENSE COPYING
 
 install: Makefile $(INSTALL_LICENSE) $(INSTALL_SUBDIRS)
 
-clean: $(CLEAN_SUBDIRS)
+clean distclean: $(CLEAN_SUBDIRS)
 
 all-info:
 
diff --git a/winsup/cygwin/Makefile.in b/winsup/cygwin/Makefile.in
index 43919bd..a548368 100644
--- a/winsup/cygwin/Makefile.in
+++ b/winsup/cygwin/Makefile.in
@@ -653,14 +653,15 @@ uninstall-man:
            rm -f $(DESTDIR)$(mandir)/man7/`basename $$i` ; \
        done
 
-clean:
-       -rm -f *.o *.dll *.dbg *.a *.exp junk *.base version.cc *.exe *.d 
*stamp* *_magic.h sigfe.s cygwin.def globals.h $(srcdir)/$(TLSOFFSETS_H) 
$(srcdir)/devices.cc
+clean distclean realclean:
+       -rm -f *.o *.dll *.dbg *.a *.exp junk *.base version.cc *.exe *.d 
*stamp* *_magic.h sigfe.s cygwin.def globals.h
        -@$(MAKE) -C ${cygserver_blddir} libclean
 
-maintainer-clean realclean: clean
+maintainer-clean: clean
        @echo "This command is intended for maintainers to use;"
        @echo "it deletes files that may require special tools to rebuild."
        -rm -fr configure
+       -rm -f  $(srcdir)/$(TLSOFFSETS_H) $(srcdir)/devices.cc
 
 # Rule to build LDSCRIPT
 $(LDSCRIPT): $(LDSCRIPT).in
-- 
2.8.3

Reply via email to