FreeCalypso > hg > fc-selenite
changeset 93:26237514cae7
configure-gcc.sh: created
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 21 Jul 2018 00:32:56 +0000 |
parents | e42d528f3e6e |
children | e5cbc745543b |
files | configure-gcc.sh |
diffstat | 1 files changed, 281 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/configure-gcc.sh Sat Jul 21 00:32:56 2018 +0000 @@ -0,0 +1,281 @@ +#!/bin/sh + +set -e + +if [ ! -f configure-gcc.sh ] +then + echo "This script needs to be run from the top of the source tree" 1>&2 + exit 1 +fi + +if [ ! -f helpers/makeline ] +then + echo "Please run make in the helpers directory first" 1>&2 + exit 1 +fi + +# start looking at our invokation line + +if [ "$1" = --clean ] +then + clean_flag=1 + shift +else + clean_flag=0 +fi + +if [ $# -lt 1 ] +then + echo "usage: $0 [--clean] target [vars]" 1>&2 + exit 1 +fi + +TARGET="$1" + +if [ ! -f "targets/$TARGET.conf" -o ! -f "targets/$TARGET.h" ] +then + echo "Error: target $TARGET not known" 1>&2 + exit 1 +fi + +if [ ! -f "targets/$TARGET.m4" ] +then + echo "Error: target $TARGET is not supported with gcc" 1>&2 +fi + +# target defaults that can be overridden by $TARGET.conf + +CHIPSET=10 +DSP=36 +RF=12 +DISABLE_SLEEP=0 + +. "targets/$TARGET.conf" + +BUILD_DIR="build-$TARGET-gcc" + +# settings derived from the target-defined DSP version + +case "$DSP" in + 33) + AMR=0 + L1_DYN_DSP_DWNLD=0 + L1_VOICE_MEMO_AMR=0 + MELODY_E2=0 + SPEECH_RECO=0 + ;; + 34) + AMR=1 + L1_DYN_DSP_DWNLD=0 + L1_VOICE_MEMO_AMR=0 + MELODY_E2=0 + SPEECH_RECO=0 + ;; + 36) + AMR=1 + L1_DYN_DSP_DWNLD=1 + L1_VOICE_MEMO_AMR=1 + MELODY_E2=1 + SPEECH_RECO=1 + ;; + *) + echo "Error: DSP=$DSP setting not understood" 1>&2 + exit 1 +esac + +# miscellaneous configurable feature settings + +ALLOW_CSIM_GSM=1 +SERIAL_DYNAMIC_SWITCH=0 +TR_BAUD_CONFIG=TR_BAUD_115200 + +# allow the user to override these defaults + +shift +while [ $# != 0 ] +do + eval "$1" + shift +done + +echo "Building firmware for target $TARGET in $BUILD_DIR" + +if [ "$clean_flag" = 1 ] +then + rm -rf $BUILD_DIR +fi +mkdir -p $BUILD_DIR + +# shell functions to be used in the configuration recipe + +build_lib() { + if [ $# != 1 ] + then + echo "Error: build_lib takes 1 argument" 1>&2 + exit 1 + fi + scripts/mk-component-gcc.sh "$1" + SUBDIR="$SUBDIR $1" + LIBS="$LIBS $1/$1.a" +} + +# invoke the configuration recipe + +export BUILD_DIR TARGET +export CHIPSET DSP RF +export AMR L1_DYN_DSP_DWNLD L1_VOICE_MEMO_AMR MELODY_E2 SPEECH_RECO +export DISABLE_SLEEP +export ALLOW_CSIM_GSM SERIAL_DYNAMIC_SWITCH TR_BAUD_CONFIG +export GPRS SRVC FCHG_STATE + +scripts/config-headers.sh + +SUBDIR= +LIBS= + +build_lib ccddata + +# ACI libs +build_lib aci +build_lib aciext +build_lib aci_dti_mng +build_lib atiext +build_lib comlib + +if [ "$GPRS" = 1 ] +then + build_lib config_gprs_fl + build_lib config_gprs_ir +else + build_lib config_gsm_fl + build_lib config_gsm_ir +fi + +# G23M protocol stack libs +build_lib alr +build_lib cc +build_lib dl +build_lib dti +build_lib l1_pei +build_lib mm +build_lib rr +build_lib sim_b_lib +build_lib sms +build_lib ss +build_lib uart_b_lib + +# fax and data +if [ "$SRVC" != 0 ] +then + build_lib l2r + build_lib ra + build_lib rlp +fi + +# fax specific +if [ "$SRVC" = 1 ] +then + build_lib fad + build_lib t30 +fi + +# GPRS specific +if [ "$GPRS" = 1 ] +then + build_lib cci + build_lib cci_ir + build_lib cl + build_lib gmm + build_lib grlc + build_lib grlc_ir + build_lib grr + build_lib llc + build_lib sm + build_lib sndcp + build_lib ppp + build_lib ppp_ir + build_lib upm +fi + +# Condat drivers +build_lib gdi + +# GPF +build_lib ccd_na7_db +build_lib frame_na7_db_fl +build_lib frame_na7_db_ir +build_lib misc_na7_db_fl +build_lib misc_na7_db_ir +build_lib osx_na7_db +build_lib tif_na7_db_fl +build_lib tif_na7_db_ir + +# core drivers +build_lib drivers_flash + +# Layer 1 +build_lib tpudrv +build_lib l1_ext +build_lib l1_int +build_lib l1_custom_ext +build_lib l1_custom_int + +build_lib riviera_core_flash +build_lib riviera_cust_flash + +# services +build_lib audio +build_lib audio_bgd +build_lib cst +build_lib dar +build_lib dar_gbl_var +build_lib etm +build_lib lls + +# app drivers +build_lib abb +build_lib buzzer +if [ "$FCHG_STATE" = 1 ] +then + build_lib fchg +fi +build_lib ffs +build_lib ffs_drv +build_lib ffs_pcm +build_lib kpd +build_lib power +build_lib rtc_drv +build_lib sim_drv +build_lib spi_drv +build_lib uart_drv + +# system glue +build_lib main +build_lib main_ir + +# Nucleus +build_lib nucleus_flash +build_lib nucleus_intram + +# selective libc replacement +build_lib libsys_fl +build_lib libsys_ir + +# generate the top level Makefile! + +helpers/makeline def TARGET $TARGET > $BUILD_DIR/Makefile +echo >> $BUILD_DIR/Makefile +helpers/makeline def SUBDIR $SUBDIR >> $BUILD_DIR/Makefile +echo >> $BUILD_DIR/Makefile +helpers/makeline def LIBS $LIBS >> $BUILD_DIR/Makefile +echo >> $BUILD_DIR/Makefile + +helpers/makeline def FLASH_BASE_ADDR $FLASH_BASE_ADDR >> $BUILD_DIR/Makefile +helpers/makeline def FLASH_SECTOR_SIZE $FLASH_SECTOR_SIZE >> $BUILD_DIR/Makefile +echo >> $BUILD_DIR/Makefile + +cat gcc/makefile-body >> $BUILD_DIR/Makefile + +# All done! + +echo "Run make in $BUILD_DIR to compile the firmware"