Is "make toolchain/install" really "target independent"?

I am a complete newbie in OpenWRT.

As per https://openwrt.org/docs/guide-developer/helloworld/chapter1, "make toolchain/install" is "target independent". I wonder if this is true.

"make toolchain/install" can only be run after "make menuconfig" where you pick your target system (i.e. chipset) / "sub target" / profile, etc. So, I'd imagine that for "make toolchain/install" would pull the libraries / source code related to the selected target system / sub-target / profile / etc. and then "make" would do a compilation based on that. Put differently, what libraries/source code are pulled depend on the target system.

Another related question is when would I need to do a "make toolchain/install" again ? E.g. do I need to do it after every change in "make menuconfig" or only after some "major" changes - in which case what would be those "major" changes ?

Thanks a lot for your help.

It is not.

It might be better to say that the toolchain is device-independent among devices in the same target/subtarget.

"Target" and subtarget in OpenWrt context usually mean the processor architecture / device family. E.g. mvebu, mips24kc, x86-64, mediatek/mt7622.

Actually, I am not sure if that wiki page says that the toolchain is target-independent. It say that the build "tools" are target-independent, but talks separately about toolchain. (I didn't spot a claim about target-independent toolchain there.)

build the target-independent tools and the cross-compilation toolchain

while the target-independent tools and the toolchain are built

The target-independent tools and the toolchain are deployed

1 Like

Thanks, hnyman.

My understanding is that toolchain is a set of tools for building the final firmware. So, it's strange to have target-dependent tools while toolchain is "target-independent".

But ignoring these wording problems, do I understand it correctly that there is no need to do a "make toolchain/install" if you don't change anything related to "target" and "subtarget" (e.g. if I only change the target file system, or Luci options, etc.).

Thanks