--- configure.ac 2013-01-23 18:51:11.000000000 +0530 +++ configure.ac 2013-01-23 18:43:51.000000000 +0530 @@ -1257,6 +1257,18 @@ AC_CONFIG_FILES([ avr/lib/avr2/at86rf401/Makefile ]) +#avr2/tiny-stack +AC_CONFIG_FILES([ + avr/lib/avr2/tiny-stack/Makefile + avr/lib/avr2/tiny-stack/at90s2313/Makefile + avr/lib/avr2/tiny-stack/at90s2323/Makefile + avr/lib/avr2/tiny-stack/at90s2333/Makefile + avr/lib/avr2/tiny-stack/at90s2343/Makefile + avr/lib/avr2/tiny-stack/at90s4433/Makefile + avr/lib/avr2/tiny-stack/attiny22/Makefile + avr/lib/avr2/tiny-stack/attiny26/Makefile +]) + #avr25 AC_CONFIG_FILES([ avr/lib/avr25/Makefile @@ -1289,6 +1301,20 @@ AC_CONFIG_FILES([ avr/lib/avr25/attiny88/Makefile ]) +#avr25/tiny-stack +AC_CONFIG_FILES([ + avr/lib/avr25/tiny-stack/Makefile + avr/lib/avr25/tiny-stack/attiny13/Makefile + avr/lib/avr25/tiny-stack/attiny13a/Makefile + avr/lib/avr25/tiny-stack/attiny2313/Makefile + avr/lib/avr25/tiny-stack/attiny2313a/Makefile + avr/lib/avr25/tiny-stack/attiny24/Makefile + avr/lib/avr25/tiny-stack/attiny24a/Makefile + avr/lib/avr25/tiny-stack/attiny25/Makefile + avr/lib/avr25/tiny-stack/attiny261/Makefile + avr/lib/avr25/tiny-stack/attiny261a/Makefile +]) + #avr3 AC_CONFIG_FILES([ avr/lib/avr3/Makefile --- devtools/gen-avr-lib-tree.sh 2013-01-23 19:14:33.000000000 +0530 +++ devtools/gen-avr-lib-tree.sh 2013-01-23 19:14:47.000000000 +0530 @@ -44,6 +44,7 @@ # Define the special flags for special sub-targets. CFLAGS_SPACE="-mcall-prologues -Os" +CFLAGS_TINY_STACK="-mtiny-stack -mcall-prologues -Os" CFLAGS_BIG_MEMORY='-Os $(FNO_JUMP_TABLES)' CFLAGS_SPEED="-Os" @@ -81,6 +82,17 @@ attiny461:crttn461.o:${DEV_DEFS}:${CFLAG attiny861:crttn861.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS}\ " + +AVR12TS_DEV_INFO="\ +at90s2313:crts2313.o:${DEV_DEFS}:${CFLAGS_TINY_STACK}:${DEV_ASFLAGS};\ +at90s2323:crts2323.o:${DEV_DEFS}:${CFLAGS_TINY_STACK}:${DEV_ASFLAGS};\ +at90s2333:crts2333.o:${DEV_DEFS}:${CFLAGS_TINY_STACK}:${DEV_ASFLAGS};\ +at90s2343:crts2343.o:${DEV_DEFS}:${CFLAGS_TINY_STACK}:${DEV_ASFLAGS};\ +at90s4433:crts4433.o:${DEV_DEFS}:${CFLAGS_TINY_STACK}:${DEV_ASFLAGS};\ +attiny22:crttn22.o:${DEV_DEFS}:${CFLAGS_TINY_STACK}:${DEV_ASFLAGS};\ +attiny26:crttn26.o:${DEV_DEFS}:${CFLAGS_TINY_STACK}:${DEV_ASFLAGS}\ +" + AVR25_DEV_INFO="\ at86rf401:crt86401.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\ ata5272:crta5272.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\ @@ -110,6 +122,18 @@ attiny861a:crttn861a.o:${DEV_DEFS}:${CFL attiny87:crttn87.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\ attiny88:crttn88.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS}\ " +AVR25TS_DEV_INFO="\ +attiny13:crttn13.o:${DEV_DEFS}:${CFLAGS_TINY_STACK}:${DEV_ASFLAGS};\ +attiny13a:crttn13a.o:${DEV_DEFS}:${CFLAGS_TINY_STACK}:${DEV_ASFLAGS};\ +attiny2313:crttn2313.o:${DEV_DEFS}:${CFLAGS_TINY_STACK}:${DEV_ASFLAGS};\ +attiny2313a:crttn2313a.o:${DEV_DEFS}:${CFLAGS_TINY_STACK}:${DEV_ASFLAGS};\ +attiny24:crttn24.o:${DEV_DEFS}:${CFLAGS_TINY_STACK}:${DEV_ASFLAGS};\ +attiny24a:crttn24a.o:${DEV_DEFS}:${CFLAGS_TINY_STACK}:${DEV_ASFLAGS};\ +attiny25:crttn25.o:${DEV_DEFS}:${CFLAGS_TINY_STACK}:${DEV_ASFLAGS};\ +attiny261:crttn261.o:${DEV_DEFS}:${CFLAGS_TINY_STACK}:${DEV_ASFLAGS};\ +attiny261a:crttn261a.o:${DEV_DEFS}:${CFLAGS_TINY_STACK}:${DEV_ASFLAGS}\ +" + AVR3_DEV_INFO="\ atmega103:crtm103.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\ @@ -364,22 +388,24 @@ attiny40:crttn40.o:${DEV_DEFS}:${CFLAGS_ LIB_DEFS="-D__COMPILING_AVR_LIBC__" AVR_ARH_INFO="\ -avr2:AVR12_DEV_INFO:${LIB_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\ -avr25:AVR25_DEV_INFO:${LIB_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\ -avr3:AVR3_DEV_INFO:${LIB_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\ -avr31:AVR31_DEV_INFO:${LIB_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\ -avr35:AVR35_DEV_INFO:${LIB_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\ -avr4:AVR4_DEV_INFO:${LIB_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\ -avr5:AVR5_DEV_INFO:${LIB_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\ -avr51:AVR51_DEV_INFO:${LIB_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\ -avr6:AVR6_DEV_INFO:${LIB_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\ -avr7:AVR7_DEV_INFO:${LIB_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\ -avrxmega2:AVRXMEGA2_DEV_INFO:${LIB_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\ -avrxmega4:AVRXMEGA4_DEV_INFO:${LIB_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\ -avrxmega5:AVRXMEGA5_DEV_INFO:${LIB_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\ -avrxmega6:AVRXMEGA6_DEV_INFO:${LIB_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\ -avrxmega7:AVRXMEGA7_DEV_INFO:${LIB_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\ -avrtiny:AVRTINY_DEV_INFO:${LIB_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS}\ +avr2::AVR12_DEV_INFO:${LIB_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\ +avr2:tiny-stack:AVR12TS_DEV_INFO:${LIB_DEFS}:${CFLAGS_TINY_STACK}:${DEV_ASFLAGS};\ +avr25::AVR25_DEV_INFO:${LIB_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\ +avr25:tiny-stack:AVR25TS_DEV_INFO:${LIB_DEFS}:${CFLAGS_TINY_STACK}:${DEV_ASFLAGS};\ +avr3::AVR3_DEV_INFO:${LIB_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\ +avr31::AVR31_DEV_INFO:${LIB_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\ +avr35::AVR35_DEV_INFO:${LIB_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\ +avr4::AVR4_DEV_INFO:${LIB_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\ +avr5::AVR5_DEV_INFO:${LIB_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\ +avr51::AVR51_DEV_INFO:${LIB_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\ +avr6::AVR6_DEV_INFO:${LIB_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\ +avr7::AVR7_DEV_INFO:${LIB_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\ +avrxmega2::AVRXMEGA2_DEV_INFO:${LIB_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\ +avrxmega4::AVRXMEGA4_DEV_INFO:${LIB_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\ +avrxmega5::AVRXMEGA5_DEV_INFO:${LIB_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\ +avrxmega6::AVRXMEGA6_DEV_INFO:${LIB_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\ +avrxmega7::AVRXMEGA7_DEV_INFO:${LIB_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\ +avrtiny::AVRTINY_DEV_INFO:${LIB_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS}\ " echo "Generating source directories:" @@ -414,21 +440,38 @@ ARH_SUBDIRS="" for ath_lib in $AVR_ARH_INFO do arh=$(echo $ath_lib | cut -d ':' -f 1) - dev_info=$(echo $ath_lib | cut -d ':' -f 2) - lib_defs=$(echo $ath_lib | cut -d ':' -f 3) - lib_cflags=$(echo $ath_lib | cut -d ':' -f 4) - lib_asflags=$(echo $ath_lib | cut -d ':' -f 5) + sublib=$(echo $ath_lib | cut -d ':' -f 2) + dev_info=$(echo $ath_lib | cut -d ':' -f 3) + lib_defs=$(echo $ath_lib | cut -d ':' -f 4) + lib_cflags=$(echo $ath_lib | cut -d ':' -f 5) + lib_asflags=$(echo $ath_lib | cut -d ':' -f 6) install_dir=$arh if [ $arh = avr2 ] then - install_dir="" + if [ -z "$sublib" ] ; then + install_dir="" + else + install_dir=$sublib + fi + else + if [ -z "$sublib" ] ; then + install_dir=$arh + else + install_dir=$arh'/'$sublib + fi fi - echo " avr/lib/$arh/" + # Install directory for sed substitution, the '/' character is masked. + inst_dir_masked=`echo $install_dir | sed 's/\\//\\\\\\//'` - test -d $arh || mkdir $arh - cd $arh || exit 1 + # In build tree. + subdir=${arh}${sublib:+/}${sublib} + echo " avr/lib/$subdir/" + + # The first record of each arch must be sublib-free. + test -d $subdir || mkdir $subdir + cd $subdir || exit 1 DEV_SUBDIRS="" @@ -442,7 +485,7 @@ do crt_cflags=$(echo $dev_crt | cut -d ':' -f 4) crt_asflags=$(echo $dev_crt | cut -d ':' -f 5) - echo " avr/lib/$arh/$dev" + echo " avr/lib/$subdir/$dev" test -d $dev || mkdir $dev @@ -453,7 +496,7 @@ do -e "s/<>/$crt_defs/g" \ -e "s/<>/$crt_cflags/g" \ -e "s/<>/$crt_asflags/g" \ - -e "s/<>/$install_dir/g" $dev/Makefile.am \ + -e "s/<>/$inst_dir_masked/g" $dev/Makefile.am \ > $dev/tempfile && mv -f $dev/tempfile $dev/Makefile.am DEV_SUBDIRS="$DEV_SUBDIRS $dev" @@ -466,7 +509,7 @@ do -e "s/<>/$lib_defs/g" \ -e "s/<>/$lib_cflags/g" \ -e "s/<>/$lib_asflags/g" \ - -e "s/<>/$install_dir/g" Makefile.am \ + -e "s/<>/$inst_dir_masked/g" Makefile.am \ > tempfile && mv -f tempfile Makefile.am # Find the first and the last lines of <> block. @@ -488,19 +531,22 @@ do # After the <> block. tail -n +$(($n2 + 1)) Makefile.am >> tempfile - + # Result. mv -f tempfile Makefile.am - ARH_SUBDIRS="$ARH_SUBDIRS $arh" + ARH_SUBDIRS="$ARH_SUBDIRS $subdir" - cd .. + cd .. || exit 1 + if [ -n "$sublib" ] ; then + cd .. || exit 1 + fi done cat $top_dir/devtools/Lib.am > Makefile.am -sed -e "s/<>/$ARH_SUBDIRS/g" Makefile.am \ - > tempfile && mv -f tempfile Makefile.am +sed -e "s/<>/`echo $ARH_SUBDIRS | sed 's/\\//\\\\\\//g'`/g" \ + Makefile.am > tempfile && mv -f tempfile Makefile.am cd ..