FreeCalypso > hg > fc-selenite
view configure-gcc.sh @ 134:7d50d8d13711
FFS code sync with Magnetite + gcc version fix
This change brings the new flash autodetection for FC and Pirelli targets
from Magnetite, and should also fix the gcc version for C1xx and gtamodem
targets, which were previously broken because they used TI's original
flash autodetect code (which operates at address 0) while the boot ROM
is mapped there.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 11 Dec 2018 08:43:25 +0000 |
parents | 1f43655bb3e4 |
children |
line wrap: on
line source
#!/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" # 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 MEMSUPER=0 SERIAL_DYNAMIC_SWITCH=0 TRACEMASK_IN_FFS=0 TR_BAUD_CONFIG=TR_BAUD_115200 SUFFIX= # allow the user to override these defaults shift while [ $# != 0 ] do eval "$1" shift done # validate key settings and build configuration name case "$SRVC" in 0) CONFIG_NAME=vo ;; 1) CONFIG_NAME=fd ;; 2) CONFIG_NAME=da ;; *) echo "Error: SRVC=$SRVC setting is invalid" 1>&2 exit 1 esac case "$GPRS" in 0) ;; 1) CONFIG_NAME=gprs ;; *) echo "Error: GPRS=$GPRS setting is invalid" 1>&2 exit 1 esac case "$FCHG_STATE" in 0) ;; 1) CONFIG_NAME="$CONFIG_NAME-chg" ;; *) echo "Error: FCHG_STATE=$FCHG_STATE setting is invalid" 1>&2 exit 1 esac CONFIG_NAME="$CONFIG_NAME$SUFFIX-gcc" BUILD_DIR="build-$TARGET-$CONFIG_NAME" 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 MEMSUPER TRACEMASK_IN_FFS export RVTMUX_ON_MODEM 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 CONFIG_NAME $CONFIG_NAME > $BUILD_DIR/Makefile echo >> $BUILD_DIR/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"