| Age | Commit message (Collapse) | Author |
|
now the 3040 micro vendor download works
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
for some reason, --whitelist wouldn't work anymore
with my copy of me_cleaner. -w is officially supported.
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
otherwise, the recent fix to coreboot builds breaks
seabios builds.
lbmk should be stable now.
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
this implements the previous reverted fix, but
only for coreboot.
it's done tree-wide, but individual projects must
handle it in their mkhelpers, via if_not_skip_build
if_not_skip_build *does* universally control whether
make is executed, but not make-clean.
now we can do:
./mk -b coreboot default
this will effectively do the same thing as -d,
because no config is available there. otherwise,
we try to do -b with a config, where none exists.
if noconfig is set, then we ignore this, because
no config will ever be used.
when noconfig isn't set, it is assumed that we must
always have a config for building.
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
This reverts commit 8c50373d5977d630626b14719977dc51a3ae2bdf.
|
|
only do if config=y. this reintroduces a hack that
i accidentally removed in the recent redesign.
grub has been changed to noconfig=y, and the files
for memdisk are now source from config/data/grub
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
don't execute mkhelpers either
skip is fetched. this means that if a given
target says release=n, the corresponding source
won't be downloaded. if no targets specify that
source, then none will be.
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
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>
|
|
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
if_build / empty mode are a given here, since this
is a premake function which only executes if
the mode string is empty and/or if_build is empty
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
sh macros are cool
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
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>
|
|
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
ccache isn't used at all in any of the configs
ensuring that this remains the case is much
cleaner. coreboot will never enable it by default,
precisely because of how buggy it is.
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
the modified/not message is pointless, because the
message indicating tarball rebuild will suffice
variable initialisation simplified (global newvar)
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
-m src can skip building binaries
this is pointless. i always want them.
i won't use it, and i'm the only person
who will ever use ./mk release
i'm going to add a -t option in the future
to allow e.g. ./mk -t coreboot
this would do -f but create a tarball of
the source, versioned. e.g.
coreboot-libreboot-27.05_src.tar.xz
or something like that. this would allow
more granular control, if you just want to
get sources.
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
this fixes a build issue i was having on ./mk release,
and it's also a preventative bug fix.
instead of forcing it to be enabled, we now force
it to be disabled. all current configs already disable
it, and disabled is the default.
just in case, disable it by force. i encountered build
errors on ./mk release, due to stale build artifacts.
i had no issues on normal lbmk.git, doing builds, but
./mk release builds everything in bulk. we want the
release build process to be as reliable as possible.
this won't actually affect build speed much, due to
lbmk's design (clean builds before running make).
work is needed upstream, to make ccache more reliable.
ccache is fine when you're re-building the same board
a lot, but there's just no way it can be used reliably
when building lots of very different boards, where the
code greatly differs in coreboot.
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
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>
|
|
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>
|
|
just the right amount of absurd
this is why i don't need to use python
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
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>
|
|
otherwise, it's totally broken. i also now include
lib.sh later.
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
it's done in xbmk_init. the initial value
is never used.
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
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>
|
|
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>
|
|
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>
|
|
mk is so tiny now, and will likely never get
bigger. tree.sh is effectively the main script
now, so let's treat it as such.
i'll start splitting tree.sh instead. e.g.
move gcc setup to its own file.
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
use of maxdepth 1 does not exclude the main
directory, which is undesired in these contexts,
though excluded in practise due to how find is
actually used.
technically, mindepth should be used, just in
case, as a defensive measure. the context here
is files and directories within a main directory,
used as arguments in other commands.
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
this solves a bug that does not yet manifest, because
this bug *can't* currently trigger any error due to
lbmk's design. this is therefore a preventative fix,
for reasons that will become clear.
we previously put arguments in a variable, in a way
that didn't handle globbing. now we avoid a variable
and use "$@" instead, which solves the problem.
this also means that the main logic in mk can be
cleaner, as trees-specific control logic is now
placed entirely in tree.sh's main.
this means that we can now also wrap x_ around trees()
this was never a problem in the past, because all of
the arguments for trees commands never have globbing;
config names are always e.g. foo_bar, not foo bar
in commands where globbing did need to be handled,
those commands were never trees commands. e.g.
you had ./mk inject filename
yes, this is a design improvement, or a preventative
bug fix. pick your poison.
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
just do includes in mk again. common.sh was stupidly
small, just pointless.
replace the entire command dispatcher with eval, printf
and awk, because i can, and it further reduces sloccount.
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
the new order more reliably indicates which order
everything is executed in, by virtue of the functions
provided in each file.
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
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>
|
|
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
literally the point of -p in mkdir is to, you know,
check whether the directory already exists
unclear thinking = unclear code
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
it occured to me that this style of check was bad. it
only works when checking if both variables are set
my bad
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
pointless function. literally pointless. it is literally
the most pointless function ever written in the history
of functions. literally pointless in every possible way.
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
this removed the need to check it in xbmk_set_version
as it calls update_xbmkver, which in turn performs
the same check.
this increases the general reliability and safety of
xbmk when recording its own version after update.
Signed-off-by: Leah Rowe <leah@libreboot.org>
|
|
sanitization can be done with a single sed command
Signed-off-by: Leah Rowe <leah@libreboot.org>
|