From owner-svn-src-projects@FreeBSD.ORG Tue May 26 21:41:28 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 1B7B9DBA; Tue, 26 May 2015 21:41:28 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 089F2309; Tue, 26 May 2015 21:41:28 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t4QLfSRf002818; Tue, 26 May 2015 21:41:28 GMT (envelope-from sjg@FreeBSD.org) Received: (from sjg@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t4QLfRXs002813; Tue, 26 May 2015 21:41:27 GMT (envelope-from sjg@FreeBSD.org) Message-Id: <201505262141.t4QLfRXs002813@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: sjg set sender to sjg@FreeBSD.org using -f From: "Simon J. Gerraty" Date: Tue, 26 May 2015 21:41:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r283585 - projects/bmake/share/mk X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 May 2015 21:41:28 -0000 Author: sjg Date: Tue May 26 21:41:26 2015 New Revision: 283585 URL: https://svnweb.freebsd.org/changeset/base/283585 Log: Define SRCTOP in src.sys.mk Use SRCTOP to replace .../ in MAKSYSPATH (avoid extra :tA) Use SRCTOP rather than ROOTSRCDIR in src.libnames.mk Merge from head Modified: projects/bmake/share/mk/src.libnames.mk projects/bmake/share/mk/src.opts.mk projects/bmake/share/mk/src.sys.mk Modified: projects/bmake/share/mk/src.libnames.mk ============================================================================== --- projects/bmake/share/mk/src.libnames.mk Tue May 26 21:16:07 2015 (r283584) +++ projects/bmake/share/mk/src.libnames.mk Tue May 26 21:41:26 2015 (r283585) @@ -7,56 +7,363 @@ .error src.libnames.mk cannot be included directly. .endif -.if defined(OBJTOP) -ROOTOBJDIR= ${OBJTOP} +.include + +.if defined(MAKEOBJDIRPREFIX) && ${.OBJDIR:M${MAKEOBJDIRPREFIX}/*} != "" +ROOTOBJDIR= ${.OBJDIR:S/${.CURDIR}//}${SRCTOP} +.elif defined(OBJTOP) && ${.OBJDIR:M${OBJTOP}*} != "" +ROOTOBJDIR= ${OBJTOP} +.endif + +_PRIVATELIBS= \ + atf_c \ + atf_cxx \ + bsdstat \ + event \ + heimipcc \ + heimipcs \ + ldns \ + sqlite3 \ + ssh \ + ucl \ + unbound + +_INTERNALLIBS= \ + amu \ + bsnmptools \ + cron \ + elftc \ + fifolog \ + ipf \ + lpr \ + netbsd \ + ntp \ + ntpevent \ + ohash \ + opts \ + parse \ + readline \ + sl \ + sm \ + smdb \ + smutil \ + telnet \ + vers + +_LIBRARIES= \ + ${_PRIVATELIBS} \ + ${_INTERNALLIBS} \ + alias \ + archive \ + asn1 \ + auditd \ + begemot \ + bluetooth \ + bsdxml \ + bsm \ + bsnmp \ + bz2 \ + c \ + c_pic \ + calendar \ + cam \ + capsicum \ + casper \ + com_err \ + compiler_rt \ + crypt \ + crypto \ + ctf \ + cuse \ + cxxrt \ + devctl \ + devinfo \ + devstat \ + dialog \ + dpv \ + dtrace \ + dwarf \ + edit \ + elf \ + execinfo \ + fetch \ + figpar \ + geom \ + gnuregex \ + gpio \ + gssapi \ + gssapi_krb5 \ + hdb \ + heimbase \ + heimntlm \ + heimsqlite \ + hx509 \ + ipsec \ + jail \ + kadm5clnt \ + kadm5srv \ + kafs5 \ + kdc \ + kiconv \ + krb5 \ + kvm \ + l \ + lzma \ + m \ + magic \ + md \ + memstat \ + mp \ + mt \ + nandfs \ + ncurses \ + ncursesw \ + netgraph \ + ngatm \ + nv \ + opie \ + pam \ + pcap \ + pcsclite \ + pjdlog \ + pmc \ + proc \ + procstat \ + pthread \ + radius \ + readline \ + roken \ + rpcsec_gss \ + rpcsvc \ + rt \ + rtld_db \ + sbuf \ + sdp \ + sm \ + smb \ + ssl \ + ssp_nonshared \ + stdthreads \ + supcplusplus \ + tacplus \ + termcapw \ + ufs \ + ugidfw \ + ulog \ + usb \ + usbhid \ + util \ + vmmapi \ + wind \ + wrap \ + xo \ + y \ + ypclnt \ + z + +_DP_archive= z bz2 lzma bsdxml +.if ${MK_OPENSSL} != "no" +_DP_archive+= crypto +.else +_DP_archive+= md +.endif +_DP_ssl= crypto +_DP_ssh= crypto crypt +.if ${MK_LDNS} != "no" +_DP_ssh+= ldns z +.endif +_DP_edit= ncursesw +.if ${MK_OPENSSL} != "no" +_DP_bsnmp= crypto +.endif +_DP_geom= bsdxml sbuf +_DP_cam= sbuf +_DP_casper= capsicum nv pjdlog +_DP_capsicum= nv +_DP_pjdlog= util +_DP_opie= md +_DP_usb= pthread +_DP_unbound= pthread +_DP_rt= pthread +.if ${MK_OPENSSL} == "no" +_DP_radius= md +.else +_DP_radius= crypto +.endif +_DP_procstat= kvm util elf +.if ${MK_CXX} == "yes" +.if ${MK_LIBCPLUSPLUS} != "no" +_DP_proc= cxxrt +.else +_DP_proc= supcplusplus +.endif +.endif +.if ${MK_CDDL} != "no" +_DP_proc+= ctf +.endif +_DP_mp= crypto +_DP_memstat= kvm +_DP_magic= z +_DP_mt= bsdxml +_DP_ldns= crypto +.if ${MK_OPENSSL} != "no" +_DP_fetch= ssl crypto .else -ROOTOBJDIR= ${.OBJDIR:S/${.CURDIR}//}${.MAKE.MAKEFILES:M*/src.libnames.mk:H:H:H} +_DP_fetch= md +.endif +_DP_execinfo= elf +_DP_dwarf= elf +_DP_dpv= dialog figpar util +_DP_dialog= ncursesw m +_DP_cuse= pthread +_DP_atf_cxx= atf_c +_DP_devstat= kvm +_DP_pam= radius tacplus opie md util +.if ${MK_KERBEROS} != "no" +_DP_pam+= krb5 +.endif +.if ${MK_OPENSSH} != "no" +_DP_pam+= ssh +.endif +.if ${MK_NIS} != "no" +_DP_pam+= ypclnt +.endif +_DP_krb5+= asn1 com_err crypt crypto hx509 roken wind heimbase heimipcc \ + pthread +_DP_gssapi_krb5+= gssapi krb5 crypto roken asn1 com_err +_DP_lzma= pthread +_DP_ucl= m +_DP_vmmapi= util +_DP_ctf= z +_DP_proc= rtld_db util +_DP_dtrace= rtld_db pthread + +# Define spacial cases +LDADD_supcplusplus= -lsupc++ +LIBATF_C= ${DESTDIR}${LIBDIR}/libprivateatf-c.a +LIBATF_CXX= ${DESTDIR}${LIBDIR}/libprivateatf-c++.a +LDADD_atf_c= -lprivateatf-c +LDADD_atf_cxx= -lprivateatf-c++ + +.for _l in ${_PRIVATELIBS} +LIB${_l:tu}?= ${DESTDIR}${LIBDIR}/libprivate${_l}.a +.endfor + +.for _l in ${_LIBRARIES} +.if ${_INTERNALLIBS:M${_l}} +LDADD_${_l}_L+= -L${LIB${_l:tu}DIR} .endif +DPADD_${_l}?= ${LIB${_l:tu}} +.if ${_PRIVATELIBS:M${_l}} +LDADD_${_l}?= -lprivate${_l} +.else +LDADD_${_l}?= ${LDADD_${_l}_L} -l${_l} +.endif +.if defined(_DP_${_l}) && defined(NO_SHARED) +.for _d in ${_DP_${_l}} +DPADD_${_l}+= ${DPADD_${_d}} +LDADD_${_l}+= ${LDADD_${_d}} +.endfor +.endif +.endfor -LIBATF_CDIR= ${ROOTOBJDIR}/lib/atf/libatf-c -LDATF_C?= ${LIBATF_CDIR}/libatf-c.so -LIBATF_C?= ${LIBATF_CDIR}/libatf-c.a +DPADD_atf_cxx+= ${DPADD_atf_c} +LDADD_atf_cxx+= ${LDADD_atf_c} -LIBATF_CXXDIR= ${ROOTOBJDIR}/lib/atf/libatf-c++ -LDATF_CXX?= ${LIBATF_CXXDIR}/libatf-c++.so -LIBATF_CXX?= ${LIBATF_CXXDIR}/libatf-c++.a +DPADD_sqlite3+= ${DPADD_pthread} +LDADD_sqlite3+= ${LDADD_pthread} -LIBBSDSTATDIR= ${ROOTOBJDIR}/lib/libbsdstat -LDBSDSTAT?= ${LIBBSDSTATDIR}/libbsdstat.so -LIBBSDSTAT?= ${LIBBSDSTATDIR}/libbsdstat.a +DPADD_fifolog+= ${DPADD_z} +LDADD_fifolog+= ${LDADD_z} + +DPADD_ipf+= ${DPADD_kvm} +LDADD_ipf+= ${LDADD_kvm} + +DPADD_mt+= ${DPADD_sbuf} +LDADD_mt+= ${LDADD_sbuf} + +DPADD_dtrace+= ${DPADD_ctf} ${DPADD_elf} ${DPADD_proc} +LDADD_dtrace+= ${LDADD_ctf} ${LDADD_elf} ${LDADD_proc} + +# The following depends on libraries which are using pthread +DPADD_hdb+= ${DPADD_pthread} +LDADD_hdb+= ${LDADD_pthread} +DPADD_kadm5srv+= ${DPADD_pthread} +LDADD_kadm5srv+= ${LDADD_pthread} +DPADD_krb5+= ${DPADD_pthread} +LDADD_krb5+= ${LDADD_pthread} +DPADD_gssapi_krb5+= ${DPADD_pthread} +LDADD_gssapi_krb5+= ${LDADD_pthread} + +.for _l in ${LIBADD} +.if ${_PRIVATELIBS:M${_l}} +USEPRIVATELIB+= ${_l} +.endif +DPADD+= ${DPADD_${_l}:Umissing-dpadd_${_l}} +LDADD+= ${LDADD_${_l}} +.endfor -LIBEVENTDIR= ${ROOTOBJDIR}/lib/libevent -LDEVENT?= ${LIBEVENTDIR}/libevent.so -LIBEVENT?= ${LIBEVENTDIR}/libevent.a +.if defined(DPADD) && ${DPADD:Mmissing-dpadd_*} +.error Missing ${DPADD:Mmissing-dpadd_*:S/missing-dpadd_//:S/^/DPADD_/} variable add "${DPADD:Mmissing-dpadd_*:S/missing-dpadd_//}" to _LIBRARIES, _INTERNALLIBS, or _PRIVATELIBS and define "${DPADD:Mmissing-dpadd_*:S/missing-dpadd_//:S/^/LIB/:tu}". +.endif -LIBHEIMIPCCDIR= ${ROOTOBJDIR}/kerberos5/lib/libheimipcc -LDHEIMIPCC?= ${LIBHEIMIPCCDIR}/libheimipcc.so -LIBHEIMIPCC?= ${LIBHEIMIPCCDIR}/libheimipcc.a +LIBELFTCDIR= ${ROOTOBJDIR}/lib/libelftc +LIBELFTC?= ${LIBELFTCDIR}/libelftc.a -LIBHEIMIPCSDIR= ${ROOTOBJDIR}/kerberos5/lib/libheimipcs -LDHEIMIPCS?= ${LIBHEIMIPCSDIR}/libheimipcs.so -LIBHEIMIPCS?= ${LIBHEIMIPCSDIR}/libheimipcs.a +LIBREADLINEDIR= ${ROOTOBJDIR}/gnu/lib/libreadline/readline +LIBREADLINE?= ${LIBREADLINEDIR}/libreadline.a -LIBLDNSDIR= ${ROOTOBJDIR}/lib/libldns -LDLDNS?= ${LIBLDNSDIR}/libldns.so -LIBLDNS?= ${LIBLDNSDIR}/libldns.a +LIBOHASHDIR= ${ROOTOBJDIR}/lib/libohash +LIBOHASH?= ${LIBOHASHDIR}/libohash.a -LIBSSHDIR= ${ROOTOBJDIR}/secure/lib/libssh -LDSSH?= ${LIBSSHDIR}/libssh.so -LIBSSH?= ${LIBSSHDIR}/libssh.a +LIBSMDIR= ${ROOTOBJDIR}/lib/libsm +LIBSM?= ${LIBSMDIR}/libsm.a -LIBUNBOUNDDIR= ${ROOTOBJDIR}/lib/libunbound -LDUNBOUND?= ${LIBUNBOUNDDIR}/libunbound.so -LIBUNBOUND?= ${LIBUNBOUNDDIR}/libunbound.a +LIBSMDBDIR= ${ROOTOBJDIR}/lib/libsmdb +LIBSMDB?= ${LIBSMDBDIR}/libsmdb.a -LIBUCLDIR= ${ROOTOBJDIR}/lib/libucl -LDUCL?= ${LIBUCLDIR}/libucl.so -LIBUCL?= ${LIBUCLDIR}/libucl.a +LIBSMUTILDIR= ${ROOTOBJDIR}/lib/libsmutil +LIBSMUTIL?= ${LIBSMDBDIR}/libsmutil.a -LIBREADLINEDIR= ${ROOTOBJDIR}/gnu/lib/libreadline/readline -LDREADLINE?= ${LIBREADLINEDIR}/libreadline.a -LIBREADLINE?= ${LIBREADLINEDIR}/libreadline.a +LIBNETBSDDIR?= ${ROOTOBJDIR}/lib/libnetbsd +LIBNETBSD?= ${LIBNETBSDDIR}/libnetbsd.a + +LIBVERSDIR?= ${ROOTOBJDIR}/kerberos5/lib/libvers +LIBVERS?= ${LIBVERSDIR}/libvers.a + +LIBSLDIR= ${ROOTOBJDIR}/kerberos5/lib/libsl +LIBSL?= ${LIBSLDIR}/libsl.a + +LIBIPFDIR= ${ROOTOBJDIR}/sbin/ipf/libipf +LIBIPF?= ${LIBIPFDIR}/libipf.a + +LIBTELNETDIR= ${ROOTOBJDIR}/lib/libtelnet +LIBTELNET?= ${LIBIPFDIR}/libtelnet.a + +LIBCRONDIR= ${ROOTOBJDIR}/usr.sbin/cron/lib +LIBCRON?= ${LIBCRONDIR}/libcron.a + +LIBNTPDIR= ${ROOTOBJDIR}/usr.sbin/ntp/libntp +LIBNTP?= ${LIBNTPDIR}/libntp.a + +LIBNTPEVENTDIR= ${ROOTOBJDIR}/usr.sbin/ntp/libntpevent +LIBNTPEVENT?= ${LIBNTPEVENTDIR}/libntpevent.a + +LIBOPTSDIR= ${ROOTOBJDIR}/usr.sbin/ntp/libopts +LIBOTPS?= ${LIBOPTSDIR}/libopts.a + +LIBPARSEDIR= ${ROOTOBJDIR}/usr.sbin/ntp/libparse +LIBPARSE?= ${LIBPARSEDIR}/libparse.a + +LIBLPRDIR= ${ROOTOBJDIR}/usr.sbin/lpr/common_source +LIBLPR?= ${LIBOPTSDIR}/liblpr.a + +LIBFIFOLOGDIR= ${ROOTOBJDIR}/usr.sbin/fifolog/lib +LIBFIFOLOG?= ${LIBOPTSDIR}/libfifolog.a + +LIBBSNMPTOOLSDIR= ${ROOTOBJDIR}/usr.sbin/bsnmpd/tools/libbsnmptools +LIBBSNMPTOOLS?= ${LIBBSNMPTOOLSDIR}/libbsnmptools.a + +LIBAMUDIR= ${ROOTOBJDIR}/usr.sbin/amd/libamu +LIBAMU?= ${LIBAMUDIR}/libamu/libamu.a -LIBOHASHDIR= ${ROOTOBJDIR}/lib/libohash -LDOHASH?= ${LIBOHASHDIR}/libohash.a -LIBOHASH?= ${LIBOHASHDIR}/libohash.a Modified: projects/bmake/share/mk/src.opts.mk ============================================================================== --- projects/bmake/share/mk/src.opts.mk Tue May 26 21:16:07 2015 (r283584) +++ projects/bmake/share/mk/src.opts.mk Tue May 26 21:41:26 2015 (r283585) @@ -11,7 +11,7 @@ # are exceptions). Recursive makes usually add MK_FOO=no for options that they wish # to omit from that make. # -# Makefiles must include bsd.srcpot.mk before they test the value of any MK_FOO +# Makefiles must include bsd.mkopt.mk before they test the value of any MK_FOO # variable. # # Makefiles may also assume that this file is included by src.opts.mk should it @@ -52,16 +52,22 @@ __DEFAULT_YES_OPTIONS = \ ATM \ AUDIT \ AUTHPF \ + AUTOFS \ + BHYVE \ BINUTILS \ BINUTILS_BOOTSTRAP \ BLUETOOTH \ BOOT \ + BOOTPARAMD \ + BOOTPD \ BSD_CPIO \ + BSDINSTALL \ BSNMP \ BZIP2 \ CALENDAR \ CAPSICUM \ CASPER \ + CCD \ CDDL \ CPP \ CROSS_COMPILER \ @@ -73,29 +79,36 @@ __DEFAULT_YES_OPTIONS = \ DMAGENT \ DYNAMICROOT \ ED_CRYPTO \ + EE \ + ELFTOOLCHAIN_TOOLS \ EXAMPLES \ FDT \ + FILE \ + FINGER \ FLOPPY \ FMTREE \ FORTH \ FP_LIBC \ FREEBSD_UPDATE \ + FTP \ GAMES \ GCOV \ GDB \ GNU \ GNU_GREP_COMPAT \ - GPIB \ GPIO \ GPL_DTC \ GROFF \ + HAST \ HTML \ HYPERV \ ICONV \ INET \ INET6 \ + INETD \ IPFILTER \ IPFW \ + ISCSI \ JAIL \ KDUMP \ KVM \ @@ -128,7 +141,9 @@ __DEFAULT_YES_OPTIONS = \ PORTSNAP \ PPP \ QUOTAS \ + RADIUS_SUPPORT \ RCMDS \ + RBOOTD \ RCS \ RESCUE \ ROUTED \ @@ -139,13 +154,16 @@ __DEFAULT_YES_OPTIONS = \ SOURCELESS_HOST \ SOURCELESS_UCODE \ SVNLITE \ - SYSCALL_COMPAT \ SYSCONS \ SYSINSTALL \ + TALK \ + TCP_WRAPPERS \ TCSH \ TELNET \ TESTS \ TEXTPROC \ + TFTP \ + TIMED \ UNBOUND \ USB \ UTMPX \ @@ -169,9 +187,8 @@ __DEFAULT_NO_OPTIONS = \ OPENSSH_NONE_CIPHER \ SHARED_TOOLCHAIN \ SORT_THREADS \ - SVN \ STALE_STAGED \ - SYSROOT + SVN # # Default behaviour of some options depends on the architecture. Unfortunately @@ -192,25 +209,36 @@ __TT=${TARGET} .else __TT=${MACHINE} .endif -# Clang is only for x86, powerpc and little-endian arm right now, by default. -.if ${__T} == "amd64" || ${__T} == "i386" || ${__T:Mpowerpc*} -__DEFAULT_YES_OPTIONS+=CLANG CLANG_FULL CLANG_BOOTSTRAP -.elif ${__TT} == "arm" && ${__T:Marm*eb*} == "" -__DEFAULT_YES_OPTIONS+=CLANG CLANG_BOOTSTRAP -# GCC is unable to build the full clang on arm, disable it by default. -__DEFAULT_NO_OPTIONS+=CLANG_FULL -.else -__DEFAULT_NO_OPTIONS+=CLANG CLANG_FULL CLANG_BOOTSTRAP -.endif -# Clang the default system compiler only on little-endian arm and x86. -.if ${__T} == "amd64" || (${__TT} == "arm" && ${__T:Marm*eb*} == "") || \ - ${__T} == "i386" -__DEFAULT_YES_OPTIONS+=CLANG_IS_CC + +.include +.if !${COMPILER_FEATURES:Mc++11} +# If the compiler is not C++11 capable, disable clang and use gcc instead. +__DEFAULT_YES_OPTIONS+=GCC GCC_BOOTSTRAP GNUCXX +__DEFAULT_NO_OPTIONS+=CLANG CLANG_BOOTSTRAP CLANG_FULL CLANG_IS_CC +.elif ${__T} == "aarch64" || ${__T} == "amd64" || ${__T} == "i386" +# On x86 and arm64, clang is enabled, and will be installed as the default cc. +__DEFAULT_YES_OPTIONS+=CLANG CLANG_BOOTSTRAP CLANG_FULL CLANG_IS_CC __DEFAULT_NO_OPTIONS+=GCC GCC_BOOTSTRAP GNUCXX +.elif ${__TT} == "arm" && ${__T:Marm*eb*} == "" +# On little-endian arm, clang is enabled, and it is installed as the default +# cc, but since gcc is unable to build the full clang, disable it by default. +__DEFAULT_YES_OPTIONS+=CLANG CLANG_BOOTSTRAP CLANG_IS_CC +__DEFAULT_NO_OPTIONS+=CLANG_FULL GCC GCC_BOOTSTRAP GNUCXX +.elif ${__T:Mpowerpc*} +# On powerpc, clang is enabled, but gcc is installed as the default cc. +__DEFAULT_YES_OPTIONS+=CLANG CLANG_FULL GCC GCC_BOOTSTRAP GNUCXX +__DEFAULT_NO_OPTIONS+=CLANG_BOOTSTRAP CLANG_IS_CC .else -# If clang is not cc, then build gcc by default -__DEFAULT_NO_OPTIONS+=CLANG_IS_CC CLANG CLANG_BOOTSTRAP +# Everything else disables clang, and uses gcc instead. __DEFAULT_YES_OPTIONS+=GCC GCC_BOOTSTRAP GNUCXX +__DEFAULT_NO_OPTIONS+=CLANG CLANG_BOOTSTRAP CLANG_FULL CLANG_IS_CC +.endif +.if ${__T} == "aarch64" +BROKEN_OPTIONS+=BINUTILS BINUTILS_BOOTSTRAP GCC GCC_BOOTSTRAP GDB +.endif +# LLVM lacks support for FreeBSD 64-bit atomic operations for ARMv4/ARMv5 +.if ${__T} == "arm" || ${__T} == "armeb" +BROKEN_OPTIONS+=LLDB .endif .include @@ -218,7 +246,6 @@ __DEFAULT_YES_OPTIONS+=GCC GCC_BOOTSTRAP # # MK_* options that default to "yes" if the compiler is a C++11 compiler. # -.include .for var in \ LIBCPLUSPLUS .if !defined(MK_${var}) Modified: projects/bmake/share/mk/src.sys.mk ============================================================================== --- projects/bmake/share/mk/src.sys.mk Tue May 26 21:16:07 2015 (r283584) +++ projects/bmake/share/mk/src.sys.mk Tue May 26 21:41:26 2015 (r283585) @@ -5,9 +5,22 @@ # to preserve historical (and useful) behavior. Changes here need to # be reflected there so SRCCONF isn't included multiple times. +# make sure this is defined in a consistent manner +SRCTOP:= ${.PARSEDIR:tA:H:H} + # Allow user to configure things that only effect src tree builds. SRCCONF?= /etc/src.conf .if (exists(${SRCCONF}) || ${SRCCONF} != "/etc/src.conf") && !target(_srcconf_included_) .sinclude "${SRCCONF}" _srcconf_included_: .NOTMAIN .endif +# If we were found via .../share/mk we need to replace that in +# with ${SRCTOP} so that we can be found by +# sub-makes launched from objdir. +.if ${.MAKEFLAGS:M.../share/mk} != "" +.MAKEFLAGS:= ${.MAKEFLAGS:S,.../share/mk,${SRCTOP}/share/mk,} +.endif +.if ${MAKESYSPATH:Uno:M*.../*} != "" +MAKESYSPATH:= ${MAKESYSPATH:S,.../share/mk,${SRCTOP}/share/mk,} +.export MAKESYSPATH +.endif