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