Dyad/Makefile

146 lines
3.2 KiB
Makefile
Raw Normal View History

.EXPORT_ALL_VARIABLES:
.DEFAULT_GOAL := all
SHELL := /bin/bash
# circular dependency loading
ifndef project_root
%:
. ./project_config.sh $(MAKE) $@
else
clean_unsafe:
set -e
2023-02-19 03:19:08 +00:00
sudo /usr/bin/env -i bash -c ". ./project_config.sh && ${dir_make}/clean.sh"
clean:
set -e
make disarm_chroot
make clean_unsafe
2023-02-21 00:03:11 +00:00
# same as clean, but retain logs
2023-02-19 03:19:08 +00:00
purge_artifacts:
set -e
2023-02-19 03:19:08 +00:00
${dir_make}/purge_artifacts.sh
2023-02-21 00:03:11 +00:00
# these need run in the following order:
2023-02-19 01:02:03 +00:00
dirs:
set -e
2023-02-19 01:02:03 +00:00
${dir_make}/dirs.sh
2023-02-19 01:35:25 +00:00
# installs the latest version of rex from master branch
# will later be tied to a release tag
2023-02-19 01:02:03 +00:00
install_rex:
set -e
2023-02-19 01:02:03 +00:00
${dir_make}/install_rex.sh
2023-02-19 01:35:25 +00:00
# installs the versions designed for this run
2023-02-19 01:02:03 +00:00
download_sources:
set -e
2023-02-19 01:02:03 +00:00
${dir_make}/download_sources.sh
2023-02-19 01:35:25 +00:00
# ""
download_patches:
set -e
2023-02-19 01:35:25 +00:00
${dir_make}/download_patches.sh
dependencies:
set -e
sudo /usr/bin/env -i bash -c ". ./project_config.sh && ${dir_make}/dependencies.sh"
2023-02-19 01:35:25 +00:00
# kicks off rex
2023-02-19 01:02:03 +00:00
build_stage1:
set -e
2023-02-19 01:02:03 +00:00
sudo /usr/bin/env -i bash -c ". ./project_config.sh && ${dir_make}/build_stage1.sh"
# kicks off rex
build_stage2:
set -e
sudo /usr/bin/env -i bash -c ". ./project_config.sh && ${dir_make}/build_stage2.sh"
arm_chroot:
set -e
sudo /usr/bin/env -i bash -c ". ./project_config.sh && ${dir_make}/arm_chroot.sh"
disarm_chroot:
set -e
sudo /usr/bin/env -i bash -c ". ./project_config.sh && ${dir_make}/disarm_chroot.sh"
2023-02-21 00:03:11 +00:00
# do not enter the chroot like this unless you have run arm_chroot.
# build_stage2 does this automatically.
enter_chroot:
set -e
sudo /usr/bin/env -i bash -c ". ./project_config.sh && ${dir_make}/enter_chroot.sh"
#embeds and kicks off rex from inside chroot
2023-02-21 00:03:11 +00:00
build_stage3:
set -e
2023-02-21 00:03:11 +00:00
sudo /usr/bin/env -i bash -c ". ./project_config.sh && ${dir_make}/build_stage3.sh"
# offers to back up
backup:
set -e
sudo /usr/bin/env -i bash -c ". ./project_config.sh && ${dir_make}/backup_create.sh"
restore_backup:
set -e
sudo bash -c ". ./project_config.sh && ${dir_make}/backup_restore.sh"
build_stage4:
set -e
sudo /usr/bin/env -i bash -c ". ./project_config.sh && ${dir_make}/build_stage4.sh"
build_stage5:
set -e
sudo /usr/bin/env -i bash -c ". ./project_config.sh && ${dir_make}/build_stage5.sh"
master:
set -e
sudo /usr/bin/env -i bash -c ". ./project_config.sh && ${dir_make}/master.sh"
2023-04-02 06:34:59 +00:00
livecd:
set -e
make disarm_chroot
2023-04-02 06:34:59 +00:00
sudo /usr/bin/env -i bash -c ". ./project_config.sh && ${dir_make}/livecd.sh"
2023-02-19 01:35:25 +00:00
# example:
# make dirs
# make install_rex
# make download_sources
# make download_patches
# make build_stage1
# make build_stage2
# optional: make enter_chroot
# make build_stage3
# optional: make build_stage4backup
# make build_stage4
.ONESHELL:
all:
set -e; \
make disarm_chroot && \
make clean && \
make dirs && \
make install_rex && \
make dependencies && \
make download_patches && \
make download_sources && \
make build_stage1 && \
make build_stage2 && \
make build_stage3 && \
make build_stage4 && \
2023-04-02 06:38:20 +00:00
make build_stage5 && \
2023-04-02 06:47:56 +00:00
make backup
# Remember, before you make clean or make purge_artifacts you MUST run
# make disarm_chroot beforehand or you could cause irreversible damage
# to your system. It is recommended that these operations only be
# performed on a VM, and the host distribution is only tested on Fedora.
2023-02-19 01:02:03 +00:00
# end dependency loading block
endif