pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/mk * Split out the "clean" targets and variables and p...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/7af177deeec7
branches:  trunk
changeset: 506585:7af177deeec7
user:      jlam <jlam%pkgsrc.org@localhost>
date:      Thu Jan 19 16:11:10 2006 +0000

description:
* Split out the "clean" targets and variables and put them into a separate
  file pkgsrc/mk/bsd.pkg.clean.mk.

* Reimplement the clean target so that we don't need to invoke a separate
  make process just to do clean-depends.

* Reimplement clean-depends using a pipe to avoid command-line length
  issues.

diffstat:

 mk/bsd.pkg.clean.mk |  85 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 mk/bsd.pkg.mk       |  54 ++-------------------------------
 2 files changed, 89 insertions(+), 50 deletions(-)

diffs (177 lines):

diff -r 4ac255261305 -r 7af177deeec7 mk/bsd.pkg.clean.mk
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/mk/bsd.pkg.clean.mk       Thu Jan 19 16:11:10 2006 +0000
@@ -0,0 +1,85 @@
+# $NetBSD: bsd.pkg.clean.mk,v 1.1 2006/01/19 16:11:10 jlam Exp $
+#
+# This Makefile fragment is included to bsd.pkg.mk and defines the
+# relevant variables and targets for the "clean" phase.
+#
+# The following variables may be set by the package Makefile and
+# specify how cleaning happens:
+#
+#    CLEANDEPENDS specifies the whether "cleaning" will also clean
+#      in all dependencies, implied and direct.  CLEANDEPENDS
+#      defaults to "no".
+#
+# The following targets are defined by bsd.pkg.clean.mk:
+#
+#    clean-depends is the target which descends into dependencies'
+#      package directories and invokes the "clean" action.
+#
+#    do-clean is the target that does the actual cleaning, which
+#      involves removing the work directory and other temporary
+#      files used by the package.
+#
+#    clean is the target that is invoked by the user to perform
+#      the "clean" action.
+#
+#    cleandir is an alias for "clean".
+#
+
+CLEANDEPENDS?= no
+
+.PHONY: clean-depends
+clean-depends:
+       ${_PKG_SILENT}${_PKG_DEBUG}                                     \
+       ${_DEPENDS_WALK_CMD} ${PKGPATH} |                               \
+       while read dir; do                                              \
+               cd ${.CURDIR}/../../$$dir &&                            \
+               ${MAKE} ${MAKEFLAGS} CLEANDEPENDS=no clean;             \
+       done
+
+.PHONY: pre-clean
+.if !target(pre-clean)
+pre-clean:
+       @${DO_NADA}
+.endif
+
+.PHONY: post-clean
+.if !target(post-clean)
+post-clean:
+       @${DO_NADA}
+.endif
+
+.PHONY: do-clean
+.if !target(do-clean)
+do-clean:
+       @${ECHO_MSG} "${_PKGSRC_IN}> Cleaning for ${PKGNAME}"
+       ${_PKG_SILENT}${_PKG_DEBUG}                                     \
+       if ${TEST} -d ${WRKDIR:Q}; then                                 \
+               if ${TEST} -w ${WRKDIR:Q}; then                         \
+                       ${RM} -fr ${WRKDIR:Q};                          \
+               else                                                    \
+                       ${ECHO_MSG} "${_PKGSRC_IN}> "${WRKDIR:Q}" not writable, skipping"; \
+               fi;                                                     \
+        fi
+.  if defined(WRKOBJDIR)
+        -${_PKG_SILENT}${_PKG_DEBUG}                                   \
+       ${RMDIR} ${BUILD_DIR} 2>/dev/null;                              \
+        ${RM} -f ${WRKDIR_BASENAME}
+.  endif
+.endif
+
+_CLEAN_TARGETS+=       pre-clean
+.if empty(CLEANDEPENDS:M[nN][oO])
+_CLEAN_TARGETS+=       clean-depends
+.endif
+_CLEAN_TARGETS+=       do-clean
+_CLEAN_TARGETS+=       post-clean
+
+.ORDER: ${_CLEAN_TARGETS}
+
+.PHONY: clean
+.if !target(clean)
+clean: ${_CLEAN_TARGETS}
+.endif
+
+.PHONY: cleandir
+cleandir: clean
diff -r 4ac255261305 -r 7af177deeec7 mk/bsd.pkg.mk
--- a/mk/bsd.pkg.mk     Thu Jan 19 15:50:05 2006 +0000
+++ b/mk/bsd.pkg.mk     Thu Jan 19 16:11:10 2006 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: bsd.pkg.mk,v 1.1791 2006/01/18 20:18:04 jlam Exp $
+#      $NetBSD: bsd.pkg.mk,v 1.1792 2006/01/19 16:11:10 jlam Exp $
 #
 # This file is in the public domain.
 #
@@ -59,7 +59,6 @@
 ############################################################################
 
 CHECK_SHLIBS?=         YES     # run check-shlibs after install
-CLEANDEPENDS?=         NO
 DEINSTALLDEPENDS?=     NO      # add -R to pkg_delete
 MKCRYPTO?=             YES     # build crypto packages by default
 NOCLEAN?=              NO      # don't clean up after update
@@ -830,6 +829,9 @@
 # Check
 .include "../../mk/bsd.pkg.check.mk"
 
+# Clean
+.include "../../mk/bsd.pkg.clean.mk"
+
 # Tools
 .include "../../mk/tools/bsd.tools.mk"
 
@@ -3090,60 +3092,12 @@
 
 # Cleaning up
 
-.PHONY: pre-clean
-.if !target(pre-clean)
-pre-clean:
-       @${DO_NADA}
-.endif
-
-.PHONY: clean
-.if !target(clean)
-clean: pre-clean
-.  if (${CLEANDEPENDS} != "NO") && (!empty(BUILD_DEPENDS) || !empty(DEPENDS))
-       ${_PKG_SILENT}${_PKG_DEBUG}${MAKE} ${MAKEFLAGS} clean-depends
-.  endif
-       @${ECHO_MSG} "${_PKGSRC_IN}> Cleaning for ${PKGNAME}"
-       ${_PKG_SILENT}${_PKG_DEBUG}                                     \
-       if [ -d ${WRKDIR} ]; then                                       \
-               if [ -w ${WRKDIR} ]; then                               \
-                       ${RM} -rf ${WRKDIR};                            \
-               else                                                    \
-                       ${ECHO_MSG} "${_PKGSRC_IN}> ${WRKDIR} not writable, skipping"; \
-               fi;                                                     \
-       fi
-.  if defined(WRKOBJDIR)
-       -${_PKG_SILENT}${_PKG_DEBUG}                                    \
-       ${RMDIR} ${BUILD_DIR} 2>/dev/null;                              \
-       ${RM} -f ${WRKDIR_BASENAME}
-.  endif
-.endif
-
-
-.PHONY: clean-depends
-.if !target(clean-depends)
-clean-depends:
-.  if !empty(BUILD_DEPENDS) || !empty(DEPENDS)
-       ${_PKG_SILENT}${_PKG_DEBUG}                                     \
-       for i in `${MAKE} ${MAKEFLAGS} show-all-depends-dirs-excl`; do  \
-               cd ${.CURDIR}/../../$$i &&                              \
-               ${MAKE} ${MAKEFLAGS} CLEANDEPENDS=NO clean;             \
-       done
-.  endif
-.endif
-
 .PHONY: pre-distclean
 .if !target(pre-distclean)
 pre-distclean:
        @${DO_NADA}
 .endif
 
-
-.PHONY: cleandir
-.if !target(cleandir)
-cleandir: clean
-.endif
-
-
 .PHONY: distclean
 .if !target(distclean)
 distclean: pre-distclean clean



Home | Main Index | Thread Index | Old Index