Split BUILD_DEPENDS into TOOL_DEPENDS and BUILD_DEPENDS in mk/. Build depends are target packages that are needed at build-time for, e.g., static libraries to link against, header files to include, &c. Tool depends are native packages that are needed at build-time for, e.g., compilers/linkers/&c. to run. Index: mk/bsd.pkg.mk =================================================================== RCS file: /cvsroot/pkgsrc/mk/bsd.pkg.mk,v retrieving revision 1.1987 diff -p -u -r1.1987 bsd.pkg.mk --- mk/bsd.pkg.mk 22 Feb 2013 13:35:27 -0000 1.1987 +++ mk/bsd.pkg.mk 23 Apr 2013 13:29:19 -0000 @@ -96,6 +96,7 @@ MAINTAINER?= pkgsrc-users@NetBSD.org .endif PKGWILDCARD?= ${PKGBASE}-[0-9]* SVR4_PKGNAME?= ${PKGNAME} +TOOL_DEPENDS?= # empty WRKSRC?= ${WRKDIR}/${DISTNAME} # Override for SU_CMD user check Index: mk/bsd.pkg.readme.mk =================================================================== RCS file: /cvsroot/pkgsrc/mk/bsd.pkg.readme.mk,v retrieving revision 1.25 diff -p -u -r1.25 bsd.pkg.readme.mk --- mk/bsd.pkg.readme.mk 8 Sep 2011 20:17:15 -0000 1.25 +++ mk/bsd.pkg.readme.mk 23 Apr 2013 13:29:19 -0000 @@ -153,6 +153,8 @@ binpkg-list: # description-file|maintainer|categories|build deps|run deps|for arch| \ # not for opsys # +# XXX Need to handle BUILD_DEPENDS/TOOL_DEPENDS split. +# .PHONY: describe .if !target(describe) describe: Index: mk/bsd.pkg.use.mk =================================================================== RCS file: /cvsroot/pkgsrc/mk/bsd.pkg.use.mk,v retrieving revision 1.51 diff -p -u -r1.51 bsd.pkg.use.mk --- mk/bsd.pkg.use.mk 19 Mar 2012 12:34:14 -0000 1.51 +++ mk/bsd.pkg.use.mk 23 Apr 2013 13:29:19 -0000 @@ -90,15 +90,24 @@ BUILD_DEFS+= KERBEROS # LIBTOOL is the publicly-readable variable that should be used by # Makefiles to invoke the proper libtool. # +.if !empty(USE_CROSS_COMPILE:M[yY][eE][sS]) +PKG_LIBTOOL?= ${CROSSBASE}/bin/libtool +PKG_SHLIBTOOL?= ${CROSSBASE}/bin/shlibtool +.else PKG_LIBTOOL?= ${LOCALBASE}/bin/libtool PKG_SHLIBTOOL?= ${LOCALBASE}/bin/shlibtool +.endif _LIBTOOL?= ${PKG_LIBTOOL} _SHLIBTOOL?= ${PKG_SHLIBTOOL} LIBTOOL?= ${PKG_LIBTOOL} SHLIBTOOL?= ${PKG_SHLIBTOOL} .if defined(USE_LIBTOOL) LIBTOOL_REQD?= 2.2.6bnb3 -BUILD_DEPENDS+= libtool-base>=${_OPSYS_LIBTOOL_REQD:U${LIBTOOL_REQD}}:../../devel/libtool-base +.if !empty(USE_CROSS_COMPILE:M[yY][eE][sS]) +TOOL_DEPENDS+= cross-libtool-base-${MACHINE_ARCH}>=${_OPSYS_LIBTOOL_REQD:U${LIBTOOL_REQD}}:../../cross/libtool-base +.else +TOOL_DEPENDS+= libtool-base>=${_OPSYS_LIBTOOL_REQD:U${LIBTOOL_REQD}}:../../devel/libtool-base +.endif CONFIGURE_ENV+= LIBTOOL="${LIBTOOL} ${LIBTOOL_FLAGS}" MAKE_ENV+= LIBTOOL="${LIBTOOL} ${LIBTOOL_FLAGS}" .endif Index: mk/bsd.utils.mk =================================================================== RCS file: /cvsroot/pkgsrc/mk/bsd.utils.mk,v retrieving revision 1.9 diff -p -u -r1.9 bsd.utils.mk --- mk/bsd.utils.mk 8 Sep 2011 20:17:15 -0000 1.9 +++ mk/bsd.utils.mk 23 Apr 2013 13:29:19 -0000 @@ -10,7 +10,7 @@ # DEPENDS_TYPE?= all .if !empty(DEPENDS_TYPE:Mbuild) || !empty(DEPENDS_TYPE:Mall) -_ALL_DEPENDS+= ${BOOTSTRAP_DEPENDS} ${BUILD_DEPENDS} +_ALL_DEPENDS+= ${BOOTSTRAP_DEPENDS} ${BUILD_DEPENDS} ${TOOL_DEPENDS} .endif .if !empty(DEPENDS_TYPE:Minstall) || !empty(DEPENDS_TYPE:Mpackage) || \ !empty(DEPENDS_TYPE:Mall) @@ -32,6 +32,8 @@ show-depends-dirs show-depends-pkgpaths: # _DEPENDS_WALK_CMD holds the command (sans arguments) to walk the # dependency graph for a package. # +# XXX Need to handle TOOL_DEPENDS/BUILD_DEPENDS split and cross-compilation. +# _DEPENDS_WALK_MAKEFLAGS?= ${MAKEFLAGS} _DEPENDS_WALK_CMD= \ ${PKGSRC_SETENV} ECHO=${TOOLS_ECHO:Q} MAKE=${MAKE:Q} \ Index: mk/check/check-perms.mk =================================================================== RCS file: /cvsroot/pkgsrc/mk/check/check-perms.mk,v retrieving revision 1.13 diff -p -u -r1.13 check-perms.mk --- mk/check/check-perms.mk 24 Aug 2010 19:08:29 -0000 1.13 +++ mk/check/check-perms.mk 23 Apr 2013 13:29:19 -0000 @@ -55,7 +55,7 @@ _CHECK_PERMS_FLAGS= -c .endif .if !empty(CHECK_PERMS:M[Yy][Ee][Ss]) -BUILD_DEPENDS+= checkperms>=1.1:../../sysutils/checkperms +TOOL_DEPENDS+= checkperms>=1.1:../../sysutils/checkperms privileged-install-hook: _check-perms .endif @@ -75,7 +75,7 @@ _CHECK_PERMS_GETDIRS_AWK= \ _check-perms: .PHONY @${STEP_MSG} "Checking file permissions in ${PKGNAME}" - ${RUN} ${PKG_INFO} -qe "checkperms>=1.1" \ + ${RUN} ${HOST_PKG_INFO} -qe "checkperms>=1.1" \ || { \ ${WARNING_MSG} "[check-perms.mk] Skipping file permissions check."; \ ${WARNING_MSG} "[check-perms.mk] Install sysutils/checkperms to enable this check."; \ Index: mk/compiler/ccache.mk =================================================================== RCS file: /cvsroot/pkgsrc/mk/compiler/ccache.mk,v retrieving revision 1.33 diff -p -u -r1.33 ccache.mk --- mk/compiler/ccache.mk 6 Mar 2012 02:44:54 -0000 1.33 +++ mk/compiler/ccache.mk 23 Apr 2013 13:29:19 -0000 @@ -115,7 +115,7 @@ PREPEND_PATH+= ${_CCACHE_DIR}/bin # Add the dependency on ccache. . if ${CCACHE_BASE} == ${LOCALBASE} -BUILD_DEPENDS+= ccache-[0-9]*:../../devel/ccache +TOOL_DEPENDS+= ccache-[0-9]*:../../devel/ccache . endif # Override the compiler-specific hash with the version string for the Index: mk/compiler/clang.mk =================================================================== RCS file: /cvsroot/pkgsrc/mk/compiler/clang.mk,v retrieving revision 1.8 diff -p -u -r1.8 clang.mk --- mk/compiler/clang.mk 21 Feb 2013 07:57:19 -0000 1.8 +++ mk/compiler/clang.mk 23 Apr 2013 13:29:19 -0000 @@ -13,7 +13,7 @@ COMPILER_CLANG_MK= defined # Add the dependency on clang # TODO: may be installed already, check for this -#BUILD_DEPENDS+= clang-[0-9]*:../../lang/clang +#TOOL_DEPENDS+= clang-[0-9]*:../../lang/clang .include "../../mk/bsd.prefs.mk" Index: mk/compiler/distcc.mk =================================================================== RCS file: /cvsroot/pkgsrc/mk/compiler/distcc.mk,v retrieving revision 1.30 diff -p -u -r1.30 distcc.mk --- mk/compiler/distcc.mk 7 Feb 2008 20:59:05 -0000 1.30 +++ mk/compiler/distcc.mk 23 Apr 2013 13:29:19 -0000 @@ -93,7 +93,7 @@ PREPEND_PATH+= ${_DISTCC_DIR}/bin . endif # Add the dependency on distcc. -BUILD_DEPENDS+= distcc-[0-9]*:../../devel/distcc +TOOL_DEPENDS+= distcc-[0-9]*:../../devel/distcc . if defined(DISTCC_HOSTS) && !empty(DISTCC_HOSTS) PKGSRC_MAKE_ENV+= DISTCC_HOSTS=${DISTCC_HOSTS:Q} Index: mk/compiler/f2c.mk =================================================================== RCS file: /cvsroot/pkgsrc/mk/compiler/f2c.mk,v retrieving revision 1.15 diff -p -u -r1.15 f2c.mk --- mk/compiler/f2c.mk 30 Jul 2010 07:58:59 -0000 1.15 +++ mk/compiler/f2c.mk 23 Apr 2013 13:29:19 -0000 @@ -88,9 +88,9 @@ PREPEND_PATH+= ${_F2C_DIR}/bin . endif # Dependencies: -BUILD_DEPENDS+= f2c>=20090411nb2:../../lang/f2c # translator +TOOL_DEPENDS+= f2c>=20090411nb2:../../lang/f2c # translator -.if empty(PKGPATH:Mdevel/libtool-base) # See below +.if empty(PKGPATH:Mdevel/libtool-base) && empty(PKGPATH:Mcross/libtool-base) # See below . include "../../devel/libf2c/buildlink3.mk" # library .endif @@ -99,7 +99,7 @@ PKGSRC_MAKE_ENV+= F2C_DIR=${F2C_DIR:Q} . endif # libtool-base is special as it only needs f77 to extract linker flags etc. -.if !empty(PKGPATH:Mdevel/libtool-base) +.if !empty(PKGPATH:Mdevel/libtool-base) || !empty(PKGPATH:Mcross/libtool-base) pre-configure: fake-f2c-libs _WRAP_EXTRA_ARGS.FC+= -L${WRKDIR}/.f2c/lib -I${WRKDIR}/.f2c/include Index: mk/compiler/pcc.mk =================================================================== RCS file: /cvsroot/pkgsrc/mk/compiler/pcc.mk,v retrieving revision 1.5 diff -p -u -r1.5 pcc.mk --- mk/compiler/pcc.mk 26 Dec 2010 14:23:47 -0000 1.5 +++ mk/compiler/pcc.mk 23 Apr 2013 13:29:19 -0000 @@ -14,7 +14,7 @@ COMPILER_PCC_MK= defined # Add the dependency on pcc # NOTE: not enabled by default as may be installed already # TODO: check for this? -#BUILD_DEPENDS+= pcc-[0-9]*:../../lang/pcc +#TOOL_DEPENDS+= pcc-[0-9]*:../../lang/pcc .include "../../mk/bsd.prefs.mk" Index: mk/depends/bsd.depends.mk =================================================================== RCS file: /cvsroot/pkgsrc/mk/depends/bsd.depends.mk,v retrieving revision 1.23 diff -p -u -r1.23 bsd.depends.mk --- mk/depends/bsd.depends.mk 1 Oct 2012 09:54:18 -0000 1.23 +++ mk/depends/bsd.depends.mk 23 Apr 2013 13:29:19 -0000 @@ -109,6 +109,6 @@ depends-cookie: # Command line variables: # # VARNAME -# Either DEPENDS or BUILD_DEPENDS. +# DEPENDS, BUILD_DEPENDS, or TOOL_DEPENDS. # show-depends: .PHONY _pkgformat-show-depends Index: mk/emulator/pkg-rpm.mk =================================================================== RCS file: /cvsroot/pkgsrc/mk/emulator/pkg-rpm.mk,v retrieving revision 1.4 diff -p -u -r1.4 pkg-rpm.mk --- mk/emulator/pkg-rpm.mk 7 Sep 2010 17:33:40 -0000 1.4 +++ mk/emulator/pkg-rpm.mk 23 Apr 2013 13:29:19 -0000 @@ -56,7 +56,7 @@ # files listed in RPMFILES. # -BUILD_DEPENDS+= rpm2pkg>=3.1.4:../../pkgtools/rpm2pkg +TOOL_DEPENDS+= rpm2pkg>=3.1.4:../../pkgtools/rpm2pkg EVAL_PREFIX+= _RPM2PKG_PREFIX=rpm2pkg RPM2PKG= ${_RPM2PKG_PREFIX}/sbin/rpm2pkg Index: mk/pkgformat/pkg/deinstall.mk =================================================================== RCS file: /cvsroot/pkgsrc/mk/pkgformat/pkg/deinstall.mk,v retrieving revision 1.1 diff -p -u -r1.1 deinstall.mk --- mk/pkgformat/pkg/deinstall.mk 15 Oct 2011 00:23:09 -0000 1.1 +++ mk/pkgformat/pkg/deinstall.mk 23 Apr 2013 13:29:19 -0000 @@ -46,6 +46,7 @@ _pkgformat-deinstall: .PHONY ${PKG_DELETE} ${_PKG_ARGS_DEINSTALL} "$$found" || ${TRUE} ; \ fi .if defined(DEINSTALLDEPENDS) && !empty(DEINSTALLDEPENDS:M[yY][eE][sS]) +# XXX Need to handle BUILD_DEPENDS/TOOL_DEPENDS split. . for _pkg_ in ${BUILD_DEPENDS:C/:.*$//} ${RUN} \ found=`${_PKG_BEST_EXISTS} ${_pkg_:Q} || ${TRUE}`; \ Index: mk/pkgformat/pkg/depends.mk =================================================================== RCS file: /cvsroot/pkgsrc/mk/pkgformat/pkg/depends.mk,v retrieving revision 1.2 diff -p -u -r1.2 depends.mk --- mk/pkgformat/pkg/depends.mk 2 Jul 2012 14:53:13 -0000 1.2 +++ mk/pkgformat/pkg/depends.mk 23 Apr 2013 13:29:19 -0000 @@ -33,18 +33,26 @@ _FULL_DEPENDS_CMD= \ ${AWK} '$$1 == "full" { print $$3; }' < ${_RDEPENDS_FILE} _REDUCE_DEPENDS_CMD= ${PKGSRC_SETENV} CAT=${CAT:Q} \ - PKG_ADMIN=${PKG_ADMIN_CMD:Q} \ + PKG_ADMIN=${PKG_ADMIN:Q} \ + PWD_CMD=${PWD_CMD:Q} TEST=${TEST:Q} \ + ${AWK} -f ${PKGSRCDIR}/mk/pkgformat/pkg/reduce-depends.awk + +_HOST_REDUCE_DEPENDS_CMD= \ + ${PKGSRC_SETENV} CAT=${CAT:Q} \ + PKG_ADMIN=${HOST_PKG_ADMIN:Q} \ PWD_CMD=${PWD_CMD:Q} TEST=${TEST:Q} \ ${AWK} -f ${PKGSRCDIR}/mk/pkgformat/pkg/reduce-depends.awk _REDUCE_RESOLVED_DEPENDS_CMD=${PKGSRC_SETENV} CAT=${CAT:Q} \ - PKG_INFO=${PKG_INFO_CMD:Q} \ + PKG_INFO=${PKG_INFO:Q} \ + HOST_PKG_INFO=${HOST_PKG_INFO:Q} \ ${AWK} -f ${PKGSRCDIR}/mk/pkgformat/pkg/reduce-resolved-depends.awk \ < ${_RDEPENDS_FILE} _pkgformat-show-depends: .PHONY @case ${VARNAME:Q}"" in \ BUILD_DEPENDS) ${_REDUCE_DEPENDS_CMD} ${BUILD_DEPENDS:Q} ;; \ + TOOL_DEPENDS) ${_HOST_REDUCE_DEPENDS_CMD} ${TOOL_DEPENDS:Q} ;;\ DEPENDS|*) ${_REDUCE_DEPENDS_CMD} ${DEPENDS:Q} ;; \ esac @@ -53,6 +61,7 @@ _LIST_DEPENDS_CMD= \ PKGSRCDIR=${PKGSRCDIR:Q} PWD_CMD=${PWD_CMD:Q} SED=${SED:Q} \ ${SH} ${PKGSRCDIR}/mk/pkgformat/pkg/list-dependencies \ " "${BOOTSTRAP_DEPENDS:Q} \ + " "${TOOL_DEPENDS:Q} \ " "${BUILD_DEPENDS:Q} \ " "${DEPENDS:Q} @@ -60,13 +69,15 @@ _LIST_DEPENDS_CMD.bootstrap= \ ${PKGSRC_SETENV} AWK=${AWK:Q} PKG_ADMIN=${PKG_ADMIN:Q} \ PKGSRCDIR=${PKGSRCDIR:Q} PWD_CMD=${PWD_CMD:Q} SED=${SED:Q} \ ${SH} ${PKGSRCDIR}/mk/pkgformat/pkg/list-dependencies \ - " "${BOOTSTRAP_DEPENDS:Q} " " " " + " "${BOOTSTRAP_DEPENDS:Q} " " " " " " _RESOLVE_DEPENDS_CMD= \ ${PKGSRC_SETENV} _PKG_DBDIR=${_PKG_DBDIR:Q} PKG_INFO=${PKG_INFO:Q} \ + HOST_PKG_INFO=${HOST_PKG_INFO:Q} \ _DEPENDS_FILE=${_DEPENDS_FILE:Q} \ ${SH} ${PKGSRCDIR}/mk/pkgformat/pkg/resolve-dependencies \ " "${BOOTSTRAP_DEPENDS:Q} \ + " "${TOOL_DEPENDS:Q} \ " "${BUILD_DEPENDS:Q} \ " "${DEPENDS:Q} @@ -76,12 +87,29 @@ _RESOLVE_DEPENDS_CMD= \ # @param $pattern The pattern of the package to be installed. # @param $dir The pkgsrc directory from which the package can be # built. -# @param $type The dependency type. Can be one of bootstrap, +# @param $type The dependency type. Can be one of bootstrap, tool, # build, full. # _DEPENDS_INSTALL_CMD= \ - pkg=`${_PKG_BEST_EXISTS} "$$pattern" || ${TRUE}`; \ - case $$type in bootstrap) Type=Bootstrap;; build) Type=Build;; full) Type=Full;; esac; \ + case $$type in bootstrap) Type=Bootstrap;; tool) Type=Tool;; build) Type=Build;; full) Type=Full;; esac; \ + case $$type in \ + bootstrap|tool) \ + if expr "${USE_CROSS_COMPILE:Uno}" : '[yY][eE][sS]' >/dev/null; then \ + extradep=""; \ + else \ + extradep=" ${PKGNAME}"; \ + fi; \ + cross=no; \ + archopt=TARGET_ARCH=${MACHINE_ARCH}; \ + pkg=`${_HOST_PKG_BEST_EXISTS} "$$pattern" || ${TRUE}`; \ + ;; \ + build|full) \ + extradep=" ${PKGNAME}"; \ + cross=${USE_CROSS_COMPILE:Uno}; \ + archopt=; \ + pkg=`${_PKG_BEST_EXISTS} "$$pattern" || ${TRUE}`; \ + ;; \ + esac; \ case "$$pkg" in \ "") \ ${STEP_MSG} "$$Type dependency $$pattern: NOT found"; \ @@ -89,8 +117,18 @@ _DEPENDS_INSTALL_CMD= \ ${STEP_MSG} "Verifying $$target for $$dir"; \ [ -d "$$dir" ] || ${FAIL_MSG} "[depends.mk] The directory \`\`$$dir'' does not exist."; \ cd $$dir; \ - ${PKGSRC_SETENV} ${PKGSRC_MAKE_ENV} _PKGSRC_DEPS=" ${PKGNAME}${_PKGSRC_DEPS}" PKGNAME_REQD="$$pattern" ${MAKE} ${MAKEFLAGS} _AUTOMATIC=yes $$target; \ - pkg=`${_PKG_BEST_EXISTS} "$$pattern" || ${TRUE}`; \ + ${PKGSRC_SETENV} ${PKGSRC_MAKE_ENV} \ + _PKGSRC_DEPS="$$extradep${_PKGSRC_DEPS}" \ + PKGNAME_REQD="$$pattern" \ + USE_CROSS_COMPILE=$$cross \ + $$archopt \ + ${MAKE} ${MAKEFLAGS} _AUTOMATIC=yes $$target; \ + case $$type in \ + bootstrap|tool) \ + pkg=`${_HOST_PKG_BEST_EXISTS} "$$pattern" || ${TRUE}`;; \ + build|full) \ + pkg=`${_PKG_BEST_EXISTS} "$$pattern" || ${TRUE}`;; \ + esac; \ case "$$pkg" in \ "") ${ERROR_MSG} "[depends.mk] A package matching \`\`$$pattern'' should"; \ ${ERROR_MSG} " be installed, but one cannot be found. Perhaps there is a"; \ @@ -100,7 +138,12 @@ _DEPENDS_INSTALL_CMD= \ ${STEP_MSG} "Returning to build of ${PKGNAME}"; \ ;; \ *) \ - objfmt=`${PKG_INFO} -Q OBJECT_FMT "$$pkg"`; \ + case $$type in \ + bootstrap|tool) \ + objfmt=`${HOST_PKG_INFO} -Q OBJECT_FMT "$$pkg"`;; \ + build|full) \ + objfmt=`${PKG_INFO} -Q OBJECT_FMT "$$pkg"`;; \ + esac; \ case "$$objfmt" in \ "") ${WARNING_MSG} "[depends.mk] Unknown object format for installed package $$pkg" ;; \ ${OBJECT_FMT}) ;; \ Index: mk/pkgformat/pkg/list-dependencies =================================================================== RCS file: /cvsroot/pkgsrc/mk/pkgformat/pkg/list-dependencies,v retrieving revision 1.1 diff -p -u -r1.1 list-dependencies --- mk/pkgformat/pkg/list-dependencies 15 Oct 2011 00:23:09 -0000 1.1 +++ mk/pkgformat/pkg/list-dependencies 23 Apr 2013 13:29:19 -0000 @@ -57,11 +57,12 @@ print_entries() { done } -if [ $# != 3 ]; then - echo "usage: list-dependencies bootstrap_depends build_depends depends" 1>&2 +if [ $# != 4 ]; then + echo "usage: list-dependencies bootstrap_depends tool_depends build_depends depends" 1>&2 exit 1 fi print_entries bootstrap "$1" -print_entries build "$2" -print_entries full "$3" +print_entries tool "$2" +print_entries build "$3" +print_entries full "$4" Index: mk/pkgformat/pkg/pkgformat-vars.mk =================================================================== RCS file: /cvsroot/pkgsrc/mk/pkgformat/pkg/pkgformat-vars.mk,v retrieving revision 1.2 diff -p -u -r1.2 pkgformat-vars.mk --- mk/pkgformat/pkg/pkgformat-vars.mk 13 Dec 2011 16:35:48 -0000 1.2 +++ mk/pkgformat/pkg/pkgformat-vars.mk 23 Apr 2013 13:29:19 -0000 @@ -23,8 +23,10 @@ PKG_DBDIR?= /var/db/pkg # .if ${PKG_INSTALLATION_TYPE} == "overwrite" _PKG_DBDIR= ${_CROSS_DESTDIR}${PKG_DBDIR} +_HOST_PKG_DBDIR= ${HOST_PKG_DBDIR:U${PKG_DBDIR}} .elif ${PKG_INSTALLATION_TYPE} == "pkgviews" _PKG_DBDIR= ${_CROSS_DESTDIR}${DEPOTBASE} +_HOST_PKG_DBDIR= ${HOST_DEPOTBASE:U${DEPOTBASE}} .endif PKG_ADD_CMD?= ${PKG_TOOLS_BIN}/pkg_add @@ -67,12 +69,14 @@ _AUDIT_CONFIG_OPTION= IGNORE_URL # correct package database directory. # PKGTOOLS_ARGS?= -K ${_PKG_DBDIR} +HOST_PKGTOOLS_ARGS?= -K ${_HOST_PKG_DBDIR} # Views are rooted in ${LOCALBASE}, all packages are depoted in # ${DEPOTBASE}, and the package database directory for the default view # is in ${PKG_DBDIR}. # -PKG_VIEW_ARGS?= -W ${LOCALBASE} -d ${DEPOTBASE} -k ${PKG_DBDIR} +PKG_VIEW_ARGS?= -W ${LOCALBASE} -d ${DEPOTBASE} -k ${_CROSS_DESTDIR}${PKG_DBDIR} +HOST_PKG_VIEW_ARGS?= -W ${LOCALBASE} -d ${DEPOTBASE} -k ${PKG_DBDIR} PKG_ADD?= ${PKG_ADD_CMD} ${PKGTOOLS_ARGS} PKG_ADMIN?= ${PKG_ADMIN_CMD} ${PKGTOOLS_ARGS} @@ -82,12 +86,21 @@ PKG_INFO?= ${PKG_INFO_CMD} ${PKGTOOLS_AR PKG_VIEW?= ${PKG_VIEW_CMD} ${PKG_VIEW_ARGS} LINKFARM?= ${LINKFARM_CMD} +HOST_PKG_ADD?= ${PKG_ADD_CMD} ${HOST-PKGTOOLS_ARGS} +HOST_PKG_ADMIN?= ${PKG_ADMIN_CMD} ${HOST_PKGTOOLS_ARGS} +HOST_PKG_CREATE?= ${PKG_CREATE_CMD} ${HOST_PKGTOOLS_ARGS} +HOST_PKG_DELETE?= ${PKG_DELETE_CMD} ${HOST_PKGTOOLS_ARGS} +HOST_PKG_INFO?= ${PKG_INFO_CMD} ${HOST_PKGTOOLS_ARGS} +HOST_PKG_VIEW?= ${PKG_VIEW_CMD} ${HOST_PKG_VIEW_ARGS} +HOST_LINKFARM?= ${LINKFARM_CMD} + # "${_PKG_BEST_EXISTS} pkgpattern" prints out the name of the installed # package that best matches pkgpattern. Use this instead of # "${PKG_INFO} -e pkgpattern" if the latter would return more than one # package name. # _PKG_BEST_EXISTS?= ${PKG_INFO} -E +_HOST_PKG_BEST_EXISTS?= ${HOST_PKG_INFO} -E # XXX Leave this here until all uses of this have been purged from the # XXX public parts of pkgsrc. Index: mk/pkgformat/pkg/reduce-resolved-depends.awk =================================================================== RCS file: /cvsroot/pkgsrc/mk/pkgformat/pkg/reduce-resolved-depends.awk,v retrieving revision 1.1 diff -p -u -r1.1 reduce-resolved-depends.awk --- mk/pkgformat/pkg/reduce-resolved-depends.awk 2 Jul 2012 14:53:13 -0000 1.1 +++ mk/pkgformat/pkg/reduce-resolved-depends.awk 23 Apr 2013 13:29:19 -0000 @@ -46,12 +46,14 @@ # ENVIRONMENT # CAT # PKG_INFO +# HOST_PKG_INFO (for cross-compilation) # ###################################################################### BEGIN { CAT = ENVIRON["CAT"] ? ENVIRON["CAT"] : "cat" PKG_INFO = ENVIRON["PKG_INFO"] ? ENVIRON["PKG_INFO"] : "pkg_info" + HOST_PKG_INFO = ENVIRON["HOST_PKG_INFO"] ? ENVIRON["HOST_PKG_INFO"] : "pkg_info" PROGNAME = "reduce-resolved-depends.awk" ERRCAT = CAT " 1>&2" @@ -61,7 +63,10 @@ BEGIN { print "ERROR: [" PROGNAME "] invalid dependency line " $0 | ERRCAT exit 1 } - if ($1 != "full" && $1 != "build" && $1 != "bootstrap") { + if ($1 != "full" && + $1 != "build" && + $1 != "tool" && + $1 != "bootstrap") { print "ERROR: [" PROGNAME "] invalid dependency line " $0 | ERRCAT exit 1 } @@ -77,6 +82,7 @@ BEGIN { if (type[i] == "full" && checked_full[pkg[i]] != 1) { checked_full[pkg[i]] = 1 checked_build[pkg[i]] = 1 + checked_tool[pkg[i]] = 1 checked_bootstrap[pkg[i]] = 1 print_line[i] = 1 } @@ -86,23 +92,45 @@ BEGIN { if (type[i] == "bootstrap" && checked_bootstrap[pkg[i]] != 1) { checked_bootstrap[pkg[i]] = 1 found = 0 - cmd = PKG_INFO " -qr " pkg[i] - while (cmd | getline dpkg) { - if (checked_full[dpkg] == 1) - found = 1 + if (PKG_INFO == HOST_PKG_INFO) { + cmd = PKG_INFO " -qr " pkg[i] + while (cmd | getline dpkg) { + if (checked_full[dpkg] == 1) + found = 1 + } + close(cmd) } - close(cmd) if (found == 0) print_line[i] = 1 } } for (i = 0; i < lines; ++i) { - if (type[i] == "build" && checked_build[pkg[i]] != 1) { - checked_build[pkg[i]] = 1 + if (type[i] == "tool" && checked_tool[pkg[i]] != 1) { + checked_tool[pkg[i]] = 1 if (checked_bootstrap[pkg[i]] == 1) continue found = 0 + if (PKG_INFO == HOST_PKG_INFO) { + cmd = PKG_INFO " -qr " pkg[i] + while (cmd | getline dpkg) { + if (checked_full[dpkg] == 1) + found = 1 + } + close(cmd) + } + if (found == 0) + print_line[i] = 1 + } + } + + for (i = 0; i < lines; ++i) { + if (type[i] == "build" && checked_build[pkg[i]] != 1) { + checked_build[pkg[i]] = 1 + if (PKG_INFO == HOST_PKG_INFO) + if (checked_bootstrap[pkg[i]] == 1) + continue + found = 0 cmd = PKG_INFO " -qr " pkg[i] while (cmd | getline dpkg) { if (checked_full[dpkg] == 1) Index: mk/pkgformat/pkg/resolve-dependencies =================================================================== RCS file: /cvsroot/pkgsrc/mk/pkgformat/pkg/resolve-dependencies,v retrieving revision 1.1 diff -p -u -r1.1 resolve-dependencies --- mk/pkgformat/pkg/resolve-dependencies 15 Oct 2011 00:23:09 -0000 1.1 +++ mk/pkgformat/pkg/resolve-dependencies 23 Apr 2013 13:29:19 -0000 @@ -30,11 +30,16 @@ error_msg() { } find_best() { - ${PKG_INFO} -E "$1" || ${TRUE} + case $1 in + bootstrap|tool) + ${HOST_PKG_INFO} -E "$2" || ${TRUE};; + build|full) + ${PKG_INFO} -E "$2" || ${TRUE};; + esac } ${CAT} ${DEPENDS_FILE} | while read type pattern dir; do - pkg=`find_best "$pattern"` + pkg=`find_best "$type" "$pattern"` case "$pkg" in "") error_msg "[resolve-dependencies] A package matching \`\`$pattern'' should" Index: mk/scripts/genindex.awk =================================================================== RCS file: /cvsroot/pkgsrc/mk/scripts/genindex.awk,v retrieving revision 1.7 diff -p -u -r1.7 genindex.awk --- mk/scripts/genindex.awk 7 Sep 2008 11:13:51 -0000 1.7 +++ mk/scripts/genindex.awk 23 Apr 2013 13:29:19 -0000 @@ -61,6 +61,7 @@ BEGIN { #depends /usr/pkgsrc/math/scilab xless-[0-9]*:../../x11/xless pvm-3.4.3:../../parallel/pvm3 # +# XXX Need to handle BUILD_DEPENDS/TOOL_DEPENDS split. /^(build_)?depends / { # # Read in the entire depends tree Index: mk/scripts/genreadme.awk =================================================================== RCS file: /cvsroot/pkgsrc/mk/scripts/genreadme.awk,v retrieving revision 1.34 diff -p -u -r1.34 genreadme.awk --- mk/scripts/genreadme.awk 21 Jul 2010 12:29:46 -0000 1.34 +++ mk/scripts/genreadme.awk 23 Apr 2013 13:29:19 -0000 @@ -406,6 +406,8 @@ END { close( binpkgs_file ); } + # XXX Need to handle BUILD_DEPENDS/TOOL_DEPENDS + # split. if( line ~/%%BUILD_DEPENDS%%/ ) { gsub(/%%BUILD_DEPENDS%%/, "", line); while((getline < htmldeps_file) > 0) { Index: mk/tools/autoconf.mk =================================================================== RCS file: /cvsroot/pkgsrc/mk/tools/autoconf.mk,v retrieving revision 1.15 diff -p -u -r1.15 autoconf.mk --- mk/tools/autoconf.mk 17 Mar 2009 22:13:36 -0000 1.15 +++ mk/tools/autoconf.mk 23 Apr 2013 13:29:19 -0000 @@ -95,7 +95,7 @@ AUTOCONF_REQD?= 2.50 . if !empty(USE_TOOLS:Mautoconf\:run) _TOOLS_DEPMETHOD.autoconf= DEPENDS . else -_TOOLS_DEPMETHOD.autoconf= BUILD_DEPENDS +_TOOLS_DEPMETHOD.autoconf= TOOL_DEPENDS . endif TOOLS_DEPENDS.autoconf?= autoconf>=${AUTOCONF_REQD}:../../devel/autoconf . if empty(${_TOOLS_DEPMETHOD.autoconf}:M${TOOLS_DEPENDS.autoconf}) @@ -135,7 +135,7 @@ AUTOCONF_REQD?= 2.13 . if !empty(USE_TOOLS:Mautoconf213\:run) _TOOLS_DEPMETHOD.autoconf213= DEPENDS . else -_TOOLS_DEPMETHOD.autoconf213= BUILD_DEPENDS +_TOOLS_DEPMETHOD.autoconf213= TOOL_DEPENDS . endif TOOLS_DEPENDS.autoconf213?= autoconf213>=${AUTOCONF_REQD}:../../devel/autoconf213 . if empty(${_TOOLS_DEPMETHOD.autoconf213}:M${TOOLS_DEPENDS.autoconf213}) Index: mk/tools/automake.mk =================================================================== RCS file: /cvsroot/pkgsrc/mk/tools/automake.mk,v retrieving revision 1.19 diff -p -u -r1.19 automake.mk --- mk/tools/automake.mk 10 Jun 2009 15:31:45 -0000 1.19 +++ mk/tools/automake.mk 23 Apr 2013 13:29:19 -0000 @@ -111,7 +111,7 @@ AUTOCONF_REQD?= 2.58 . if !empty(USE_TOOLS:Mautomake\:run) _TOOLS_DEPMETHOD.automake= DEPENDS . else -_TOOLS_DEPMETHOD.automake= BUILD_DEPENDS +_TOOLS_DEPMETHOD.automake= TOOL_DEPENDS . endif TOOLS_DEPENDS.automake?= automake>=${AUTOMAKE_REQD}:../../devel/automake . if empty(${_TOOLS_DEPMETHOD.automake}:M${TOOLS_DEPENDS.automake}) @@ -137,7 +137,7 @@ AUTOCONF_REQD?= 2.13 . if !empty(USE_TOOLS:Mautomake14\:run) _TOOLS_DEPMETHOD.automake14= DEPENDS . else -_TOOLS_DEPMETHOD.automake14= BUILD_DEPENDS +_TOOLS_DEPMETHOD.automake14= TOOL_DEPENDS . endif TOOLS_DEPENDS.automake14?= automake14>=${AUTOMAKE_REQD}:../../devel/automake14 . if empty(${_TOOLS_DEPMETHOD.automake14}:M${TOOLS_DEPENDS.automake14}) @@ -183,5 +183,5 @@ ${_TOOLS_AM_TYPE.${_t_}}+= ${_t_} .endif .if !empty(USE_TOOLS:Mgettext-m4) -BUILD_DEPENDS+= {gettext-0.10.35nb1,gettext-m4-[0-9]*}:../../devel/gettext-m4 +TOOL_DEPENDS+= {gettext-0.10.35nb1,gettext-m4-[0-9]*}:../../devel/gettext-m4 .endif Index: mk/tools/intltool.mk =================================================================== RCS file: /cvsroot/pkgsrc/mk/tools/intltool.mk,v retrieving revision 1.5 diff -p -u -r1.5 intltool.mk --- mk/tools/intltool.mk 17 Mar 2009 22:13:36 -0000 1.5 +++ mk/tools/intltool.mk 23 Apr 2013 13:29:19 -0000 @@ -50,7 +50,7 @@ TOOLS_DEPENDS.intltool?= intltool>=0.40. . if !empty(USE_TOOLS:Mintltool\:run) DEPENDS+= ${TOOLS_DEPENDS.intltool} . else -BUILD_DEPENDS+= ${TOOLS_DEPENDS.intltool} +TOOL_DEPENDS+= ${TOOLS_DEPENDS.intltool} . endif EVAL_PREFIX+= TOOLS_PREFIX.intltool=intltool . for _t_ in ${_TOOLS.intltool} Index: mk/tools/replace.mk =================================================================== RCS file: /cvsroot/pkgsrc/mk/tools/replace.mk,v retrieving revision 1.255 diff -p -u -r1.255 replace.mk --- mk/tools/replace.mk 16 Mar 2013 23:03:33 -0000 1.255 +++ mk/tools/replace.mk 23 Apr 2013 13:29:19 -0000 @@ -128,14 +128,14 @@ PKG_FAIL_REASON+= "\`\`bison'' and \`\`b # dependency is determined by the modifier specified for each tool: # # BOOTSTRAP_DEPENDS: :bootstrap -# BUILD_DEPENDS: :build (default), :pkgsrc +# TOOL_DEPENDS: :build (default), :pkgsrc # DEPENDS: :run # .for _t_ in ${USE_TOOLS:N*\:*} ${USE_TOOLS:M*\:bootstrap} _TOOLS_DEPMETHOD.${_t_:C/:.*//}= BOOTSTRAP_DEPENDS .endfor .for _t_ in ${USE_TOOLS:N*\:*} ${USE_TOOLS:M*\:build} ${USE_TOOLS:M*\:pkgsrc} -_TOOLS_DEPMETHOD.${_t_:C/:.*//}= BUILD_DEPENDS +_TOOLS_DEPMETHOD.${_t_:C/:.*//}= TOOL_DEPENDS .endfor .for _t_ in ${USE_TOOLS:M*\:run} _TOOLS_DEPMETHOD.${_t_:C/:.*//}= DEPENDS @@ -143,37 +143,37 @@ _TOOLS_DEPMETHOD.${_t_:C/:.*//}= DEPENDS .if !empty(_USE_TOOLS:Mbison-yacc) # bison-yacc > yacc . if defined(_TOOLS_DEPMETHOD.bison-yacc) && \ - (${_TOOLS_DEPMETHOD.bison-yacc} == "BUILD_DEPENDS") && \ + (${_TOOLS_DEPMETHOD.bison-yacc} == "TOOL_DEPENDS") && \ defined(_TOOLS_DEPMETHOD.yacc) _TOOLS_DEPMETHOD.bison-yacc= ${_TOOLS_DEPMETHOD.yacc} . endif .endif .if !empty(_USE_TOOLS:Mflex) # flex > lex -. if (${_TOOLS_DEPMETHOD.flex} == "BUILD_DEPENDS") && \ +. if (${_TOOLS_DEPMETHOD.flex} == "TOOL_DEPENDS") && \ defined(_TOOLS_DEPMETHOD.lex) _TOOLS_DEPMETHOD.flex= ${_TOOLS_DEPMETHOD.lex} . endif .endif .if !empty(_USE_TOOLS:Mgawk) # gawk > awk -. if (${_TOOLS_DEPMETHOD.gawk} == "BUILD_DEPENDS") && \ +. if (${_TOOLS_DEPMETHOD.gawk} == "TOOL_DEPENDS") && \ defined(_TOOLS_DEPMETHOD.awk) _TOOLS_DEPMETHOD.gawk= ${_TOOLS_DEPMETHOD.awk} . endif .endif .if !empty(_USE_TOOLS:Mgm4) # gm4 > m4 -. if (${_TOOLS_DEPMETHOD.gm4} == "BUILD_DEPENDS") && \ +. if (${_TOOLS_DEPMETHOD.gm4} == "TOOL_DEPENDS") && \ defined(_TOOLS_DEPMETHOD.m4) _TOOLS_DEPMETHOD.gm4= ${_TOOLS_DEPMETHOD.m4} . endif .endif .if !empty(_USE_TOOLS:Mgsed) # gsed > sed -. if (${_TOOLS_DEPMETHOD.gsed} == "BUILD_DEPENDS") && \ +. if (${_TOOLS_DEPMETHOD.gsed} == "TOOL_DEPENDS") && \ defined(_TOOLS_DEPMETHOD.sed) _TOOLS_DEPMETHOD.gsed= ${_TOOLS_DEPMETHOD.sed} . endif .endif .if !empty(_USE_TOOLS:Mgsoelim) # gsoelim > soelim -. if (${_TOOLS_DEPMETHOD.gsoelim} == "BUILD_DEPENDS") && \ +. if (${_TOOLS_DEPMETHOD.gsoelim} == "TOOL_DEPENDS") && \ defined(_TOOLS_DEPMETHOD.soelim) _TOOLS_DEPMETHOD.gsoelim= ${_TOOLS_DEPMETHOD.soelim} . endif