forked from Dark-Horse-Linux/pyrois
beginning of foster transition for rewrite using new rex utility
commit
25f4bcba54
|
@ -0,0 +1,117 @@
|
|||
.EXPORT_ALL_VARIABLES:
|
||||
.DEFAULT_GOAL := all
|
||||
SHELL := /bin/bash
|
||||
|
||||
##
|
||||
# Load the config file
|
||||
##
|
||||
# circular dependency loading
|
||||
ifndef project_root
|
||||
|
||||
%:
|
||||
. ./project_config.sh $(MAKE) $@
|
||||
|
||||
else
|
||||
|
||||
##
|
||||
# Target Definitions
|
||||
##
|
||||
prepare_environment:
|
||||
sudo --preserve-env ${make_dir}/prepare_environment.sh
|
||||
|
||||
# download the new source directory contents like LFS proper
|
||||
download_sources:
|
||||
${make_dir}/download_sources.sh
|
||||
|
||||
# download the patches from LFS
|
||||
# there is no clean here because i bundle fixed patches
|
||||
download_patches:
|
||||
${make_dir}/download_patches.sh
|
||||
|
||||
# verify the sources downloaded are intact
|
||||
verify_sources:
|
||||
${make_dir}/verify_sources.sh
|
||||
|
||||
# verify the patches downloaded are intact
|
||||
verify_patches:
|
||||
${make_dir}/verify_patches.sh
|
||||
|
||||
# builds a chroot
|
||||
# don't preserve env on execution of these, it hits the ARG_MAX limit in the kernel/limits.h
|
||||
build_stage1:
|
||||
sudo /usr/bin/env -i bash -c ". ./project_config.sh && ${make_dir}/build_stage1.sh"
|
||||
|
||||
# compiles temporary toolchain for new cross-compiler
|
||||
build_stage2:
|
||||
sudo /usr/bin/env -i bash -c ". ./project_config.sh && ${make_dir}/build_stage2.sh"
|
||||
|
||||
# populates basic sysroot as a chroot
|
||||
build_stage3:
|
||||
sudo /usr/bin/env -i bash -c ". ./project_config.sh && ${make_dir}/build_stage3.sh"
|
||||
|
||||
# builds the rest of the system from inside the chroot
|
||||
build_stage4:
|
||||
sudo /usr/bin/env -i bash -c ". ./project_config.sh && ${make_dir}/build_stage4.sh"
|
||||
|
||||
|
||||
# works around apparently some kind of nesting bug w/ Rex and file descriptors
|
||||
#hotfix_chroot_compiler:
|
||||
# @sudo --preserve-env ${rex_dir}/components/x86_64/stage_1/libstdcxx_pass2.bash ${workspace}
|
||||
|
||||
|
||||
all: build_stage1 hotfix_chroot_compiler build_stage2
|
||||
|
||||
# enter the chroot after a stage1 build so we can play around
|
||||
enter_chroot:
|
||||
@sudo --preserve-env ${make_dir}/enter_chroot.sh ${workspace}
|
||||
|
||||
# clean up artifacts between builds if desired
|
||||
clean:
|
||||
sudo --preserve-env ${make_dir}/clean.sh $(shell whoami)
|
||||
|
||||
# wipe the source directory
|
||||
clean_sources:
|
||||
sudo --preserve-env ${make_dir}/clean_sources.sh $(shell whoami)
|
||||
|
||||
# wipe the patches directory
|
||||
clean_patches:
|
||||
sudo --preserve-env ${make_dir}/clean_patches.sh $(shell whoami)
|
||||
|
||||
download_rex:
|
||||
${make_dir}/download_rex.sh
|
||||
|
||||
compile_rex:
|
||||
${make_dir}/compile_rex.sh
|
||||
|
||||
clean_logs:
|
||||
${make_dir}/clean_logs.sh
|
||||
|
||||
distclean: clean clean_sources clean_patches
|
||||
|
||||
make help:
|
||||
${make_dir}/help.sh
|
||||
|
||||
#instructions
|
||||
# 01. make distclean
|
||||
# 02. make download_rex
|
||||
# 03. make compile_rex
|
||||
# 04. make download_sources
|
||||
# 05. make verify_sources
|
||||
# 06. make download_patches
|
||||
# 07. make verify_patches
|
||||
# 08. make prepare_environment
|
||||
# 09. make build_stage1
|
||||
# 10. make hotfix_chroot_compiler
|
||||
# 11. make build_stage2
|
||||
# 12. make build_stage3
|
||||
|
||||
# Stage 1 builds a cross-compiler and temporary tools.
|
||||
# Stage 2 uses that cross-compiler to build a chroot.
|
||||
# Stage 3 starts building the system from inside the chroot.
|
||||
# End conditional block.
|
||||
# Ubuntu LTS deps:
|
||||
# git
|
||||
# make
|
||||
# cmake
|
||||
# g++
|
||||
endif
|
Loading…
Reference in New Issue