summaryrefslogtreecommitdiff
path: root/include/env
AgeCommit message (Collapse)Author
21 hoursxbmk: make all projects multi-treeLeah Rowe
we currently distinguish, by virtue of logic, multi- and single-tree projects. this introduces a lot of complexity, so the following patch has removed this distinction. all single-tree projects are now multi tree, but with only one tree. other design changes: config/git removed. rev/tree now handled with mkhelper and target configs. this allows per-tree remote handling, so we could (for example) add the mrchromebox coreboot fork easily, for specific chromebook models. config/project is now config/module/project. this cleans up the main config/ directory. cfgname variable: .config no longer hardcoded when doing configs in projects. it is configurable with this variable. if unset, the previous .cfg is used noconfig variable: set this in target/mkhelper configs, and config/module/project/tree/config/ is unused; instead, make is called without config copying. a "noconfig" placeholder is used. this enables cleaner usage of previously single-tree projects in the new multi-tree-only structure. cfgvars: variables reinitialised in project config are cleaned more reliably. in particular, several variables e.g. autogenargs were not being reset between projects, although the autogenargs variable is currently unused. general cleanup has been conducted across the build system, as part of this redesign. several parts of the build system more over-engineered as a result of the previous design, and the new design enabled a severe reduction in sloccount (75 lines reduced in lbmk). yes, this change *adds features* but there are fewer lines of code than before. this is the best kind of change. way better than the 3-line-diff. yes. rev= and tree= are set more centrally in configs. the mkhelper config can be used to set url/url_bkup, but individual trees can override them. configs have been cleaned up, with several variables now much more heavily centralised. config/git/ was used before to first download the bare repository, and then the real clone was made with patches. this allows git repositories to be cached for future re-builds. with config/git/ gone, the download logic for projects is more centrally implemented. a separate call to ./mk -f is no longer performed, and in fact ./mk -f never needs to be used anymore as a result. ./mk -f now is basically the same thing as -b, just without any action performed. this change will allow rapid expansion of the libreboot project. i want to add hundreds of chromebooks to the project, using mrchromebox, but the previous design did not permit this. this change means that i can easily have unlimited upstreams per project. coreboot will, in some follow-up changes, have the following upstreams: coreboot/default: coreboot.org coreboot/fam15h: 15h.org fork coreboot/chromebook: mrchromebox fork this can now be done freely without massive changes to the build system. under the previous design, i worked on a now-abandoned patch to do N remotes per project, reading repo links from a file. this meant that i'd have coreboot.org first (main and backup), then mrchromebox. this meant that lbmk would failover through to mrchromebox, wasting time for the user. this new design is much cleaner, and will enable the project to be maintained much more easily. Signed-off-by: Leah Rowe <leah@libreboot.org>
4 daysminor cleanupLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
4 dayslib.sh: make build_sbase a macroLeah Rowe
sh macros are cool Signed-off-by: Leah Rowe <leah@libreboot.org>
4 daysxbmk: general cleanupLeah Rowe
note: mecleaner check removed in vendor.sh, because it's already guaranteed to be fetched. the check will never indicate failure, so we can just assume that the me cleaner python script exists. Signed-off-by: Leah Rowe <leah@libreboot.org>
5 daysvariable ./mk location, based on user inputLeah Rowe
when calling ./mk, or from PATH, an absolute path is created to ./mk this will likely be different than mk, but it might be a different script. perhaps the operator is making a copy of the mk script temporarily - obviously not advised, no, but here we have a problem because then lbmk is still running ./mk everywhere run arg0 instead, now called "mk" ./mk is still hardcoded in release.sh, because we do need to make sure we're using the right script there Signed-off-by: Leah Rowe <leah@libreboot.org>
6 daysRevert "init.sh: re-initialise upstream src .git"Leah Rowe
This reverts commit cf079dbd1775bb6270ee1cd8d36ce6c8aaa5a17c. we don't need it anymore. we don't bother cleaning sources for releases, because tehy're never dirtied. we build using ./mk release which does everything fresh. the git-clean feature was only used on ./mk -c, which was removed because it's not needed for the same reason as above. lbmk always cleans and re-builds everything when metadata changes, otherwise storing builds out of tree in a cache directory. get rid of this dead code. Signed-off-by: Leah Rowe <leah@libreboot.org>
6 daysmk: abuse an absurd number of sh macrosLeah Rowe
just the right amount of absurd this is why i don't need to use python Signed-off-by: Leah Rowe <leah@libreboot.org>
6 daysadd dir checkLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
6 daysinit.sh: re-initialise upstream src .gitLeah Rowe
we have git-clean in use for projects, but that only affects lbmk.git now we re-initialise .git in upstream projects, when .git is missing. this ensures consistent cleaning behaviour between lbmk.git and the libreboot releases. Signed-off-by: Leah Rowe <leah@libreboot.org>
7 daysinit.sh: remove redundant sha512sum initLeah Rowe
it's done in xbmk_init. the initial value is never used. Signed-off-by: Leah Rowe <leah@libreboot.org>
7 daysmk: simplify xbmkpwd initialisationLeah Rowe
do it from mk instead. we don't need to run pwd anymore, because we just get the path and cd to it, setting that as the path. Signed-off-by: Leah Rowe <leah@libreboot.org>
7 daysmk: run xbmk_init here, not from init.shLeah Rowe
it should be clear on first reading, what the actual control flow is. hiding the call in init.sh obscures first reading. now it is absolutely clear on first reading, that xbmk_init is called before going through everything else in mk. Signed-off-by: Leah Rowe <leah@libreboot.org>
7 daysmk: remove gcc/gnat matching logic (obsolete)Leah Rowe
coreboot has this now: commit c421847fe2fef61586eb313206a4be0f2e491974 Author: Matt DeVillier <matt.devillier@gmail.com> Date: Mon Dec 29 10:12:17 2025 -0600 util/crossgcc: Fix GNAT detection for gnat-15 this one is advisory instead, telling the user to create such a symlink as we did. this is much less invasive. our own check was bad, because it basically silences what is otherwise an error. coreboot's approach is more correct, so we will defer to that instead. note that this means older coreboot (for fam15h) is no longer covered, but those trees don't use gnat anyway as libgfxinit is unused on those targets this lbmk patch removes 61 sloc of dead code, which makes me very happy. Signed-off-by: Leah Rowe <leah@libreboot.org>
8 days79 linesLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
8 daysuse awk insteadLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
8 daysinit.sh: tidy up main loopLeah Rowe
the new loop is incredibly novel in nature, and will break if anyone but me ever touches it. it also reduces sloccount by two lines. i did it because i can, and it's perfectly safe. Signed-off-by: Leah Rowe <leah@libreboot.org>
8 dayssplit up include/Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>