forked from Dark-Horse-Linux/pyrois
				
			moving to stage 2 for temp tool cross-compilation up to 6.3
							parent
							
								
									98d5416c6b
								
							
						
					
					
						commit
						6051ca386f
					
				
							
								
								
									
										4
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										4
									
								
								Makefile
								
								
								
								
							| 
						 | 
				
			
			@ -38,6 +38,10 @@ download_patches:
 | 
			
		|||
build_stage1:
 | 
			
		||||
	sudo /usr/bin/env -i bash -c ". ./project_config.sh && ${dir_make}/build_stage1.sh"
 | 
			
		||||
 | 
			
		||||
# kicks off rex
 | 
			
		||||
build_stage2:
 | 
			
		||||
	sudo /usr/bin/env -i bash -c ". ./project_config.sh && ${dir_make}/build_stage2.sh"
 | 
			
		||||
 | 
			
		||||
# example:
 | 
			
		||||
# make dirs
 | 
			
		||||
# make install_rex
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,19 @@
 | 
			
		|||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
# closely aligns with LFS Ch 5, 6
 | 
			
		||||
 | 
			
		||||
# fix an issue with open files limit on some hosts
 | 
			
		||||
ulimit -l unlimited
 | 
			
		||||
 | 
			
		||||
#ulimit -n 10240 
 | 
			
		||||
ulimit -c unlimited
 | 
			
		||||
 | 
			
		||||
echo "Bootstrapping from MAKE to REX..."
 | 
			
		||||
 | 
			
		||||
# Executes rex from within the shell.
 | 
			
		||||
 | 
			
		||||
${dir_localtools}/rex -v \
 | 
			
		||||
	-c ${dir_rex}/x86_64/rex.config \
 | 
			
		||||
	-p ${dir_rex}/x86_64/plans/stage2.plan
 | 
			
		||||
 | 
			
		||||
retVal=$?
 | 
			
		||||
| 
						 | 
				
			
			@ -1,8 +1,9 @@
 | 
			
		|||
# clean the slate
 | 
			
		||||
echo
 | 
			
		||||
echo "Deleting ${dir_stage}"
 | 
			
		||||
rm -Rfv ${dir_stage}
 | 
			
		||||
rm -Rf ${dir_stage}
 | 
			
		||||
 | 
			
		||||
echo
 | 
			
		||||
echo "Deleting ${dir_stage}"
 | 
			
		||||
rm -Rfv ${dir_logs}
 | 
			
		||||
rm -Rf ${dir_logs}
 | 
			
		||||
echo
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,9 @@
 | 
			
		|||
rm -Rfv ${dir_artifacts}
 | 
			
		||||
rm -Rfv ${dir_sysroot}
 | 
			
		||||
echo
 | 
			
		||||
echo "Recreating ${dir_artifacts}"
 | 
			
		||||
rm -Rf ${dir_artifacts}
 | 
			
		||||
mkdir -p ${dir_artifacts}
 | 
			
		||||
 | 
			
		||||
echo
 | 
			
		||||
echo "Recreating ${dir_sysroot}"
 | 
			
		||||
rm -Rf ${dir_sysroot}
 | 
			
		||||
mkdir -p ${dir_sysroot}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -236,7 +236,7 @@ mode_build_libstdcxx_pass1() {
 | 
			
		|||
		--disable-multilib \
 | 
			
		||||
		--disable-nls \
 | 
			
		||||
		--disable-libstdcxx-pch \
 | 
			
		||||
		--with-gxx-include-dir=/$(basename ${CROSSTOOLS_DIR})/${T_TRIPLET}/include/c++/10.2.0
 | 
			
		||||
		--with-gxx-include-dir=/$(basename ${CROSSTOOLS_DIR})/${T_TRIPLET}/include/c++/12.2.0
 | 
			
		||||
	assert_zero $?
 | 
			
		||||
	
 | 
			
		||||
	logprint "Compiling..."
 | 
			
		||||
| 
						 | 
				
			
			@ -291,6 +291,9 @@ mode_install_libstdcxx_pass1() {
 | 
			
		|||
	make DESTDIR=${T_SYSROOT} install
 | 
			
		||||
	assert_zero $?
 | 
			
		||||
	
 | 
			
		||||
	logprint "Cleaning up libtool archive files..."
 | 
			
		||||
	rm -v ${T_SYSROOT}/usr/lib/lib{stdc++,stdc++fs,supc++}.la
 | 
			
		||||
	
 | 
			
		||||
	logprint "Install of libstdcxx complete."
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,216 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
# desc:
 | 
			
		||||
# stages, builds, installs
 | 
			
		||||
 | 
			
		||||
# make variables persist in subprocesses for logging function
 | 
			
		||||
set -a
 | 
			
		||||
 | 
			
		||||
# ----------------------------------------------------------------------
 | 
			
		||||
# Configuration:
 | 
			
		||||
# ----------------------------------------------------------------------
 | 
			
		||||
# the name of this application
 | 
			
		||||
APPNAME="m4"
 | 
			
		||||
 | 
			
		||||
# the version of this application
 | 
			
		||||
VERSION="1.4.19"
 | 
			
		||||
 | 
			
		||||
# ----------------------------------------------------------------------
 | 
			
		||||
# Variables and functions sourced from Environment:
 | 
			
		||||
# ----------------------------------------------------------------------
 | 
			
		||||
# assert_zero()
 | 
			
		||||
# Checks if $1 is 0.  If non-0 value, halts the execution of the script.
 | 
			
		||||
#
 | 
			
		||||
# LOGS_ROOT
 | 
			
		||||
# The parent directory where logs from this project will go.
 | 
			
		||||
#
 | 
			
		||||
# TEMP_STAGE_DIR
 | 
			
		||||
# The parent directory of where source archives are extracted to.
 | 
			
		||||
 | 
			
		||||
# register mode selections
 | 
			
		||||
ARGUMENT_LIST=(
 | 
			
		||||
    "stage"
 | 
			
		||||
    "build_temp"
 | 
			
		||||
    "install_temp"
 | 
			
		||||
    "all_temp"
 | 
			
		||||
    "help"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
# modes to associate with switches
 | 
			
		||||
# assumes you want nothing done unless you ask for it.
 | 
			
		||||
MODE_STAGE=false
 | 
			
		||||
MODE_BUILD_TEMP=false
 | 
			
		||||
MODE_INSTALL_TEMP=false
 | 
			
		||||
MODE_ALL_TEMP=false
 | 
			
		||||
MODE_HELP=false
 | 
			
		||||
 | 
			
		||||
# the file to log to
 | 
			
		||||
LOGFILE="${APPNAME}.log"
 | 
			
		||||
 | 
			
		||||
# ISO 8601 variation
 | 
			
		||||
TIMESTAMP="$(date +%Y-%m-%d_%H:%M:%S)"
 | 
			
		||||
 | 
			
		||||
# the path where logs are written to
 | 
			
		||||
# note: LOGS_ROOT is sourced from environment
 | 
			
		||||
LOG_DIR="${LOGS_ROOT}/${APPNAME}-${TIMESTAMP}"
 | 
			
		||||
 | 
			
		||||
# the path where the source will be located when complete
 | 
			
		||||
# note: TEMP_STAGE_DIR is sourced from environment
 | 
			
		||||
T_SOURCE_DIR="${TEMP_STAGE_DIR}/${APPNAME}"
 | 
			
		||||
 | 
			
		||||
# read defined arguments
 | 
			
		||||
opts=$(getopt \
 | 
			
		||||
    --longoptions "$(printf "%s," "${ARGUMENT_LIST[@]}")" \
 | 
			
		||||
    --name "$APPNAME" \
 | 
			
		||||
    --options "" \
 | 
			
		||||
    -- "$@"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
# process supplied arguments into flags that enable execution modes
 | 
			
		||||
eval set --$opts
 | 
			
		||||
while [[ $# -gt 0 ]]; do
 | 
			
		||||
    case "$1" in
 | 
			
		||||
        --stage)
 | 
			
		||||
            MODE_STAGE=true
 | 
			
		||||
            shift 1
 | 
			
		||||
            ;;
 | 
			
		||||
        --build_temp)
 | 
			
		||||
            MODE_BUILD_TEMP=true
 | 
			
		||||
            shift 1
 | 
			
		||||
            ;;
 | 
			
		||||
        --install_temp)
 | 
			
		||||
            MODE_INSTALL_TEMP=true
 | 
			
		||||
            shift 1
 | 
			
		||||
            ;;
 | 
			
		||||
        --all_temp)
 | 
			
		||||
            MODE_ALL_TEMP=true
 | 
			
		||||
            shift 1
 | 
			
		||||
            ;;
 | 
			
		||||
        --help)
 | 
			
		||||
            MODE_HELP=true
 | 
			
		||||
            shift 1
 | 
			
		||||
            ;;
 | 
			
		||||
        *)
 | 
			
		||||
            break
 | 
			
		||||
            ;;
 | 
			
		||||
    esac
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
# print to stdout, print to log
 | 
			
		||||
logprint() {
 | 
			
		||||
	mkdir -p "${LOG_DIR}"
 | 
			
		||||
	echo "[$(date +%Y-%m-%d_%H:%M:%S)] [${APPNAME}] $1" \
 | 
			
		||||
	| tee -a "${LOG_DIR}/${LOGFILE}"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Tell the user we're alive...
 | 
			
		||||
logprint "Initializing the ${APPNAME} utility..."
 | 
			
		||||
 | 
			
		||||
# when the stage mode is enabled, this will execute
 | 
			
		||||
mode_stage() {
 | 
			
		||||
	logprint "Starting stage of ${APPNAME}..."
 | 
			
		||||
 | 
			
		||||
	logprint "Removing any pre-existing staging for ${APPNAME}."
 | 
			
		||||
	rm -Rf "${T_SOURCE_DIR}"*
 | 
			
		||||
 | 
			
		||||
	logprint "Extracting ${APPNAME}-${VERSION} source archive to ${TEMP_STAGE_DIR}"
 | 
			
		||||
	tar xf "${SOURCES_DIR}/${APPNAME}-${VERSION}.tar."* -C "${TEMP_STAGE_DIR}"
 | 
			
		||||
	assert_zero $?
 | 
			
		||||
 | 
			
		||||
	# conditionally rename if it needs it
 | 
			
		||||
	stat "${T_SOURCE_DIR}-"* && mv "${T_SOURCE_DIR}-"* "${T_SOURCE_DIR}"
 | 
			
		||||
 | 
			
		||||
	logprint "Staging operation complete."
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# when the build_pass1 mode is enabled, this will execute
 | 
			
		||||
mode_build_temp() {
 | 
			
		||||
	
 | 
			
		||||
	# patch, configure and build
 | 
			
		||||
	logprint "Starting build of ${APPNAME}..."
 | 
			
		||||
	
 | 
			
		||||
	logprint "Entering build dir."	
 | 
			
		||||
	pushd "${T_SOURCE_DIR}"
 | 
			
		||||
	assert_zero $?
 | 
			
		||||
	
 | 
			
		||||
	# patches
 | 
			
		||||
	#logprint "Applying patches..."
 | 
			
		||||
	#patch -p1 < "${PATCHES_DIR}/m4-1.4.18_to_glibc-2.28_compat.patch"
 | 
			
		||||
	#assert_zero $?
 | 
			
		||||
 | 
			
		||||
	#patch -p1 < "${PATCHES_DIR}/m4-1.4.18_to_glibc-2.28_compat2.patch"
 | 
			
		||||
	#assert_zero $?
 | 
			
		||||
			
 | 
			
		||||
	logprint "Configuring ${APPNAME}..."
 | 
			
		||||
	./configure \
 | 
			
		||||
		--prefix=/usr \
 | 
			
		||||
		--host=${T_TRIPLET} \
 | 
			
		||||
		--build=$(build-aux/config.guess)
 | 
			
		||||
	assert_zero $?
 | 
			
		||||
	
 | 
			
		||||
	logprint "Compiling..."
 | 
			
		||||
	make
 | 
			
		||||
	assert_zero $?
 | 
			
		||||
 | 
			
		||||
	logprint "Build operation complete."
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
mode_install_temp() {
 | 
			
		||||
	logprint "Starting install of ${APPNAME}..."
 | 
			
		||||
	pushd "${T_SOURCE_DIR}"
 | 
			
		||||
	assert_zero $?
 | 
			
		||||
	
 | 
			
		||||
	logprint "Installing..."
 | 
			
		||||
	make DESTDIR=${T_SYSROOT} install
 | 
			
		||||
	assert_zero $?
 | 
			
		||||
		
 | 
			
		||||
	logprint "Install operation complete."
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
mode_help() {
 | 
			
		||||
	echo "${APPNAME} [ --stage ] [ --build_temp ] [ --install_temp ] [ --all_temp ] [ --help ]"
 | 
			
		||||
	exit 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if [ "$MODE_ALL_TEMP" = "true" ]; then
 | 
			
		||||
	MODE_STAGE=true
 | 
			
		||||
	MODE_BUILD_TEMP=true
 | 
			
		||||
	MODE_INSTALL_TEMP=true
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# if no options were selected, then show help and exit
 | 
			
		||||
if \
 | 
			
		||||
	[ "$MODE_HELP" != "true" ] && \
 | 
			
		||||
	[ "$MODE_STAGE" != "true" ] && \
 | 
			
		||||
	[ "$MODE_BUILD_TEMP" != "true" ] && \
 | 
			
		||||
	[ "$MODE_INSTALL_TEMP" != "true" ]
 | 
			
		||||
then
 | 
			
		||||
	logprint "No option selected during execution."
 | 
			
		||||
	mode_help
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# if help was supplied at all, show help and exit
 | 
			
		||||
if [ "$MODE_HELP" = "true" ]; then
 | 
			
		||||
	logprint "Help option selected.  Printing options and exiting."
 | 
			
		||||
	mode_help
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ "$MODE_STAGE" = "true" ]; then
 | 
			
		||||
	logprint "Staging option selected."
 | 
			
		||||
	mode_stage
 | 
			
		||||
	assert_zero $?
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ "$MODE_BUILD_TEMP" = "true" ]; then
 | 
			
		||||
	logprint "Build of ${APPNAME} selected."
 | 
			
		||||
	mode_build_temp
 | 
			
		||||
	assert_zero $?
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ "$MODE_INSTALL_TEMP" = "true" ]; then
 | 
			
		||||
	logprint "Install of ${APPNAME} selected."
 | 
			
		||||
	mode_install_temp
 | 
			
		||||
	assert_zero $?
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
logprint "Execution of ${APPNAME} completed."
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,260 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
# desc:
 | 
			
		||||
# stages, builds, installs
 | 
			
		||||
 | 
			
		||||
# make variables persist in subprocesses for logging function
 | 
			
		||||
set -a
 | 
			
		||||
 | 
			
		||||
# ----------------------------------------------------------------------
 | 
			
		||||
# Configuration:
 | 
			
		||||
# ----------------------------------------------------------------------
 | 
			
		||||
# the name of this application
 | 
			
		||||
APPNAME="ncurses"
 | 
			
		||||
 | 
			
		||||
# the version of this application
 | 
			
		||||
VERSION="6.4"
 | 
			
		||||
 | 
			
		||||
# ----------------------------------------------------------------------
 | 
			
		||||
# Variables and functions sourced from Environment:
 | 
			
		||||
# ----------------------------------------------------------------------
 | 
			
		||||
# assert_zero()
 | 
			
		||||
# Checks if $1 is 0.  If non-0 value, halts the execution of the script.
 | 
			
		||||
#
 | 
			
		||||
# LOGS_ROOT
 | 
			
		||||
# The parent directory where logs from this project will go.
 | 
			
		||||
#
 | 
			
		||||
# TEMP_STAGE_DIR
 | 
			
		||||
# The parent directory of where source archives are extracted to.
 | 
			
		||||
 | 
			
		||||
# register mode selections
 | 
			
		||||
ARGUMENT_LIST=(
 | 
			
		||||
    "stage"
 | 
			
		||||
    "build_temp"
 | 
			
		||||
    "install_temp"
 | 
			
		||||
    "all_temp"
 | 
			
		||||
    "help"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
# modes to associate with switches
 | 
			
		||||
# assumes you want nothing done unless you ask for it.
 | 
			
		||||
MODE_STAGE=false
 | 
			
		||||
MODE_BUILD_TEMP=false
 | 
			
		||||
MODE_INSTALL_TEMP=false
 | 
			
		||||
MODE_ALL_TEMP=false
 | 
			
		||||
MODE_HELP=false
 | 
			
		||||
 | 
			
		||||
# the file to log to
 | 
			
		||||
LOGFILE="${APPNAME}.log"
 | 
			
		||||
 | 
			
		||||
# ISO 8601 variation
 | 
			
		||||
TIMESTAMP="$(date +%Y-%m-%d_%H:%M:%S)"
 | 
			
		||||
 | 
			
		||||
# the path where logs are written to
 | 
			
		||||
# note: LOGS_ROOT is sourced from environment
 | 
			
		||||
LOG_DIR="${LOGS_ROOT}/${APPNAME}-${TIMESTAMP}"
 | 
			
		||||
 | 
			
		||||
# the path where the source will be located when complete
 | 
			
		||||
# note: TEMP_STAGE_DIR is sourced from environment
 | 
			
		||||
T_SOURCE_DIR="${TEMP_STAGE_DIR}/${APPNAME}"
 | 
			
		||||
 | 
			
		||||
# read defined arguments
 | 
			
		||||
opts=$(getopt \
 | 
			
		||||
    --longoptions "$(printf "%s," "${ARGUMENT_LIST[@]}")" \
 | 
			
		||||
    --name "$APPNAME" \
 | 
			
		||||
    --options "" \
 | 
			
		||||
    -- "$@"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
# process supplied arguments into flags that enable execution modes
 | 
			
		||||
eval set --$opts
 | 
			
		||||
while [[ $# -gt 0 ]]; do
 | 
			
		||||
    case "$1" in
 | 
			
		||||
        --stage)
 | 
			
		||||
            MODE_STAGE=true
 | 
			
		||||
            shift 1
 | 
			
		||||
            ;;
 | 
			
		||||
        --build_temp)
 | 
			
		||||
            MODE_BUILD_TEMP=true
 | 
			
		||||
            shift 1
 | 
			
		||||
            ;;
 | 
			
		||||
        --install_temp)
 | 
			
		||||
            MODE_INSTALL_TEMP=true
 | 
			
		||||
            shift 1
 | 
			
		||||
            ;;
 | 
			
		||||
        --all_temp)
 | 
			
		||||
            MODE_ALL_TEMP=true
 | 
			
		||||
            shift 1
 | 
			
		||||
            ;;
 | 
			
		||||
        --help)
 | 
			
		||||
            MODE_HELP=true
 | 
			
		||||
            shift 1
 | 
			
		||||
            ;;
 | 
			
		||||
        *)
 | 
			
		||||
            break
 | 
			
		||||
            ;;
 | 
			
		||||
    esac
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
# print to stdout, print to log
 | 
			
		||||
logprint() {
 | 
			
		||||
	mkdir -p "${LOG_DIR}"
 | 
			
		||||
	echo "[$(date +%Y-%m-%d_%H:%M:%S)] [${APPNAME}] $1" \
 | 
			
		||||
	| tee -a "${LOG_DIR}/${LOGFILE}"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Tell the user we're alive...
 | 
			
		||||
logprint "Initializing the ${APPNAME} utility..."
 | 
			
		||||
 | 
			
		||||
# when the stage mode is enabled, this will execute
 | 
			
		||||
mode_stage() {
 | 
			
		||||
	logprint "Starting stage of ${APPNAME}..."
 | 
			
		||||
 | 
			
		||||
	logprint "Removing any pre-existing staging for ${APPNAME}."
 | 
			
		||||
	rm -Rf "${T_SOURCE_DIR}"*
 | 
			
		||||
 | 
			
		||||
	logprint "Extracting ${APPNAME}-${VERSION} source archive to ${TEMP_STAGE_DIR}"
 | 
			
		||||
	tar xf "${SOURCES_DIR}/${APPNAME}-${VERSION}.tar."* -C "${TEMP_STAGE_DIR}"
 | 
			
		||||
	assert_zero $?
 | 
			
		||||
 | 
			
		||||
	# conditionally rename if it needs it
 | 
			
		||||
	stat "${T_SOURCE_DIR}-"* && mv "${T_SOURCE_DIR}-"* "${T_SOURCE_DIR}"
 | 
			
		||||
 | 
			
		||||
	logprint "Staging operation complete."
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# when the build_pass1 mode is enabled, this will execute
 | 
			
		||||
mode_build_temp() {
 | 
			
		||||
	
 | 
			
		||||
	# patch, configure and build
 | 
			
		||||
	logprint "Starting build of ${APPNAME}..."
 | 
			
		||||
	
 | 
			
		||||
	logprint "Entering stage dir."	
 | 
			
		||||
	pushd "${T_SOURCE_DIR}"
 | 
			
		||||
	assert_zero $?
 | 
			
		||||
	
 | 
			
		||||
	# patches
 | 
			
		||||
	logprint "Applying patches..."
 | 
			
		||||
	patch -p1 < "${PATCHES_DIR}/ncurses-6.4_ensure-gawk-over-mawk.patch"
 | 
			
		||||
	assert_zero $?
 | 
			
		||||
 | 
			
		||||
	logprint "Entering temporary build subdirectory..."
 | 
			
		||||
	mkdir -p build
 | 
			
		||||
	pushd build
 | 
			
		||||
	assert_zero $?
 | 
			
		||||
	
 | 
			
		||||
	logprint "Building the tic progam..."
 | 
			
		||||
	../configure
 | 
			
		||||
	assert_zero $?
 | 
			
		||||
	
 | 
			
		||||
	logprint "Building includes..."
 | 
			
		||||
	make -C include
 | 
			
		||||
	assert_zero $?
 | 
			
		||||
	
 | 
			
		||||
	logprint "Building tic"
 | 
			
		||||
	make -C progs tic
 | 
			
		||||
	assert_zero $?
 | 
			
		||||
	
 | 
			
		||||
	logprint "Exiting temp build subdir"
 | 
			
		||||
	popd
 | 
			
		||||
	assert_zero $?
 | 
			
		||||
				
 | 
			
		||||
	logprint "Configuring ${APPNAME}..."
 | 
			
		||||
	./configure \
 | 
			
		||||
		--prefix=/usr \
 | 
			
		||||
		--host=${T_TRIPLET} \
 | 
			
		||||
		--build=$(./config.guess) \
 | 
			
		||||
		--mandir=/usr/share/man \
 | 
			
		||||
		--with-manpage-format=normal \
 | 
			
		||||
		--with-shared \
 | 
			
		||||
		--without-normal \
 | 
			
		||||
		--with-cxx-shared \
 | 
			
		||||
		--without-debug \
 | 
			
		||||
		--without-ada \
 | 
			
		||||
		--disable-stripping \
 | 
			
		||||
		--enable-widec
 | 
			
		||||
	assert_zero $?
 | 
			
		||||
	
 | 
			
		||||
	logprint "Compiling..."
 | 
			
		||||
	make
 | 
			
		||||
	assert_zero $?
 | 
			
		||||
	
 | 
			
		||||
	logprint "Build operation complete."
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
mode_install_temp() {
 | 
			
		||||
	logprint "Starting install of ${APPNAME}..."
 | 
			
		||||
	pushd "${T_SOURCE_DIR}"
 | 
			
		||||
	assert_zero $?
 | 
			
		||||
	
 | 
			
		||||
	logprint "Installing..."
 | 
			
		||||
	make DESTDIR=${T_SYSROOT} TIC_PATH=$(pwd)/build/progs/tic install
 | 
			
		||||
	assert_zero $?
 | 
			
		||||
	
 | 
			
		||||
	logprint "HACK: INPUT(-lncursesw)"
 | 
			
		||||
	echo "INPUT(-lncursesw)" > ${T_SYSROOT}/usr/lib/libncurses.so
 | 
			
		||||
	assert_zero $?
 | 
			
		||||
 | 
			
		||||
	# from SURRO
 | 
			
		||||
	#logprint "Cleaning up installation..."
 | 
			
		||||
	#logprint "Moving ncursesw shared objects from /usr/lib to /lib in T_SYSROOT."
 | 
			
		||||
	#mv -v ${T_SYSROOT}/usr/lib/libncursesw.so.6* ${T_SYSROOT}/lib
 | 
			
		||||
	#assert_zero $?
 | 
			
		||||
	
 | 
			
		||||
	# from SURRO
 | 
			
		||||
	#logprint "Cleaning up symlinks broken by previous."
 | 
			
		||||
	#ln -sfv ../../lib/$(readlink ${T_SYSROOT}/usr/lib/libncursesw.so) ${T_SYSROOT}/usr/lib/libncursesw.so
 | 
			
		||||
	#assert_zero $?
 | 
			
		||||
	
 | 
			
		||||
	
 | 
			
		||||
	
 | 
			
		||||
	logprint "Install operation complete."
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
mode_help() {
 | 
			
		||||
	echo "${APPNAME} [ --stage ] [ --build_temp ] [ --install_temp ] [ --all_temp ] [ --help ]"
 | 
			
		||||
	exit 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if [ "$MODE_ALL_TEMP" = "true" ]; then
 | 
			
		||||
	MODE_STAGE=true
 | 
			
		||||
	MODE_BUILD_TEMP=true
 | 
			
		||||
	MODE_INSTALL_TEMP=true
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# if no options were selected, then show help and exit
 | 
			
		||||
if \
 | 
			
		||||
	[ "$MODE_HELP" != "true" ] && \
 | 
			
		||||
	[ "$MODE_STAGE" != "true" ] && \
 | 
			
		||||
	[ "$MODE_BUILD_TEMP" != "true" ] && \
 | 
			
		||||
	[ "$MODE_INSTALL_TEMP" != "true" ]
 | 
			
		||||
then
 | 
			
		||||
	logprint "No option selected during execution."
 | 
			
		||||
	mode_help
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# if help was supplied at all, show help and exit
 | 
			
		||||
if [ "$MODE_HELP" = "true" ]; then
 | 
			
		||||
	logprint "Help option selected.  Printing options and exiting."
 | 
			
		||||
	mode_help
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ "$MODE_STAGE" = "true" ]; then
 | 
			
		||||
	logprint "Staging option selected."
 | 
			
		||||
	mode_stage
 | 
			
		||||
	assert_zero $?
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ "$MODE_BUILD_TEMP" = "true" ]; then
 | 
			
		||||
	logprint "Build of ${APPNAME} selected."
 | 
			
		||||
	mode_build_temp
 | 
			
		||||
	assert_zero $?
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ "$MODE_INSTALL_TEMP" = "true" ]; then
 | 
			
		||||
	logprint "Install of ${APPNAME} selected."
 | 
			
		||||
	mode_install_temp
 | 
			
		||||
	assert_zero $?
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
logprint "Execution of ${APPNAME} completed."
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,48 @@
 | 
			
		|||
HORSE=$(cat <<'EOH'
 | 
			
		||||
⠀⠀⠀⠀⠀⠀⢀⠀⠀⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
 | 
			
		||||
⠀⠀⠀⠀⠀⠀⠘⣦⡀⠘⣆⠈⠛⠻⣗⠶⣶⣤⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
 | 
			
		||||
⠀⠀⠀⠀⠀⠀⠀⠈⣿⠀⠈⠳⠄⠀⠈⠙⠶⣍⡻⢿⣷⣦⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
 | 
			
		||||
⠀⠀⠀⠀⠀⠀⠀⣰⣿⣧⠀⠀⠀⠀⠀⠀⠀⠈⠻⣮⡹⣿⣿⣷⣦⣄⣀⠀⠀⢀⣸⠃⠀⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
 | 
			
		||||
⠀⠀⠀⠀⠀⠀⢠⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⣮⢿⣿⣿⣿⣿⣿⣿⣿⠟⠀⢰⣿⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
 | 
			
		||||
⠀⠀⠀⠀⠀⢀⣾⣿⠀⠀⠀⠀⠀⠀⠀⣷⠀⢷⠀⠀⠀⠙⢷⣿⣿⣿⣿⣟⣋⣀⣤⣴⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
 | 
			
		||||
⠀⠀⠀⠀⢀⣼⢿⣿⡀⠀⠀⢀⣀⣴⣾⡟⠀⠈⣇⠀⠀⠀⠈⢻⡙⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
 | 
			
		||||
⠀⠀⠀⠀⣼⡏⠸⣿⣿⣶⣾⣿⡿⠟⠋⠀⠀⠀⢹⡆⠀⠀⠀⠀⠹⡽⣿⣿⣿⣿⣿⣿⣿⣿⡿⠛⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
 | 
			
		||||
⠀⠀⠀⣰⣿⠀⠀⠀⣀⡿⠛⠉⠀⠀⢿⠀⠀⠀⠘⣿⡄⠀⠀⠀⠀⠑⢹⣿⣿⣿⣿⣿⣿⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
 | 
			
		||||
⠀⠀⠀⣿⣿⣷⣶⣾⠏⠀⠀⠀⠀⠀⠘⣇⠀⠀⠀⢻⡇⠀⠀⠀⠀⠀⠀⠹⣿⣿⣿⣿⣿⡿⠃⠀⣠⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
 | 
			
		||||
⠀⠀⠀⠈⠙⠿⠿⠋⠀⠀⠀⠀⠀⠀⠀⣿⠀⠀⠀⢸⣷⠀⠀⠀⠀⠀⢀⠀⠹⣿⣿⣿⣿⣷⣶⣿⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
 | 
			
		||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⠀⠀⠀⢸⣿⠀⠀⠀⠀⢀⡞⠀⠀⠈⠛⠻⠿⠿⠯⠥⠤⢄⣀⣀⢀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
 | 
			
		||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⠀⠀⠀⢸⡇⠀⠀⠀⢀⡼⠃⠀⠀⠀⠀⠀⣄⠀⠀⠀⠀⠀⠀⠈⠙⠂⠙⠳⢤⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
 | 
			
		||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⠇⠀⠀⠀⡾⠁⠀⠀⣠⡿⠃⠀⠀⠀⠀⠀⠀⠸⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
 | 
			
		||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⠀⠀⠀⡸⠃⠀⢀⣴⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣷⣶⣶⣦⣤⣀⡀⠀⠀⠀⠀⠀⠀
 | 
			
		||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⠇⠀⠀⠀⠃⢀⣴⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣿⣿⣿⣿⣿⣿⣿⣶⣤⡀⠀⠀
 | 
			
		||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⠏⠀⠀⠀⠀⣰⡟⠁⠀⠀⠀     ⠀⠀⠀⣼⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣧⠙⠻⣿⣿⣿⣿⣿⣿⣦⡀
 | 
			
		||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⡏⠀⠀⢀⡖⢰⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠟⠀⠀⠀⢸⣿⠀⠀⠈⢿⣿⣿⣿⣿⣿⡿
 | 
			
		||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⡇⠀⠀⣼⠁⠼⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡴⠋⠀⠀⠀⠀⣼⡇⠀⠀⣠⣾⣿⣿⣿⣿⠟⠀
 | 
			
		||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡄⠘⣇⠀⠀⢻⡄⢠⡄⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⡴⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⠟⠁⠀⠀⠀⢀⣼⠏⠀⣠⣾⣿⣿⡿⣿⡿⠁⠀⠀
 | 
			
		||||
⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⠁⠀⠘⠂⠀⠀⢳⠀⢳⡀⠀⠀⠀⠀⠀⠀⢀⡼⠁⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣾⣿⠃⠀⠀⠀⠀⣠⣾⠃⣠⣾⣿⣿⠿⠋⢰⡟⠀⠀⠀⠀
 | 
			
		||||
⠀⠀⠀⠀⠀⠀⠀⢠⣿⠃⠀⠀⠀⢀⣀⡴⠞⠙⠲⣷⡄⠀⠀⠀⠀⢠⡾⠁⠀⠀⠀⢀⣀⣠⣤⣶⠿⠟⠋⠀⡾⠀⠀⠀⢀⣴⠟⠁⢠⡟⢱⡿⠃⠀⠀⠸⣇⡀⠀⠀⠀
 | 
			
		||||
⠀⠀⠀⠀⠀⢀⡴⠟⠁⠀⣀⡤⠖⠋⠁⠀⠀⠀⠀⣸⠇⠀⠀⠀⣤⠟⠑⠋⠉⣿⠋⠉⠉⠉⠁⣠⠞⠀⠀⠀⡇⠀⠀⢠⡿⠋⠀⠀⠈⠁⡿⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀
 | 
			
		||||
⠀⠀⠀⢀⣾⣏⣤⣶⡾⠛⠉⠀⠀⠀⠀⠀⠀⢀⡼⠃⠀⠀⣠⠞⠁⠀⠀⠀⠀⣿⠀⠀⠀⢀⡼⠃⠀⠀⠀⢸⠇⠀⣰⠟⠀⠀⠀⠀⠀⠐⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
 | 
			
		||||
⠀⠀⢀⣿⣿⡿⠛⠁⠀⠀⠀⠀⠀⠀⠀⢀⣴⠏⠀⠀⣠⠞⠁⠀⠀⠀⠀⠀⠀⣿⠀⠀⢀⡾⠃⠀⠀⠀⢀⡞⠀⣼⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
 | 
			
		||||
⠀⠀⣼⣿⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀⢠⣾⣿⣶⣶⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⣿⠀⠀⣾⠇⠀⠀⠀⢀⣾⣣⣾⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
 | 
			
		||||
⠀⢠⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⠀⢠⡟⠀⠀⠀⢀⣾⣿⣿⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
 | 
			
		||||
⢀⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣿⡄⢀⣀⡀⠀⠀⠀⠀⠀⠀⢸⡇⠀⣾⠇⠀⠀⣰⣿⣿⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
 | 
			
		||||
⢸⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⣿⣿⣿⣿⣿⣦⡀⠀⠀⠀⠀⣾⠀⣰⠟⠀⢀⣼⣿⣿⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
 | 
			
		||||
⢸⣿⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠿⠿⠿⠿⠿⠿⠃⠀⠀⠀⢸⣿⣶⠏⢀⣴⣿⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
 | 
			
		||||
⢸⣿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣾⣿⠃⢠⣿⣿⡿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
 | 
			
		||||
⢿⣿⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣿⢃⣴⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
 | 
			
		||||
⠈⠛⠛⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣿⣧⣾⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
 | 
			
		||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣿⣿⡟⢸⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
 | 
			
		||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣿⣿⣿⠁⠀⠀⠈⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
 | 
			
		||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠿⠿⠿⠛⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
 | 
			
		||||
EOH
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
echo
 | 
			
		||||
echo
 | 
			
		||||
echo -e "\e[31m$HORSE\e[0m"
 | 
			
		||||
echo
 | 
			
		||||
echo "Welcome to Pyrois, the build system for Dark Horse Linux."
 | 
			
		||||
echo
 | 
			
		||||
echo "Stage 2, Temporary Toolchains"
 | 
			
		||||
echo
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,71 @@
 | 
			
		|||
set -a
 | 
			
		||||
 | 
			
		||||
source ./project_config.sh
 | 
			
		||||
 | 
			
		||||
TERM=xterm-256color
 | 
			
		||||
COLORTERM=truecolor
 | 
			
		||||
LC_ALL=C
 | 
			
		||||
 | 
			
		||||
function echofail() {
 | 
			
		||||
	echo
 | 
			
		||||
	echo "FAILED: $1"
 | 
			
		||||
	echo
 | 
			
		||||
	exit 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# keeps talking about T_SYSROOT as $LFS
 | 
			
		||||
# wants $LFS path to be a mount
 | 
			
		||||
# needs to be set for any user including root
 | 
			
		||||
 | 
			
		||||
#2.6
 | 
			
		||||
# sourced from project_config
 | 
			
		||||
T_SYSROOT=${dir_sysroot}
 | 
			
		||||
LFS=${T_SYSROOT}
 | 
			
		||||
 | 
			
		||||
# 4.3 we skip user and group creation, it's expected to be done before
 | 
			
		||||
# you start if you want a different user than you're running as
 | 
			
		||||
# == after that, configure the rex unit for dir creation to use that user
 | 
			
		||||
 | 
			
		||||
if [ "$(id -u)" -ne 0 ]; then 
 | 
			
		||||
	echo "Not running as root." 
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# 4.4
 | 
			
		||||
 | 
			
		||||
# The set +h command turns off bash's hash function, which affects caching of paths for executables
 | 
			
		||||
set +h
 | 
			
		||||
 | 
			
		||||
# ensures newly created files and directories are only writable by their owner, but are readable and executable by anyone
 | 
			
		||||
umask 022
 | 
			
		||||
 | 
			
		||||
# sets a comptabile machine name description for use when building crosstools that isn't going to be what the host system is using
 | 
			
		||||
# $LFS_TGT is what LFS uses for this
 | 
			
		||||
T_TRIPLET=x86_64-dhl-linux-gnu
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# prevents some configure scripts from looking in the wrong place for config.site 
 | 
			
		||||
CONFIG_SITE=${T_SYSROOT}/usr/share/config.site
 | 
			
		||||
 | 
			
		||||
# 4.5
 | 
			
		||||
MAKEFLAGS="-j$(nproc)"
 | 
			
		||||
 | 
			
		||||
# where the cross-compiler gets installed ($LFS/tools)
 | 
			
		||||
CROSSTOOLS_DIR=${T_SYSROOT}/xtools
 | 
			
		||||
TEMP_STAGE_DIR=${T_SYSROOT}/source_stage
 | 
			
		||||
# from project_config
 | 
			
		||||
SOURCES_DIR=${dir_sources}
 | 
			
		||||
PATCHES_DIR=${dir_patches}
 | 
			
		||||
LOGS_ROOT=${dir_logs}
 | 
			
		||||
 | 
			
		||||
# fail the unit in the event of a non-zero value passed
 | 
			
		||||
# used primarily to check exit codes on previous commands
 | 
			
		||||
# also a great convenient place to add in a "press any key to continue"
 | 
			
		||||
assert_zero() {
 | 
			
		||||
	if [[ "$1" -eq 0 ]]; then 
 | 
			
		||||
		return
 | 
			
		||||
	else
 | 
			
		||||
		exit $1
 | 
			
		||||
	fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
PATH=${CROSSTOOLS_DIR}/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin
 | 
			
		||||
| 
						 | 
				
			
			@ -27,14 +27,19 @@
 | 
			
		|||
			"comment":		"LFS 11.3-systemd-rc1 Ch. 5.3"
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			"name":			"linux api headers",
 | 
			
		||||
			"name":			"linux api headers pass 1",
 | 
			
		||||
			"dependencies":	[ null ],
 | 
			
		||||
			"comment":		"LFS 11.3-systemd-rc1 Ch. 5.4.1"
 | 
			
		||||
			"comment":		"LFS 11.3-systemd-rc1 Ch. 5.4"
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			"name":			"glibc",
 | 
			
		||||
			"name":			"glibc pass 1",
 | 
			
		||||
			"dependencies":	[ null ],
 | 
			
		||||
			"comment":		"LFS 11.3-systemd-rc1 Ch. 5.5"
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			"name":			"libstdc++ pass 1",
 | 
			
		||||
			"dependencies":	[ null ],
 | 
			
		||||
			"comment":		"LFS 11.3-systemd-rc1 Ch. 5.6"
 | 
			
		||||
		}
 | 
			
		||||
	]
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,20 @@
 | 
			
		|||
{
 | 
			
		||||
	"plan":
 | 
			
		||||
	[
 | 
			
		||||
		{
 | 
			
		||||
			"name":			"welcome", 
 | 
			
		||||
			"dependencies": [ null ],
 | 
			
		||||
			"comment":		"greet the user"
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			"name":			"m4 pass 1", 
 | 
			
		||||
			"dependencies": [ null ],
 | 
			
		||||
			"comment":		"LFS 11.3-systemd-rc1 Ch. 6.2 (temp tools)"
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			"name":			"ncurses pass 1", 
 | 
			
		||||
			"dependencies": [ null ],
 | 
			
		||||
			"comment":		"LFS 11.3-systemd-rc1 Ch. 6.2 (temp tools)"
 | 
			
		||||
		}
 | 
			
		||||
	]
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -2,7 +2,7 @@
 | 
			
		|||
  "units": [
 | 
			
		||||
    {
 | 
			
		||||
        "name":         			"welcome",
 | 
			
		||||
        "target":       			"components/welcome.bash",
 | 
			
		||||
        "target":       			"components/stage1/welcome.bash",
 | 
			
		||||
		"is_shell_command":			true,
 | 
			
		||||
		"shell_definition":			"bash",
 | 
			
		||||
		"force_pty":				true,
 | 
			
		||||
| 
						 | 
				
			
			@ -20,7 +20,7 @@
 | 
			
		|||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "name":         			"check dependencies",
 | 
			
		||||
        "target":       			"components/check_dependencies.bash",
 | 
			
		||||
        "target":       			"components/stage1/check_dependencies.bash",
 | 
			
		||||
		"is_shell_command":			true,
 | 
			
		||||
		"shell_definition":			"bash",
 | 
			
		||||
		"force_pty":				true,
 | 
			
		||||
| 
						 | 
				
			
			@ -38,7 +38,7 @@
 | 
			
		|||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "name":         			"creating T_SYSROOT dirs",
 | 
			
		||||
        "target":       			"components/create_sysroot_dirs.bash",
 | 
			
		||||
        "target":       			"components/stage1/create_sysroot_dirs.bash",
 | 
			
		||||
		"is_shell_command":			true,
 | 
			
		||||
		"shell_definition":			"bash",
 | 
			
		||||
		"force_pty":				true,
 | 
			
		||||
| 
						 | 
				
			
			@ -56,7 +56,7 @@
 | 
			
		|||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "name":         			"binutils pass 1",
 | 
			
		||||
        "target":       			"components/binutils.bash --pass1",
 | 
			
		||||
        "target":       			"components/stage1/binutils.bash --pass1",
 | 
			
		||||
		"is_shell_command":			true,
 | 
			
		||||
		"shell_definition":			"bash",
 | 
			
		||||
		"force_pty":				true,
 | 
			
		||||
| 
						 | 
				
			
			@ -74,7 +74,7 @@
 | 
			
		|||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "name":         			"gcc pass 1",
 | 
			
		||||
        "target":       			"components/gcc.bash --gcc_pass1",
 | 
			
		||||
        "target":       			"components/stage1/gcc.bash --gcc_pass1",
 | 
			
		||||
		"is_shell_command":			true,
 | 
			
		||||
		"shell_definition":			"bash",
 | 
			
		||||
		"force_pty":				true,
 | 
			
		||||
| 
						 | 
				
			
			@ -91,8 +91,8 @@
 | 
			
		|||
        "environment":  			"environments/stage1.env.bash"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "name":         			"linux api headers",
 | 
			
		||||
        "target":       			"components/linux.bash --pass1",
 | 
			
		||||
        "name":         			"linux api headers pass 1",
 | 
			
		||||
        "target":       			"components/stage1/linux.bash --pass1",
 | 
			
		||||
		"is_shell_command":			true,
 | 
			
		||||
		"shell_definition":			"bash",
 | 
			
		||||
		"force_pty":				true,
 | 
			
		||||
| 
						 | 
				
			
			@ -109,8 +109,26 @@
 | 
			
		|||
        "environment":  			"environments/stage1.env.bash"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "name":         			"glibc",
 | 
			
		||||
        "target":       			"components/glibc.bash --pass1",
 | 
			
		||||
        "name":         			"glibc pass 1",
 | 
			
		||||
        "target":       			"components/stage1/glibc.bash --pass1",
 | 
			
		||||
		"is_shell_command":			true,
 | 
			
		||||
		"shell_definition":			"bash",
 | 
			
		||||
		"force_pty":				true,
 | 
			
		||||
		"set_working_directory":	false,
 | 
			
		||||
		"working_directory":		"",
 | 
			
		||||
        "rectify":      			false,
 | 
			
		||||
        "rectifier":    			"",
 | 
			
		||||
        "active":       			true,
 | 
			
		||||
        "required":     			true,
 | 
			
		||||
		"set_user_context": 		true,
 | 
			
		||||
        "user":         			"phanes",
 | 
			
		||||
        "group":        			"phanes",
 | 
			
		||||
		"supply_environment":		true,
 | 
			
		||||
        "environment":  			"environments/stage1.env.bash"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "name":         			"libstdc++ pass 1",
 | 
			
		||||
        "target":       			"components/stage1/gcc.bash --libstdcxx_pass1",
 | 
			
		||||
		"is_shell_command":			true,
 | 
			
		||||
		"shell_definition":			"bash",
 | 
			
		||||
		"force_pty":				true,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,58 @@
 | 
			
		|||
{
 | 
			
		||||
  "units": [
 | 
			
		||||
    {
 | 
			
		||||
        "name":         			"welcome",
 | 
			
		||||
        "target":       			"components/stage2/welcome.bash",
 | 
			
		||||
		"is_shell_command":			true,
 | 
			
		||||
		"shell_definition":			"bash",
 | 
			
		||||
		"force_pty":				true,
 | 
			
		||||
		"set_working_directory":	false,
 | 
			
		||||
		"working_directory":		"",
 | 
			
		||||
        "rectify":      			false,
 | 
			
		||||
        "rectifier":    			"",
 | 
			
		||||
        "active":       			true,
 | 
			
		||||
        "required":     			true,
 | 
			
		||||
		"set_user_context": 		true,
 | 
			
		||||
        "user":         			"phanes",
 | 
			
		||||
        "group":        			"phanes",
 | 
			
		||||
		"supply_environment":		true,
 | 
			
		||||
        "environment":  			"environments/stage2.env.bash"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "name":         			"m4 pass 1",
 | 
			
		||||
        "target":       			"components/stage2/m4.bash --all_temp",
 | 
			
		||||
		"is_shell_command":			true,
 | 
			
		||||
		"shell_definition":			"bash",
 | 
			
		||||
		"force_pty":				true,
 | 
			
		||||
		"set_working_directory":	false,
 | 
			
		||||
		"working_directory":		"",
 | 
			
		||||
        "rectify":      			false,
 | 
			
		||||
        "rectifier":    			"",
 | 
			
		||||
        "active":       			true,
 | 
			
		||||
        "required":     			true,
 | 
			
		||||
		"set_user_context": 		true,
 | 
			
		||||
        "user":         			"phanes",
 | 
			
		||||
        "group":        			"phanes",
 | 
			
		||||
		"supply_environment":		true,
 | 
			
		||||
        "environment":  			"environments/stage2.env.bash"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "name":         			"ncurses pass 1",
 | 
			
		||||
        "target":       			"components/stage2/ncurses.bash --all_temp",
 | 
			
		||||
		"is_shell_command":			true,
 | 
			
		||||
		"shell_definition":			"bash",
 | 
			
		||||
		"force_pty":				true,
 | 
			
		||||
		"set_working_directory":	false,
 | 
			
		||||
		"working_directory":		"",
 | 
			
		||||
        "rectify":      			false,
 | 
			
		||||
        "rectifier":    			"",
 | 
			
		||||
        "active":       			true,
 | 
			
		||||
        "required":     			true,
 | 
			
		||||
		"set_user_context": 		true,
 | 
			
		||||
        "user":         			"phanes",
 | 
			
		||||
        "group":        			"phanes",
 | 
			
		||||
		"supply_environment":		true,
 | 
			
		||||
        "environment":  			"environments/stage2.env.bash"
 | 
			
		||||
    }
 | 
			
		||||
 ]
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue