From 4b5afd7eab8304c8e0e2f09e2dd1f5006b9e71b0 Mon Sep 17 00:00:00 2001 From: Rene Wagner Date: Fri, 30 Jun 2006 01:54:51 +0200 Subject: Add a setup utility. Also move some more configuration bits around. Signed-off-by: Rene Wagner --- setup/build-env.sh | 191 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 191 insertions(+) create mode 100755 setup/build-env.sh (limited to 'setup') 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 +# +# 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} <> ${CONFFILE} <> ${CONFFILE} < ${ENVSCRIPT} <