aboutsummaryrefslogtreecommitdiff
path: root/Mk/bsd.port.mk
diff options
context:
space:
mode:
authorSatoshi Asami <asami@FreeBSD.org>2000-03-03 01:23:49 +0000
committerSatoshi Asami <asami@FreeBSD.org>2000-03-03 01:23:49 +0000
commitae1b35809756eb1848960063d9d9971d253eb97c (patch)
tree45f7ff406df11673dcb3ee476c01d0e418dbc40e /Mk/bsd.port.mk
parentf95eee7f030fb1334ef56dd0dfa7aa2150d22979 (diff)
downloadports-ae1b35809756eb1848960063d9d9971d253eb97c.tar.gz
ports-ae1b35809756eb1848960063d9d9971d253eb97c.zip
(1) Speedup dependency cleaning.
Submitted by: Jeremy Lea <reg@shale.csir.co.za> Reviewed by: From: Will Andrews <andrews@TECHNOLOGIST.COM> PR: 14760 (2) More OpenSSL refinement. Submitted by: Kris Kennaway <kris@FreeBSD.org> (3) Forgot to add USE_NEWGCC to USE_QT comment in previous commit. Submitted by: Will Andrews <andrews@technologist.com>
Notes
Notes: svn path=/head/; revision=26502
Diffstat (limited to 'Mk/bsd.port.mk')
-rw-r--r--Mk/bsd.port.mk73
1 files changed, 44 insertions, 29 deletions
diff --git a/Mk/bsd.port.mk b/Mk/bsd.port.mk
index 35328c4d948c..df50e2308e66 100644
--- a/Mk/bsd.port.mk
+++ b/Mk/bsd.port.mk
@@ -146,6 +146,7 @@ FreeBSD_MAINTAINER= asami@FreeBSD.org
# USE_X_PREFIX - Says that the port installs in ${X11BASE}. Implies USE_XLIB.
# USE_XLIB - Says that the port uses X libraries.
# USE_QT - Says that the port uses version 1 of the qt toolkit.
+# Implies USE_NEWGCC.
# USE_QT2 - Says that the port uses version 2 of the qt toolkit.
# Implies USE_NEWGCC.
#
@@ -573,7 +574,8 @@ PREFIX?= ${LOCALBASE}
.if defined(USE_OPENSSL)
.if ${OSVERSION} >= 400014
-.if !exists(/usr/lib/libcrypto.a)
+.if !exists(/usr/lib/libcrypto.so)
+.BEGIN:
@${ECHO} "This port requires the OpenSSL library, which is part of"
@${ECHO} "the FreeBSD crypto distribution but not installed on your"
@${ECHO} "machine. Please see Chapter 6.5 in the handbook for"
@@ -581,16 +583,6 @@ PREFIX?= ${LOCALBASE}
@${ECHO} "OpenSSL distribution."
@${FALSE}
.else
-.if ${USE_OPENSSL} == RSA
-_HASRSA= "`/usr/bin/nm /usr/lib/libcrypto.a | /usr/bin/grep RSA_free`"
-.if empty(_HASRSA)
-.BEGIN:
- @${ECHO} "This port requires RSA crypto, which is not present in your"
- @${ECHO} "version of OpenSSL. Please see Chapter 6.5 in the handbook"
- @${ECHO} "for a description of the problem and alternative solutions."
- @${FALSE}
-.endif
-.endif
OPENSSLBASE= /usr
OPENSSLDIR= /etc/ssl
# OpenSSL in the base system doesn't include IDEA for patent reasons.
@@ -2435,24 +2427,32 @@ misc-depends:
.endif
+# Clean dependency lists: build and runtime. Print out directory names.
+
+clean-depends-list:
+ @${CLEAN-DEPENDS-LIST}
+
+CLEAN-DEPENDS-LIST= \
+ checked="${PARENT_CHECKED}"; \
+ for dir in $$(${ECHO} "${FETCH_DEPENDS} ${BUILD_DEPENDS} ${LIB_DEPENDS} ${RUN_DEPENDS}" | ${TR} '\040' '\012' | ${SED} -e 's/^[^:]*://' -e 's/:.*//') $$(${ECHO} ${DEPENDS} | ${TR} '\040' '\012' | ${SED} -e 's/:.*//'); do \
+ if [ -d $$dir ]; then \
+ if (${ECHO} $$checked | ${GREP} -qwv "$$dir"); then \
+ child=$$(cd $$dir; ${MAKE} PARENT_CHECKED="$$checked" clean-depends-list); \
+ for d in $$child; do ${ECHO} $$d; done; \
+ ${ECHO} $$dir; \
+ checked="$$dir $$child $$checked"; \
+ fi; \
+ else \
+ ${ECHO_MSG} "${PKGNAME}: \"$$dir\" non-existent -- dependency list incomplete" >&2; \
+ fi; \
+ done | sort -u
+
.if !target(clean-depends)
clean-depends:
-.if defined(FETCH_DEPENDS) || defined(BUILD_DEPENDS) || defined(LIB_DEPENDS) \
- || defined(RUN_DEPENDS)
- @for dir in `${ECHO} "${FETCH_DEPENDS} ${BUILD_DEPENDS} ${LIB_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); \
- fi \
+ @for dir in `${CLEAN-DEPENDS-LIST}`; do \
+ (cd $$dir; ${MAKE} NOCLEANDEPENDS=yes clean); \
done
.endif
-.if defined(DEPENDS)
- @for dir in `${ECHO} "${DEPENDS}" | ${TR} '\040' '\012' | ${SED} -e 's/:.*//' | sort -u`; do \
- if [ -d $$dir ] ; then \
- (cd $$dir; ${MAKE} NOCLEANDEPENDS=yes clean clean-depends); \
- fi \
- done
-.endif
-.endif
# Dependency lists: build and runtime. Print out directory names.
@@ -2480,14 +2480,29 @@ RUN-DEPENDS-LIST= \
fi; \
done | sort -u
-# This one does not print out directory names -- it could take a long time.
-package-depends:
- @for dir in `${ECHO} "${LIB_DEPENDS} ${RUN_DEPENDS}" | ${TR} '\040' '\012' | ${SED} -e 's/^[^:]*://' -e 's/:.*//' | sort -u` `${ECHO} ${DEPENDS} | ${TR} '\040' '\012' | ${SED} -e 's/:.*//' | sort -u`; do \
+# Clean dependency lists: build and runtime. Print out directory names.
+
+package-depends-list:
+ @${PACKAGE-DEPENDS-LIST}
+
+PACKAGE-DEPENDS-LIST= \
+ checked="${PARENT_CHECKED}"; \
+ for dir in $$(${ECHO} "${LIB_DEPENDS} ${RUN_DEPENDS}" | ${TR} '\040' '\012' | ${SED} -e 's/^[^:]*://' -e 's/:.*//') $$(${ECHO} ${DEPENDS} | ${TR} '\040' '\012' | ${SED} -e 's/:.*//'); do \
if [ -d $$dir ]; then \
- (cd $$dir ; ${MAKE} package-name package-depends); \
+ if (${ECHO} $$checked | ${GREP} -qwv "$$dir"); then \
+ child=$$(cd $$dir; ${MAKE} PARENT_CHECKED="$$checked" package-depends-list); \
+ for d in $$child; do ${ECHO} $$d; done; \
+ ${ECHO} $$dir; \
+ checked="$$dir $$child $$checked"; \
+ fi; \
else \
${ECHO_MSG} "${PKGNAME}: \"$$dir\" non-existent -- dependency list incomplete" >&2; \
fi; \
+ done | sort -u
+
+package-depends:
+ @for dir in `${PACKAGE-DEPENDS-LIST}`; do \
+ (cd $$dir; ${MAKE} package-name); \
done
################################################################