Date: Wed, 24 May 2017 08:56:08 +0000 From: "Thomas Mueller" <mueller6722@twc.com> To: freebsd-current@freebsd.org Cc: Ngie Cooper <yaneurabeya@gmail.com>, "Simon J. Gerraty" <sjg@juniper.net> Subject: Re: Bug in make setting wrong MAKESYSPATH Message-ID: <BF.E8.25473.8AA45295@dnvrco-omsmta03> References: <4E.66.25473.9D551295@dnvrco-omsmta03> <81057.1495500066@kaos.jnpr.net> <CAGHfRMCC6KzywEL==_=EoH_JxmQQu2aRsU-tag8pa5M-1UD%2Bcw@mail.gmail.com> <E3.CD.25473.3CCD3295@dnvrco-omsmta03> <95058.1495555282@kaos.jnpr.net>
next in thread | previous in thread | raw e-mail | index | archive | help
>From Simon J. Gerraty: > Thomas Mueller <mueller6722@twc.com> wrote: > > It seems to me that MAKESYSPATH should match the host building system > > FreeBSD version. > Which would only be correct if building the same version of FreeBSD as > is running on the host. > Many folk work on multiple branches on the same machine. I have even built FreeBSD i386 from FreeBSD amd64, and vice versa. Even when the user tracks only one branch, such as HEAD, one or more /usr/share/mk files may have been updated since the last build, and therefore not in sync with the build host's /usr/share/mk . For building the system, MAKESYSPATH should be $SRCDIR/share/mk , to be in sync. I tried "make -V MAKESYSPATH" from several SRCDIRs, and that's what happened. Like this: $ make -C /usr/src -V MAKESYSPATH /usr/src/share/mk $ make -C /freebsd-base-graphics -V MAKESYSPATH /freebsd-base-graphics/share/mk > Thus for anyone working on src/ there is no guarantee that /usr/share/mk > is even remotely correct. > So you either buy into the idea of using a wrapper script and canned > .env file for each tree (that's what I do; > http://www.crufty.net/sjg/docs/sb-tools.htm) to ensure correct > settings per tree (whether FreeBSD, NetBSD, ...), or you compromise and > have 'make' itself try to find the "correct" share/mk for whereever it is. > This is why the default MAKESYSPATH starts with .../share/mk > > Now I believe the correct syntax for setting MAKESYSPATH in .cshrc and .profile would be > > export MAKESYSPATH=/usr/share/mk # for .profile, or > > setenv MAKESYSPATH /usr/share/mk # for .cshrc Something like that might be appropriate for ports but not for building the system. So maybe I have to set MAKESYSPATH every time I am in ports, don't know if this would work from /etc/make.conf (need to experiment). I wonder what would happen if there is no FreeBSD installation at all on partition where ports tree is located. > Yes, but requires you to keep /usr/share/mk in sync with whatever you a > building, tricky if you build head, stable/10 and stable/11 on the > same box. I don't think you have to do that, since I find that MAKESYSPATH becomes $SRCDIR/share/mk . > sjg Tom
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BF.E8.25473.8AA45295>