Add topdir ./configure.

The goal here is to be able to add configure options later on.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
This commit is contained in:
Denis 'GNUtoo' Carikli 2024-03-25 05:21:02 +01:00
parent dd21918746
commit b175bd85a5
Signed by: GNUtoo
GPG Key ID: 5F5DFCC14177E263
9 changed files with 92 additions and 3 deletions

9
.gitignore vendored
View File

@ -33,3 +33,12 @@
/tmp/
/version
/versiondate
Makefile
Makefile.in
aclocal.m4
autom4te.cache/
config.log
config.status
configure
install-sh
missing

17
autogen.sh Executable file
View File

@ -0,0 +1,17 @@
#!/usr/bin/env sh
# Copyright (C) 2023 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
autoreconf -vfi "$@"

4
build
View File

@ -29,6 +29,10 @@ projectname="$(cat projectname)"
. resources/scripts/misc/sysexits.sh
# Some scripts like the ones in resources/packages/flashrom need
# Makefiles to be generated
. resources/scripts/misc/generate-configure-makefiles.sh
# This is for backward compatibility: before the list of "modes" was
# auto-detected, but there isn't a 1:1 matching between modes and
# packages tasks (build, clean, etc).

19
configure.ac Normal file
View File

@ -0,0 +1,19 @@
# Copyright (C) 2024 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
AC_INIT([gnuboot],[0.1],[gnuboot@gnu.org])
AM_INIT_AUTOMAKE([foreign])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT

View File

@ -31,6 +31,10 @@ set -u -e
. resources/scripts/misc/sysexits.sh
# Some scripts like the ones in resources/packages/flashrom need
# Makefiles to be generated
. resources/scripts/misc/generate-configure-makefiles.sh
# set this when you want to modify each coreboot tree
# for example, you want to test custom patches
# NODELETE='' ./download coreboot

View File

@ -0,0 +1,23 @@
#!/usr/bin/env bash
#
# Copyright (C) 2024 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
if [ ! -f configure ] || \
[ ! -f Makefile ] || \
[ ! -f resources/packages/flashrom/Makefile ] ; then
./autogen.sh
./configure
fi

View File

@ -107,9 +107,21 @@ You may also want to follow more of the steps here:
Building GNU Boot binaries
==========================
GNU Boot includes a file called `Makefile` that you can use . This
Makefile calls some scripts like download or build that are in the
same directory, that you can also also use directly if you want.
The GNU Boot build system has some configuration options. While the
defaults are good for most users, the way it is implemented requires
you to run the following command first:
./autogen.sh
And if you don't need to change the defaults, you can then run the
following command:
./configure
If you want to look at which settings can be changed you can use the
following command which explains various options and how to do that:
./configure --help
Once this is done, you can either use the `Makefile` or some shell
scripts to build GNU Boot.
The `Makefile` is much more simple to use but offers less flexibility
(for instance there is a single command to build all images but no way

View File

@ -41,6 +41,7 @@ printf "+---------------------+\n"
printf "| Running lint tests: |\n"
printf "+---------------------+\n"
run_shellcheck \
autogen.sh \
build \
download \
modify \