On May 13, 2025, at 08:43, Simon J. Gerraty <s...@juniper.net> wrote:
> Mark Millard <mark...@yahoo.com> wrote: >>> Use of a: >>> >>> env __MAKE_CONF="/usr/home/root/src.configs/make.conf" >>> >>> prefix for each make command and the file content >>> like shown by the cat below: > > If you are going to head down that path, I would highly recommend > using the 'mk' wrapper from > https://www.crufty.net/ftp/pub/sjg/sb-tools.tar.gz > We've used that model at work for over 20 years. > Described in https://www.crufty.net/sjg/docs/sb-tools.htm > > In a nutshell; each tree has a .sandbox-env file which can tune its > environment (as well as mark the top of the "sandbox"). > There are a plethora of other hooks to tune. > I find it especially useful with Emac's M-x compile I will take a look. Using my aarch64 context as an example (it has more variations than my amd64 environment, since I do nothing for i386 but aarch64 is also set up for armv7): I have 8 aarch64 scripts that have the likes of __MAKE_CONF (and more) specified that do individual system builds of main's kernel or world: # ls -C1 ~/build-sys-*dbg-*.sh /root/build-sys-main-CA7-dbg-kernel.sh /root/build-sys-main-CA7-dbg-world.sh /root/build-sys-main-CA7-nodbg-kernel.sh /root/build-sys-main-CA7-nodbg-world.sh /root/build-sys-main-CA76-dbg-kernel.sh /root/build-sys-main-CA76-dbg-world.sh /root/build-sys-main-CA76-nodbg-kernel.sh /root/build-sys-main-CA76-nodbg-world.sh The above in turn involve use of appropriate files from: # ls -C1 ~/src.configs/* /root/src.configs/make.conf /root/src.configs/src.conf.CA7-dbg-clang.aarch64-host /root/src.configs/src.conf.CA7-nodbg-clang.aarch64-host /root/src.configs/src.conf.CA76-dbg-clang.aarch64-host /root/src.configs/src.conf.CA76-nodbg-clang.aarch64-host ~/src.configs/make.conf is common to all 8. They also use my git worktree: /usr/main-src/ ( /usr/src/ is from PkgBase and, so, has no .git/ repository. A different /usr/*-src/ has the .git repository. ) I also have 7 scripts that run more than one of those ~/build-sys-*dbg-*.sh in a sequence: # ls -C1 ~/build-sys-*[67]-[kw]*.sh /root/build-sys-main-CA7-kernel.sh /root/build-sys-main-CA7-world-kernel.sh /root/build-sys-main-CA7-world.sh /root/build-sys-main-CA76-kernel.sh /root/build-sys-main-CA76-world-kernel.sh /root/build-sys-main-CA76-world.sh /root/build-sys-main-CA76_CA7-world-kernel.sh (Each of those 7 build both -dbg- and -nodbg- variations.) For reference: CA76: cortex-a76 (aarch64) CA7: cortex-a7 (armv7) # ls -dC1 /usr/obj/BUILDs/*/ /usr/obj/BUILDs/main-CA7-dbg-clang/ /usr/obj/BUILDs/main-CA7-nodbg-clang/ /usr/obj/BUILDs/main-CA76-dbg-clang/ /usr/obj/BUILDs/main-CA76-nodbg-clang/ I do not use ~/src.configs/make.conf with poudriere-devel for package builds. I avoid doing package builds outside of poudriere in normal circumstances. I normally do not build stable/* or releng/*.* systems, just using official FreeBSD builds for such. (Long ago I used to build more variations.) I only build amd64 systems on amd64; I only build aarch64 and armv7 on aarch64. (Long ago I used to cross build little endian systems on amd64.) Thanks, Mark === Mark Millard marklmi at yahoo.com