view sources/more/native-build.sh @ 972:cfa6262528f3

Genericize native build. Break out dropbear and strace packages from download.sh (and clean up what remains, mirror list is now in include.sh). New script setup-native.build.sh downloads, extracts, and creates a system image with "here document" build script to build dropbear and strace. New native-build.sh script works on arbitrary hdc image, providing FTP upload to a directory. The setup/fork logic to build all architectures is now in buildall.sh for this, just like everything else. Update buildall.sh to take optional list of architectures to build on command line. Factor out unique-port.sh (in embeddable manner) so distcc (in run-emulator.sh) and ftp server (in native-build.sh) can both use it. Upgrade to new busybox version while we're there. HGi removed sources/more/setup-native-static-build.sh
author Rob Landley <rob@landley.net>
date Fri, 05 Feb 2010 10:33:06 -0600
parents
children 6d3db5bf731a
line wrap: on
line source

#!/bin/bash

# setup hdc.sqf
# find build -name "hdb.img" | xargs rm

# Launch a system image under the emulator under the control of a filesystem
# image, with an FTP server to upload results to.

. sources/functions.sh || exit 1

# Parse arguments

if [ $# -ne 3 ]
then
  echo "usage: $0 ARCH HDCFILE OUTPUTDIR" >&2
  exit 1
fi

ARCH="$1"
if [ ! -f "$2" ]
then
  echo "Filesystem image $2 missing" >&2
  exit 1
fi
HDCFILE="$(readlink -f $2)"
mkdir -p "$3" || dienow
STAGE_DIR="$(readlink -f $3)"

# Fire off the ftp daemon, making sure it's killed when this script exits

. sources/toys/unique-port.sh || exit 1
PORT=$(unique_port)
build/host/netcat -s 127.0.0.1 -p $PORT -L build/host/ftpd -w "$STAGE_DIR" &
trap "kill $(jobs -p)" EXIT
disown $(jobs -p)

# Run emulator as a child process, feeding in -hdc and some extra environment
# variables so it auto-launches the build process.

echo === Begin native build for $ARCH

rm -f sources/system-image-"$ARCH"/hdb.img
HDC="$HDCFILE" KERNEL_EXTRA="OUTPORT=$PORT ARCH=$ARCH" \
  sources/timeout.sh 60 ./run-from-build.sh "$ARCH"

echo === End native build for $ARCH