Running freshly deployed PTXdist currently gives you: ladis@lenoch:/tmp/test_bsp$ ~/src/ptxdist/bin/ptxdist menuconfig
ptxdist: error: PTXdist in /home/ladis/src/ptxdist is not built. Simply put: "Why on _earth_ would you need to install source code before you're allowed to configure and compile it? The only thing it actually built when I did the first "make" was the kconfig binaries. The kernel (where kconfig comes from) does not require you to make and install kconfig before using menuconfig. Neither do long-term users of it like busybox or uClibc..." -- Rob Landley (https://sourceware.org/legacy-ml/crossgcc/2009-04/msg00038.html) I'd suggest read whole Design discussion archived at: https://sourceware.org/legacy-ml/crossgcc/2009-04/msg00015.html before reading the rest or even looking at the patchset. I had this in mind for a quite long time and was carrying patches to achieve that, but still was not quite happy with them until last rainy weekend (figuring out where I read above rant was a pretty hard task itself...) Back then I was making excuses PTXdist still being in development, which was, with respect to PTXdist age at that time, a bit silly, so now the following patchset brings you this: ladis@lenoch:/tmp/test_bsp$ ~/src/ptxdist/bin/ptxdist menuconfig ptxdist: preparing host tools in '/home/ladis/.cache/ptxdist/git' ... ptxdist: there is no PTXdist project in '/tmp/test_bsp' ptxdist: create a new one? [y/N] y ptxdist: project name.................: test_bsp ptxdist: select option by number: ptxdist: [1] ALPHA ptxdist: [2] AVR32 ptxdist: [3] AVR ptxdist: [4] ARM ptxdist: [5] ARM64 ptxdist: [6] BLACKFIN ptxdist: [7] X86 ptxdist: [8] MINGW ptxdist: [9] PPC ptxdist: [10] M68K ptxdist: [11] SPARC ptxdist: [12] MICROBLAZE ptxdist: [13] MIPS ptxdist: [14] CRIS ptxdist: [15] PARISC ptxdist: [16] SH ptxdist: [17] RISCV ptxdist: [18] LOONGARCH ptxdist: architecture.................: 13 ptxdist: platform name................: mips ptxdist: creating project 'test_bsp' ptxdist: creating platform 'mips' (mips) [here menuconfig is presented] ptxdist: done. There is no toolchain yet, select one with ptxdist: 'ptxdist toolchain <path>'. 'ptxdist platformconfig' refines ptxdist: the platform, 'ptxdist newpackage <type>' adds own packages. *** End of the configuration. *** Execute 'ptxdist go' to build the project or try 'ptxdist help'. And that's it. Previous configure && make && make install still works the same as before in case you are installing system-wide or into a docker image. The following patchset it trying to address all Rob's remarks about PTXdist, except those the time invalidated: flex and bison are now required even by kernel, so we still do the same. Comments and suggestions welcome, as always. Ladislav Michl (6): scripts: add ptxdist_bootstrap.sh with out-of-tree build support ptxdist: introduce PTXDIST_HOSTTOOLS_DIR ptxdist: prepare host tools on demand ptxdist: don't depend on bash being /bin/bash configure: use ptxdist_bootstrap.sh to check the host ptxdist: let new project raise from template .gitignore | 1 + Makefile.in | 65 ++--- README | 16 +- bin/ptxdist | 259 ++++++++++++++++++-- bin/ptxdist-auto-version | 4 +- configure.ac | 314 +++--------------------- doc/ref_parameter.rst | 4 + rules/host-qemu.make | 2 +- rules/other/Toplevel.make | 6 +- rules/templates/project/gitignore | 9 + rules/templates/project/platformconfig | 10 + rules/templates/project/ptxconfig | 6 + scripts/lib/ptxd_lib_kconfig.sh | 6 +- scripts/lib/ptxd_make_nested.sh | 2 +- scripts/lib/ptxd_make_report.sh | 2 +- scripts/ptxdist_bootstrap.sh | 315 +++++++++++++++++++++++++ 16 files changed, 661 insertions(+), 360 deletions(-) create mode 100644 rules/templates/project/gitignore create mode 100644 rules/templates/project/platformconfig create mode 100644 rules/templates/project/ptxconfig create mode 100755 scripts/ptxdist_bootstrap.sh -- 2.47.3
