summaryrefslogtreecommitdiff
path: root/setup/build-env.sh
diff options
context:
space:
mode:
Diffstat (limited to 'setup/build-env.sh')
-rwxr-xr-xsetup/build-env.sh191
1 files changed, 191 insertions, 0 deletions
diff --git a/setup/build-env.sh b/setup/build-env.sh
new file mode 100755
index 0000000..50d8446
--- /dev/null
+++ b/setup/build-env.sh
@@ -0,0 +1,191 @@
+#!/bin/sh
+
+# Familiar Build Setup Script
+#
+# Copyright (C) 2006 Rene Wagner <rw@handhelds.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+
+BASE_TITLE="Familiar Build Setup:"
+FAMILIAR_RELEASE="0.8.4"
+
+fatal() {
+ echo "Fatal: $1"
+ exit 1
+}
+
+error() {
+ zenity --error --text="$1"
+}
+
+abort() {
+ zenity --info --text="Setup aborted."
+ exit 1
+}
+
+which zenity > /dev/null || fatal "You must have zenity installed."
+
+BASE_DIR=${PWD}
+while [ ! -d ${BASE_DIR}/org.handhelds.familiar ]; do
+ BASE_DIR=`zenity --file-selection --directory --filename=${BASE_DIR} --title="${BASE_TITLE} Select Build Tree Base Directory"`
+ case $? in
+ 0)
+ if [ ! -d ${BASE_DIR}/org.handhelds.familiar ]; then
+ error "Does not look like a Familiar build tree: ${BASE_DIR}"
+ fi
+ ;;
+ 1)
+ abort;;
+ -1)
+ abort;;
+ esac
+done
+
+DL_DIR="${BASE_DIR}/downloads"
+DL_DIR=`zenity --entry \
+ --title="${BASE_TITLE} Downloads Directory" \
+ --text="Where do you want downloaded files to be stored?" \
+ --entry-text="${DL_DIR}"`
+case $? in
+ 1)
+ abort;;
+ -1)
+ abort;;
+esac
+
+while [ -z "$MACHINE" ]; do
+MACHINE=`zenity --list \
+ --height=280 \
+ --title="${BASE_TITLE} Target Machine" \
+ --text="Select a target machine type from the list below:" \
+ --column="Name" --column="Description" \
+ "h3600" "HP iPAQ h36xx/h37xx/h38xx Series" \
+ "h3900" "HP iPAQ h39xx/h51xx/h54xx/h55xx Series" \
+ "h2200" "HP iPAQ h22xx Series" \
+ "ipaq-pxa270" "HP iPAQ hx4700 Series" \
+ "h6300" "HP iPAQ h63xx Series"`
+case $? in
+ 0)
+ if [ -z "$MACHINE" ]; then
+ error "Please select a target machine."
+ fi
+ ;;
+ 1)
+ abort;;
+ -1)
+ abort;;
+esac
+done
+
+while [ -z "$GRAPHICAL_ENV" ]; do
+GRAPHICAL_ENV=`zenity --list \
+ --height=280 \
+ --title="${BASE_TITLE} Primary Graphical Environment" \
+ --text="Select the graphical environment you want to build for from the list below:" \
+ --column="Name" --column="Description" \
+ "gpe" "The GPE Palmtop Environment. X11 based." \
+ "opie" "The Open Palmtop Integrated Environment. Qt/Embedded based." \
+ "any" "No preference. This may break certain things."`
+case $? in
+ 0)
+ if [ -z "$GRAPHICAL_ENV" ]; then
+ error "Please select a graphical environment."
+ fi
+ ;;
+ 1)
+ abort;;
+ -1)
+ abort;;
+esac
+done
+
+BUILD_DIR="${BASE_DIR}/build-${MACHINE}-${GRAPHICAL_ENV}"
+while true; do
+ BUILD_DIR=`zenity --entry \
+ --title="${BASE_TITLE} Build Directory" \
+ --text="A build directory will be created for the configuration you selected at the following location:" \
+ --entry-text="${BUILD_DIR}"`
+ case $? in
+ 1)
+ abort;;
+ -1)
+ abort;;
+ esac
+ if [ -z ${BUILD_DIR} ]; then
+ error "Please specify a build directory."
+ continue
+ fi
+ if [ -d ${BUILD_DIR} ]; then
+ error "${BUILD_DIR} exists."
+ continue
+ fi
+
+ break
+done
+
+mkdir -p ${BUILD_DIR}/conf
+CONFFILE="${BUILD_DIR}/conf/auto.conf"
+cat > ${CONFFILE} <<EOF
+# Auto-generated Familiar Build Configuration
+
+DISTRO="familiar-${FAMILIAR_RELEASE}"
+
+# where to store downloaded files
+DL_DIR = "${DL_DIR}"
+
+# list of .bb files as a shell glob
+BBFILES = "${BASE_DIR}/org.handhelds.familiar/packages/*/*bb"
+
+# top level build directory for this configuration
+TOPDIR = "${BUILD_DIR}"
+
+# target MACHINE
+MACHINE = "${MACHINE}"
+
+EOF
+
+if [ "${GRAPHICAL_ENV}" == "gpe" ]; then
+cat >> ${CONFFILE} <<EOF
+# X11 specific settings
+PREFERRED_PROVIDERS += " virtual/libsdl:libsdl-x11"
+
+EOF
+elif [ "${GRAPHICAL_ENV}" == "opie" ]; then
+cat >> ${CONFFILE} <<EOF
+# Opie specific settings
+PREFERRED_PROVIDERS += " virtual/libsdl:libsdl-qpe"
+
+EOF
+fi
+
+ENVSCRIPT="${BUILD_DIR}/conf/env.sh"
+cat > ${ENVSCRIPT} <<EOF
+PATH="${BASE_DIR}/bitbake/bin:${PATH}"
+BBPATH="${BUILD_DIR}:${BASE_DIR}/org.handhelds.familiar"
+EOF
+
+zenity --info \
+ --title="${BASE_TITLE} Setup Complete" \
+ --text="Your configuration was written to ${CONFFILE}. It will be displayed after this dialog. Please verify that all settings are correct. To re-start the setup please delete the build directory and re-run the setup tool."
+
+zenity --text-info \
+ --width=600 --height=400 \
+ --title="${BASE_TITLE} Configuration Written to ${CONFFILE}" \
+ --filename="${CONFFILE}"
+
+zenity --info \
+ --title="${BASE_TITLE} Running a Build" \
+ --text="Please run the following command before attempting to run a build: \"$ source ${ENVSCRIPT}\". It will configure the environment so you can run bitbake."