gnuboot/Makefile.am

123 lines
4.3 KiB
Makefile

#
# Makefile for compatibility purposes
# You can use this, but it's recommended to run build system commands directly
#
# See docs/maintain/ and docs/git/ for information about the build system
#
# Copyright (C) 2020, 2021 Leah Rowe <info@minifree.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 <http://www.gnu.org/licenses/>.
# For making pipefail work.
SHELL := bash
.PHONY: all check download modules ich9m-descriptors payloads roms release \
clean crossgcc-clean install-dependencies-ubuntu \
install-dependencies-pureos-10 install-dependencies-arch \
install-dependencies-void
LOG = make-$(shell date '+%s').log
all: roms
download:
echo 'Makefile: running $@ target' >> $(LOG)
./download all 2>&1 | tee -a $(LOG)
@echo "[ OK ] Makefile: $@ target. See $(LOG) for the log."
modules:
echo 'Makefile: running $@ target' >> $(LOG)
./build module all 2>&1 | tee -a $(LOG)
@echo "[ OK ] Makefile: $@ target. See $(LOG) for the log."
ich9m-descriptors:
echo 'Makefile: running $@ target' >> $(LOG)
./build build descriptors | tee -a $(LOG)
@echo "[ OK ] Makefile: $@ target. See $(LOG) for the log."
payloads:
echo 'Makefile: running $@ target' >> $(LOG)
set -o pipefail ; ./build payload all | tee -a $(LOG)
@echo "[ OK ] Makefile: $@ target. See $(LOG) for the log."
roms:
echo 'Makefile: running $@ target' >> $(LOG)
set -o pipefail ; ./build boot roms all | tee -a $(LOG)
@echo "[ OK ] Makefile: $@ target. See $(LOG) for the log."
release:
echo 'Makefile: running $@ target' >> $(LOG)
set -o pipefail ; ./build release src | tee -a $(LOG)
set -o pipefail ; ./build release roms | tee -a $(LOG)
set -o pipefail ; ./build release website | tee -a $(LOG)
set -o pipefail ; ./build release gnuboot-source | tee -a $(LOG)
set -o pipefail ; ./build test release | tee -a $(LOG)
@echo "[ OK ] Makefile: $@ target. See $(LOG) for the log."
clean:
./build clean cbutils
./build clean flashrom
./build clean ich9utils
./build clean payloads
./build clean seabios
./build clean grub
./build clean memtest86plus
./build clean rom_images
crossgcc-clean:
./build clean crossgcc
distclean:
./build distclean all
install-dependencies-ubuntu:
echo 'Makefile: running $@ target' >> $(LOG)
set -o pipefail ; ./build dependencies trisquel-10 | tee -a $(LOG)
@echo "[ OK ] Makefile: $@ target. See $(LOG) for the log."
install-dependencies-pureos-10:
echo 'Makefile: running $@ target' >> $(LOG)
set -o pipefail ; ./build dependencies pureos-10 | tee -a $(LOG)
@echo "[ OK ] Makefile: $@ target. See $(LOG) for the log."
install-dependencies-arch:
echo 'Makefile: running $@ target' >> $(LOG)
set -o pipefail ; ./build dependencies arch | tee -a $(LOG)
@echo "[ OK ] Makefile: $@ target. See $(LOG) for the log."
install-dependencies-void:
echo 'Makefile: running $@ target' >> $(LOG)
set -o pipefail ; ./build dependencies void | tee -a $(LOG)
@echo "[ OK ] Makefile: $@ target. See $(LOG) for the log."
check:
echo 'Makefile: running $@ target' >> $(LOG)
set -o pipefail ; ./tests/lint | tee -a $(LOG)
set -o pipefail ; ./tests/distclean | tee -a $(LOG)
set -o pipefail ; ./tests/targets 2>&1 | tee -a $(LOG)
@echo "[ OK ] Makefile: $@ target. See $(LOG) for the log."
help:
@printf "Available commands:\n"
@printf "\tsudo make install-dependencies-ubuntu # %s\n" \
"Install required dependencies on Ubuntu."
@printf "\tsudo make install-dependencies-pureos-10 # %s\n" \
"Install required dependencies on PureOS 10 (byzantium)."
@printf "\tmake release # %s\n" \
"Build a GNU Boot release."
@printf "\tmake clean # %s\n" \
"Remove all the files being built in GNU Boot."
@printf "\tmake crossgcc-clean # %s\n" \
"Remove the builds of the crossgcc toolchain."