diff options
author | asami <asami@FreeBSD.org> | 1997-01-12 11:48:26 +0000 |
---|---|---|
committer | asami <asami@FreeBSD.org> | 1997-01-12 11:48:26 +0000 |
commit | e0ae5826ad482028984c1bd1bb4019743626a9f7 (patch) | |
tree | 86809e2aa0719345365b428bbf2df43379349180 | |
parent | e5f330155f8c04609c06861bc8b7d186f82092f6 (diff) | |
download | FreeBSD-src-e0ae5826ad482028984c1bd1bb4019743626a9f7.zip FreeBSD-src-e0ae5826ad482028984c1bd1bb4019743626a9f7.tar.gz |
(1) New variable, SCRIPTS_ENV, which is passed to scripts/configure
and scripts/{pre,post}-* as environment vars. Also, if BATCH is
set, "BATCH=yes" is automatically added to SCRIPTS_ENV.
(Requested by: max)
(2) The INSTALL_* macros are added to SCRIPTS_ENV and MAKE_ENV as
BSD_INSTALL_*. (Requested by: obrien)
(3) New variable MOTIF_ONLY, which will only build ports with
REQUIRES_MOTIF defined. This doesn't do dependencies right (what
if the depended port doesn't need Motif) yet.
(4) Try not to clean the same port twice in clean-depends when (for
instance) it's defined in both BUILD_DEPENDS and INSTALL_DEPENDS.
Note that it won't check chained dependencies so you may still see
the same port cleaned multiple times, but checking that far will
surely make this run slower than the un-"optimized" case so I left
it as is. (Requested by: jkh)
(5) Ignore *.rej files in patches/ directory in addition to *~ and
*.orig.
-rw-r--r-- | share/mk/bsd.port.mk | 66 |
1 files changed, 43 insertions, 23 deletions
diff --git a/share/mk/bsd.port.mk b/share/mk/bsd.port.mk index 637cbe8..e39ab51 100644 --- a/share/mk/bsd.port.mk +++ b/share/mk/bsd.port.mk @@ -6,7 +6,7 @@ # bsd.port.mk - 940820 Jordan K. Hubbard. # This file is in the public domain. # -# $Id: bsd.port.mk,v 1.243 1996/12/26 01:02:29 asami Exp $ +# $Id: bsd.port.mk,v 1.244 1997/01/10 21:02:27 wosch Exp $ # # Please view me with 4 column tabs! @@ -121,8 +121,12 @@ # GNU_CONFIGURE - Set if you are using GNU configure (optional). # CONFIGURE_SCRIPT - Name of configure script, defaults to 'configure'. # CONFIGURE_ARGS - Pass these args to configure if ${HAS_CONFIGURE} is set. -# CONFIGURE_ENV - Pass these env (shell-like) to configure if +# CONFIGURE_ENV - Pass these env (shell-like) to configure if # ${HAS_CONFIGURE} is set. +# SCRIPTS_ENV - Additional environment vars passed to scripts in +# ${SCRIPTDIR} executed by bsd.port.mk. +# MAKE_ENV - Additional environment vars passed to sub-make in build +# stage. # IS_INTERACTIVE - Set this if your port needs to interact with the user # during a build. User can then decide to skip this port by # setting ${BATCH}, or compiling only the interactive ports @@ -183,6 +187,8 @@ # MOTIFLIB - Set automatically to appropriate value depending on # ${MOTIF_STATIC}. Substitute references to -lXm with # patches to make your port conform to our standards. +# MOTIF_ONLY - If set, build Motif ports only. (Not much use except for +# building packages.) # # Variables to change if you want a special behavior: # @@ -384,6 +390,13 @@ INSTALL_DATA= \ INSTALL_MAN= \ ${INSTALL} ${COPY} -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} +INSTALL_MACROS= BSD_INSTALL_PROGRAM="${INSTALL_PROGRAM}" \ + BSD_INSTALL_SCRIPT="${INSTALL_SCRIPT}" \ + BSD_INSTALL_DATA="${INSTALL_DATA}" \ + BSD_INSTALL_MAN="${INSTALL_MAN}" +MAKE_ENV+= ${INSTALL_MACROS} +SCRIPTS_ENV+= ${INSTALL_MACROS} + # The user can override the NO_PACKAGE by specifying this from # the make command line .if defined(FORCE_PACKAGE) @@ -438,6 +451,7 @@ GZIP?= -9 GZIP_CMD?= /usr/bin/gzip -nf ${GZIP} GUNZIP_CMD?= /usr/bin/gunzip -f SED?= /usr/bin/sed +TR?= /usr/bin/tr # Used to print all the '===>' style prompts - override this to turn them off. ECHO_MSG?= ${ECHO} @@ -563,6 +577,17 @@ CONFIGURE_ARGS+= --prefix=${PREFIX} HAS_CONFIGURE= yes .endif +# Passed to most of script invocations +SCRIPTS_ENV+= CURDIR=${.CURDIR} DISTDIR=${DISTDIR} \ + WRKDIR=${WRKDIR} WRKSRC=${WRKSRC} PATCHDIR=${PATCHDIR} \ + SCRIPTDIR=${SCRIPTDIR} FILESDIR=${FILESDIR} \ + PORTSDIR=${PORTSDIR} DEPENDS="${DEPENDS}" \ + PREFIX=${PREFIX} LOCALBASE=${LOCALBASE} X11BASE=${X11BASE} + +.if defined(BATCH) +SCRIPTS_ENV+= BATCH=yes +.endif + MANPREFIX?= ${PREFIX} .for sect in 1 2 3 4 5 6 7 8 9 @@ -624,6 +649,8 @@ IGNORE= "is an interactive port" IGNORE= "is not an interactive port" .elif (defined(REQUIRES_MOTIF) && !defined(HAVE_MOTIF)) IGNORE= "requires Motif" +.elif (defined(MOTIF_ONLY) && !defined(REQUIRES_MOTIF)) +IGNORE= "does not require Motif" .elif (defined(NO_CDROM) && defined(FOR_CDROM)) IGNORE= "may not be placed on a CDROM: ${NO_CDROM}" .elif (defined(RESTRICTED) && defined(NO_RESTRICTED)) @@ -852,7 +879,7 @@ do-patch: ${ECHO_MSG} "===> Applying ${OPSYS} patches for ${PKGNAME}" ; \ for i in ${PATCHDIR}/patch-*; do \ case $$i in \ - *.orig|*~) \ + *.orig|*.rej|*~) \ ${ECHO_MSG} "===> Ignoring patchfile $$i" ; \ ;; \ *) \ @@ -872,11 +899,8 @@ do-patch: .if !target(do-configure) do-configure: @if [ -f ${SCRIPTDIR}/configure ]; then \ - cd ${.CURDIR} && ${SETENV} CURDIR=${.CURDIR} DISTDIR=${DISTDIR}\ - WRKDIR=${WRKDIR} WRKSRC=${WRKSRC} PATCHDIR=${PATCHDIR} \ - SCRIPTDIR=${SCRIPTDIR} FILESDIR=${FILESDIR} \ - PORTSDIR=${PORTSDIR} PREFIX=${PREFIX} DEPENDS="${DEPENDS}" \ - X11BASE=${X11BASE} /bin/sh ${SCRIPTDIR}/configure; \ + cd ${.CURDIR} && ${SETENV} ${SCRIPTS_ENV} /bin/sh \ + ${SCRIPTDIR}/configure; \ fi .if defined(HAS_CONFIGURE) @(cd ${WRKSRC} && CC="${CC}" ac_cv_path_CC="${CC}" CFLAGS="${CFLAGS}" \ @@ -1001,21 +1025,14 @@ _PORT_USE: .USE .endif @cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} ${.TARGET:S/^real-/pre-/} @if [ -f ${SCRIPTDIR}/${.TARGET:S/^real-/pre-/} ]; then \ - cd ${.CURDIR} && ${SETENV} CURDIR=${.CURDIR} DISTDIR=${DISTDIR} WRKDIR=${WRKDIR} \ - WRKSRC=${WRKSRC} PATCHDIR=${PATCHDIR} SCRIPTDIR=${SCRIPTDIR} \ - FILESDIR=${FILESDIR} PORTSDIR=${PORTSDIR} PREFIX=${PREFIX} \ - DEPENDS="${DEPENDS}" X11BASE=${X11BASE} \ - /bin/sh ${SCRIPTDIR}/${.TARGET:S/^real-/pre-/}; \ + cd ${.CURDIR} && ${SETENV} ${SCRIPTS_ENV} /bin/sh \ + ${SCRIPTDIR}/${.TARGET:S/^real-/pre-/}; \ fi @cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} ${.TARGET:S/^real-/do-/} @cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} ${.TARGET:S/^real-/post-/} @if [ -f ${SCRIPTDIR}/${.TARGET:S/^real-/post-/} ]; then \ - cd ${.CURDIR} && ${SETENV} CURDIR=${.CURDIR} DISTDIR=${DISTDIR}\ - WRKDIR=${WRKDIR} WRKSRC=${WRKSRC} PATCHDIR=${PATCHDIR} \ - SCRIPTDIR=${SCRIPTDIR} FILESDIR=${FILESDIR} \ - PORTSDIR=${PORTSDIR} PREFIX=${PREFIX} DEPENDS="${DEPENDS}" \ - X11BASE=${X11BASE} \ - /bin/sh ${SCRIPTDIR}/${.TARGET:S/^real-/post-/}; \ + cd ${.CURDIR} && ${SETENV} ${SCRIPTS_ENV} /bin/sh \ + ${SCRIPTDIR}/${.TARGET:S/^real-/post-/}; \ fi .if make(real-install) && defined(_MANPAGES) .if defined(MANCOMPRESSED) && defined(NOMANCOMPRESS) @@ -1444,14 +1461,17 @@ misc-depends: clean-depends: .if defined(FETCH_DEPENDS) || defined(BUILD_DEPENDS) || defined(LIB_DEPENDS) \ || defined(RUN_DEPENDS) - @for i in ${FETCH_DEPENDS} ${BUILD_DEPENDS} ${LIB_DEPENDS} ${RUN_DEPENDS}; do \ - dir=`${ECHO} $$i | ${SED} -e 's/.*://'`; \ - if [ -d $$dir ] ; then (cd $$dir; ${MAKE} clean); fi \ + @for dir in `${ECHO} ${FETCH_DEPENDS} ${BUILD_DEPENDS} ${LIB_DEPENDS} ${RUN_DEPENDS} | ${TR} '\040' '\012' | ${SED} -e 's/.*://' | sort | uniq`; do \ + if [ -d $$dir ] ; then \ + (cd $$dir; ${MAKE} NOCLEANDEPENDS=yes clean clean-depends); \ + fi \ done .endif .if defined(DEPENDS) @for dir in ${DEPENDS}; do \ - if [ -d $$dir ] ; then (cd $$dir; ${MAKE} clean); fi \ + if [ -d $$dir ] ; then \ + (cd $$dir; ${MAKE} NOCLEANDEPENDS=yes clean clean-depends); \ + fi \ done .endif .endif |