You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							100 lines
						
					
					
						
							2.0 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							100 lines
						
					
					
						
							2.0 KiB
						
					
					
				
								#!/bin/sh
							 | 
						|
								# Tool to build tools to build the temporary system
							 | 
						|
								set -e
							 | 
						|
								umask 022
							 | 
						|
								
							 | 
						|
								download_only=false
							 | 
						|
								if [ "$1" = "download" ]; then
							 | 
						|
								    download_only=true
							 | 
						|
								fi
							 | 
						|
								
							 | 
						|
								command -v astronaut >/dev/null 2>&1 || {
							 | 
						|
								    echo 'Can'\''t find astronaut in $PATH' 1>&2
							 | 
						|
								    exit 1
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								if [ "$download_only" = false ]; then
							 | 
						|
								    if [ ! "$rocket" ]; then
							 | 
						|
								        echo 'Please set the $rocket variable' 1>&2
							 | 
						|
								        exit 1
							 | 
						|
								    fi
							 | 
						|
								
							 | 
						|
								    if [ "$(readlink /tools)" != "$(realpath "$rocket")/tools" ]; then
							 | 
						|
								        echo "Please create a symlink from /tools to $(realpath "$rocket")/tools" 1>&2
							 | 
						|
								        exit 1
							 | 
						|
								    fi
							 | 
						|
								fi
							 | 
						|
								
							 | 
						|
								# Options for supported shells
							 | 
						|
								if [ "$(basename "$(readlink /bin/sh)")" = "bash" ]; then
							 | 
						|
								    shellopts="+h"
							 | 
						|
								fi
							 | 
						|
								
							 | 
						|
								# Know where them satellites are
							 | 
						|
								satellite_dir="$(dirname "$(realpath "$0")")/satellites"
							 | 
						|
								
							 | 
						|
								envrun() {
							 | 
						|
								    if [ "$download_only" = true ]; then
							 | 
						|
								        $@
							 | 
						|
								        return
							 | 
						|
								    fi
							 | 
						|
								
							 | 
						|
								    env -i \
							 | 
						|
								        HOME="$HOME" \
							 | 
						|
								        TERM="$TERM" \
							 | 
						|
								        LC_ALL=C \
							 | 
						|
								        PATH="/tools/bin:$PATH" \
							 | 
						|
								        MAKEFLAGS="$MAKEFLAGS" \
							 | 
						|
								        rocket="$rocket" \
							 | 
						|
								        target="$(uname -m)-rocket-linux-gnu" \
							 | 
						|
								        /bin/sh "$shellopts" "$@"
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								astrobuild() {
							 | 
						|
								    if [ "$download_only" = true ]; then
							 | 
						|
								        envrun astronaut -d "$satellite_dir/$1.sat"
							 | 
						|
								    else
							 | 
						|
								        envrun astronaut -i "$rocket" "$satellite_dir/$1.sat"
							 | 
						|
								    fi
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								# Needed for x86_64
							 | 
						|
								if [ "$download_only" = false ]; then
							 | 
						|
								    mkdir -p "$rocket/tools/lib"
							 | 
						|
								    ln -sf lib "$rocket/tools/lib64"
							 | 
						|
								fi
							 | 
						|
								
							 | 
						|
								# Just enter the environment
							 | 
						|
								#envrun
							 | 
						|
								
							 | 
						|
								# List of packages to build
							 | 
						|
								
							 | 
						|
								# Toolchain
							 | 
						|
								astrobuild "binutils-1"
							 | 
						|
								astrobuild "gcc-1"
							 | 
						|
								astrobuild "linux-api"
							 | 
						|
								astrobuild "glibc"
							 | 
						|
								astrobuild "libstdcxx"
							 | 
						|
								astrobuild "binutils-2"
							 | 
						|
								astrobuild "gcc-2"
							 | 
						|
								
							 | 
						|
								# Utilities
							 | 
						|
								astrobuild "busybox"
							 | 
						|
								astrobuild "bash"
							 | 
						|
								astrobuild "gawk"
							 | 
						|
								astrobuild "make"
							 | 
						|
								astrobuild "m4"
							 | 
						|
								
							 | 
						|
								# Testing
							 | 
						|
								astrobuild "tcl-core"
							 | 
						|
								astrobuild "expect"
							 | 
						|
								astrobuild "dejagnu"
							 | 
						|
								astrobuild "check"
							 | 
						|
								
							 | 
						|
								# Package management
							 | 
						|
								astrobuild "perl"
							 | 
						|
								astrobuild "stow"
							 | 
						|
								astrobuild "openssl"
							 | 
						|
								astrobuild "ca-certificates"
							 | 
						|
								astrobuild "curl"
							 | 
						|
								astrobuild "astronaut"
							 | 
						|
								
							 |