aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSatoshi Asami <asami@FreeBSD.org>1995-09-18 08:01:20 +0000
committerSatoshi Asami <asami@FreeBSD.org>1995-09-18 08:01:20 +0000
commit4d3e3514759e0eaa7dd8c73f6a78f856516b0159 (patch)
tree7178c263eef71fd45962e730b0e00a3af7c8e603
parentd426a2ade83deed3ca657d6848ad3a4f1cae0526 (diff)
downloadports-4d3e3514759e0eaa7dd8c73f6a78f856516b0159.tar.gz
ports-4d3e3514759e0eaa7dd8c73f6a78f856516b0159.zip
Split EXEC_DEPENDS into FETCH_DEPENDS, BUILD_DEPENDS and RUN_DEPENDS.
They are called from the fetch, extract and install targets, respectively. Also, only RUN_DEPENDS is put into the @pkgdep list of the package. EXEC_DEPENDS is still supported (for now), it is copied into BUILD_DEPENDS and RUN_DEPENDS. This will go away after we finish fixing all the ports Makefiles. This change fixes the following bug/features: (1) "make fetch" building and installing all the dependencies (2) Programs needed for building only (e.g., gmake) put into the packages' dependency lists ("why does the emacs package depend on gmake?") Reviewed by: the ports list
Notes
Notes: svn path=/head/; revision=2161
-rw-r--r--Mk/bsd.port.mk76
1 files changed, 61 insertions, 15 deletions
diff --git a/Mk/bsd.port.mk b/Mk/bsd.port.mk
index 8a5fc4c8f6c6..90b5cbcd0d93 100644
--- a/Mk/bsd.port.mk
+++ b/Mk/bsd.port.mk
@@ -3,7 +3,7 @@
# bsd.port.mk - 940820 Jordan K. Hubbard.
# This file is in the public domain.
#
-# $Id: bsd.port.mk,v 1.177 1995/08/29 11:57:40 asami Exp $
+# $Id: bsd.port.mk,v 1.178 1995/09/13 10:14:31 asami Exp $
#
# Please view me with 4 column tabs!
@@ -100,10 +100,23 @@
# during a build. User can then decide to skip this port by
# setting ${BATCH}, or compiling only the interactive ports
# by setting ${INTERACTIVE}.
-# EXEC_DEPENDS - A list of "prog:dir" pairs of other ports this
-# package depends on. "prog" is the name of an
-# executable. make will search your $PATH for it and go
-# into "dir" to do a "make all install" if it's not found.
+# FETCH_DEPENDS - A list of "prog:dir" pairs of other ports this
+# package depends in the "fetch" stage. "prog" is the
+# name of an executable. make will search your $PATH
+# for it and go into "dir" to do a "make all install"
+# if it's not found.
+# BUILD_DEPENDS - A list of "prog:dir" pairs of other ports this
+# package depends to build (somewhere between the
+# "extract" to "build" stage). "prog" is the name
+# of an executable. make will search your $PATH for
+# it and go into "dir" to do a "make all install" if
+# it's not found.
+# RUN_DEPENDS - A list of "prog:dir" pairs of other ports this package
+# depends to run. "prog" is the name of an
+# executable. make will search your $PATH for it and
+# go into "dir" to do a "make all install" if it's not
+# found. This will be build during the "install" stage
+# and its name will be put into the package as well.
# LIB_DEPENDS - A list of "lib:dir" pairs of other ports this package
# depends on. "lib" is the name of a shared library.
# make will use "ldconfig -r" to search for the
@@ -201,8 +214,13 @@ PREFIX?= ${X11BASE}
.else
PREFIX?= /usr/local
.endif
+# The following 4 lines should go away as soon as the ports are all updated
+.if defined(EXEC_DEPENDS)
+BUILD_DEPENDS+= ${EXEC_DEPENDS}
+RUN_DEPENDS+= ${EXEC_DEPENDS}
+.endif
.if defined(USE_GMAKE)
-EXEC_DEPENDS+= gmake:${PORTSDIR}/devel/gmake
+BUILD_DEPENDS+= gmake:${PORTSDIR}/devel/gmake
.endif
.if exists(${PORTSDIR}/../Makefile.inc)
@@ -674,6 +692,15 @@ delete-package:
################################################################
_PORT_USE: .USE
+.if make(real-fetch)
+ @${MAKE} ${.MAKEFLAGS} fetch-depends
+.endif
+.if make(real-extract)
+ @${MAKE} ${.MAKEFLAGS} build-depends lib-depends misc-depends
+.endif
+.if make(real-install)
+ @${MAKE} ${.MAKEFLAGS} run-depends
+.endif
.if make(real-install)
.if !defined(NO_MTREE)
@if [ `id -u` = 0 ]; then \
@@ -720,7 +747,7 @@ _PORT_USE: .USE
################################################################
.if !target(fetch)
-fetch: depends
+fetch:
@${MAKE} ${.MAKEFLAGS} real-fetch
.endif
@@ -921,7 +948,7 @@ package-name:
.if !target(package-depends)
package-depends:
- @for i in ${EXEC_DEPENDS} ${LIB_DEPENDS} ${DEPENDS}; do \
+ @for i in ${RUN_DEPENDS} ${LIB_DEPENDS} ${DEPENDS}; do \
dir=`/bin/echo $$i | /usr/bin/sed -e 's/.*://'`; \
(cd $$dir ; ${MAKE} package-name package-depends); \
done
@@ -949,19 +976,34 @@ package-noinstall:
################################################################
.if !target(depends)
-depends: exec_depends lib_depends misc_depends
+depends: lib-depends misc-depends
+ @${MAKE} ${.MAKEFLAGS} fetch-depends
+ @${MAKE} ${.MAKEFLAGS} build-depends
+ @${MAKE} ${.MAKEFLAGS} run-depends
-exec_depends:
-.if defined(EXEC_DEPENDS)
+.if make(fetch-depends)
+DEPENDS_TMP+= ${FETCH_DEPENDS}
+.endif
+
+.if make(build-depends)
+DEPENDS_TMP+= ${BUILD_DEPENDS}
+.endif
+
+.if make(run-depends)
+DEPENDS_TMP+= ${RUN_DEPENDS}
+.endif
+
+_DEPENDS_USE: .USE
+.if defined(DEPENDS_TMP)
.if defined(NO_DEPENDS)
# Just print out messages
- @for i in ${EXEC_DEPENDS}; do \
+ @for i in ${DEPENDS_TMP}; do \
prog=`/bin/echo $$i | /usr/bin/sed -e 's/:.*//'`; \
dir=`/bin/echo $$i | /usr/bin/sed -e 's/.*://'`; \
${ECHO_MSG} "===> ${PKGNAME} depends on executable: $$prog ($$dir)"; \
done
.else
- @for i in ${EXEC_DEPENDS}; do \
+ @for i in ${DEPENDS_TMP}; do \
prog=`/bin/echo $$i | /usr/bin/sed -e 's/:.*//'`; \
dir=`/bin/echo $$i | /usr/bin/sed -e 's/.*://'`; \
if which -s "$$prog"; then \
@@ -982,7 +1024,11 @@ exec_depends:
@${DO_NADA}
.endif
-lib_depends:
+fetch-depends: _DEPENDS_USE
+build-depends: _DEPENDS_USE
+run-depends: _DEPENDS_USE
+
+lib-depends:
.if defined(LIB_DEPENDS)
.if defined(NO_DEPENDS)
# Just print out messages
@@ -1013,7 +1059,7 @@ lib_depends:
@${DO_NADA}
.endif
-misc_depends:
+misc-depends:
.if defined(DEPENDS)
@${ECHO_MSG} "===> ${PKGNAME} depends on: ${DEPENDS}"
.if !defined(NO_DEPENDS)