| #! /bin/bash |
| |
| # Call using: |
| #../microblaze/sysroots/x86_64-oesdk-linux/usr/bin/microblaze-xilinx-elf/microblaze-xilinx-elf-gcc -print-multi-lib | mb-convert.sh |
| |
| # Then copy the output into the special microblaze-tc BSP |
| |
| mlib_to_feature() { |
| feature_base="microblaze" |
| feature_endian=" bigendian" |
| feature_barrel="" |
| feature_pattern="" |
| feature_multiply="" |
| feature_multiplyhigh="" |
| feature_sixtyfour="" |
| feature_math="" |
| while read feature ; do |
| case $feature in |
| le) feature_endian="";; |
| bs) feature_barrel=" barrel-shift";; |
| p) feature_pattern=" pattern-compare";; |
| m) if [ -z ${feature_multiplyhigh} ]; then feature_multiply=" multiply-low" ; fi ;; |
| mh) feature_multiply="" ; feature_multiplyhigh=" multiply-high";; |
| m64) feature_sixtyfour=" 64-bit";; |
| fpd) feature_math=" fpu-hard";; |
| *) echo "UNKNOWN $feature";; |
| esac |
| done |
| echo "${feature_base}${feature_sixtyfour}${feature_endian}${feature_barrel}${feature_pattern}${feature_multiply}${feature_multiplyhigh}${feature_math}" |
| } |
| |
| sed -e 's,;, ,' | |
| while read mlib args ; do |
| if [ $mlib = '.' ]; then |
| echo '# Base configuration' |
| echo '# CFLAGS:' |
| echo 'DEFAULTTUNE = "microblaze"' |
| echo |
| echo 'AVAILTUNES += "microblaze"' |
| echo 'BASE_LIB_tune-microblaze = "lib"' |
| echo 'TUNE_FEATURES_tune-microblaze = "microblaze bigendian"' |
| echo 'PACKAGE_EXTRA_ARCHS_tune-microblaze = "${TUNE_PKGARCH}"' |
| continue |
| fi |
| |
| cflags=$(echo $args | sed -e 's,@, -,g') |
| multilib="libmb$(echo $mlib | sed -e 's,/,,g')" |
| tune="microblaze$(echo $mlib | sed -e 's,m64,64,' -e 's,/,,g')" |
| features=$(echo $mlib | sed -e 's,/, ,g' | xargs -n 1 echo | mlib_to_feature) |
| echo |
| echo |
| echo "# $mlib" |
| echo "# CFLAGS:${cflags}" |
| echo "DEFAULTTUNE_virtclass-multilib-$multilib = \"$tune\"" |
| echo |
| echo "AVAILTUNES += \"$tune\"" |
| echo "BASE_LIB_tune-$tune = \"lib/$mlib\"" |
| echo "TUNE_FEATURES_tune-$tune = \"${features}\"" |
| echo "PACKAGE_EXTRA_ARCHS_tune-$tune = \"\${TUNE_PKGARCH}\"" |
| done |