summaryrefslogtreecommitdiff
path: root/mk
diff options
context:
space:
mode:
authorhubertf <hubertf>1999-03-03 22:53:49 +0000
committerhubertf <hubertf>1999-03-03 22:53:49 +0000
commit580f5bda244f7d7f068419271e88c284fec602ec (patch)
tree8e954014b612ff062b75d243c7a52e5a5292378d /mk
parent4439e0e2565f596cf7a7058425e24206d0b77c4c (diff)
downloadpkgsrc-580f5bda244f7d7f068419271e88c284fec602ec.tar.gz
Allow (recursive) cleaning out and deinstallation of required packages:
make clean CLEANDEPENDS=YES make deinstall DEINSTALLDEPENDS=YES Both CLEANDEPENDS and DEINSTALLDEPENDS default to NO, so this isn't different from the current behaviour.
Diffstat (limited to 'mk')
-rw-r--r--mk/bsd.pkg.mk37
1 files changed, 30 insertions, 7 deletions
diff --git a/mk/bsd.pkg.mk b/mk/bsd.pkg.mk
index 9a008f78a1e..5c41e4e42a1 100644
--- a/mk/bsd.pkg.mk
+++ b/mk/bsd.pkg.mk
@@ -1,4 +1,4 @@
-# $NetBSD: bsd.pkg.mk,v 1.219 1999/03/03 17:48:23 hubertf Exp $
+# $NetBSD: bsd.pkg.mk,v 1.220 1999/03/03 22:53:49 hubertf Exp $
#
# This file is in the public domain.
#
@@ -54,7 +54,8 @@ NOMANCOMPRESS?= yes
DEF_UMASK?= 022
.elif (${OPSYS} == "NetBSD")
DEF_UMASK?= 0022
-NOCLEANDEPENDS= yes
+CLEANDEPENDS?= NO
+DEINSTALLDEPENDS?= NO
.else
DEF_UMASK?= 0022
.endif
@@ -1380,17 +1381,39 @@ reinstall:
# Deinstall
#
# Special target to remove installation
-
.if !target(deinstall)
deinstall: uptodate-pkgtools
@${ECHO_MSG} "===> Deinstalling for ${PKGNAME}"
.ifdef PKG_VERBOSE
- @${PKG_DELETE} -v -f ${PKGNAME}
+ @${PKG_DELETE} -v ${PKGNAME} || true
.else
- @${PKG_DELETE} -f ${PKGNAME}
+ @${PKG_DELETE} ${PKGNAME} || true
.endif
@${RM} -f ${INSTALL_COOKIE} ${PACKAGE_COOKIE}
+.if (${DEINSTALLDEPENDS} != "NO")
+ @if ! ${PKG_INFO} -qe ${PKGNAME} ; then \
+ ${MAKE} deinstall-depends ; \
+ fi
.endif
+.endif
+
+
+# Deinstall-depends
+# XXX Should be done with "pkg_delete -R"
+#
+# Like clean-depends, only to deinstall things
+.if !target(deinstall-depends)
+deinstall-depends: uptodate-pkgtools
+.if defined(FETCH_DEPENDS) || defined(BUILD_DEPENDS) \
+ || defined(DEPENDS) || defined(RUN_DEPENDS)
+ @for dir in `${ECHO} ${FETCH_DEPENDS} ${BUILD_DEPENDS} ${DEPENDS} ${RUN_DEPENDS} | ${TR} '\040' '\012' | ${SED} -e 's/^[^:]*://' -e 's/:.*//' | sort -u`; do \
+ if [ -d $$dir ] ; then \
+ (cd $$dir && ${MAKE} DEINSTALLDEPENDS=${DEINSTALLDEPENDS} deinstall); \
+ fi \
+ done
+.endif
+.endif
+
.endif # __ARCH_OK
# The functions below may be useful even if _ARCH_OK is not set
@@ -1409,7 +1432,7 @@ pre-clean:
.if !target(clean)
clean: pre-clean
-.if !defined(NOCLEANDEPENDS)
+.if (${CLEANDEPENDS} != "NO")
@${MAKE} clean-depends
.endif
@${ECHO_MSG} "===> Cleaning for ${PKGNAME}"
@@ -1750,7 +1773,7 @@ clean-depends:
|| defined(DEPENDS) || defined(RUN_DEPENDS)
@for dir in `${ECHO} ${FETCH_DEPENDS} ${BUILD_DEPENDS} ${DEPENDS} ${RUN_DEPENDS} | ${TR} '\040' '\012' | ${SED} -e 's/^[^:]*://' -e 's/:.*//' | sort -u`; do \
if [ -d $$dir ] ; then \
- (cd $$dir && ${MAKE} NOCLEANDEPENDS=yes clean clean-depends); \
+ (cd $$dir && ${MAKE} CLEANDEPENDS=${CLEANDEPENDS} clean ); \
fi \
done
.endif