ADDED mttroot/mtt/lib/octave/.octaverc Index: mttroot/mtt/lib/octave/.octaverc ================================================================== --- /dev/null +++ mttroot/mtt/lib/octave/.octaverc @@ -0,0 +1,7 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Startup file for Octave for use with MTT +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +implicit_str_to_num_ok = 1; +empty_list_elements_ok = 1; + ADDED mttroot/mtt/lib/octave/README Index: mttroot/mtt/lib/octave/README ================================================================== --- /dev/null +++ mttroot/mtt/lib/octave/README @@ -0,0 +1,1 @@ +This contains some octave specific helps to MTT ADDED mttroot/mtt/lib/octave/mkoctfile Index: mttroot/mtt/lib/octave/mkoctfile ================================================================== --- /dev/null +++ mttroot/mtt/lib/octave/mkoctfile @@ -0,0 +1,202 @@ +#! /bin/sh +# +# mkoctfile -- create a .oct file suitable for dynamic linking by +# Octave. +echo mkoctfile with optimisation level 0 +# Exit immediately on any error. + +set -e + +# Default values for these variables are filled in when Octave is +# compiled. + +: ${CPPFLAGS=""} +: ${INCFLAGS="-I/usr/include -I/usr/include/octave-2.0.16"} +: ${F77="g77"} +: ${FFLAGS="-O0"} +: ${FPICFLAG="-fPIC"} +: ${CC="gcc"} +: ${CFLAGS="-DHAVE_CONFIG_H -mieee-fp -O0"} +: ${CPICFLAG="-fPIC"} +: ${CXX="c++"} +: ${CXXFLAGS="-O0"} +: ${CXXPICFLAG="-fPIC"} +: ${XTRA_CFLAGS="-mieee-fp -fno-rtti -fno-exceptions -fno-implicit-templates"} +: ${XTRA_CXXFLAGS="-mieee-fp -fno-rtti -fno-exceptions -fno-implicit-templates"} + +: ${SH_LD="c++"} +: ${SH_LDFLAGS="-shared"} + +: ${ALL_FFLAGS="$FFLAGS"} + +: ${ALL_CFLAGS="$INCFLAGS $XTRA_CFLAGS $CFLAGS"} + +: ${ALL_CXXFLAGS="$INCFLAGS $XTRA_CXXFLAGS $CXXFLAGS"} + +# Local variables. + +usage_msg="usage: mkoctfile [options] file ..." + +cfiles= +ccfiles= +f77files= +objfiles= +octfiles= +octfile= +incflags= +defs= +ldflags= +dbg=: +strip=false + +if [ $# -eq 0 ]; then + echo $usage_msg + exit 1; +fi + +while [ $# -gt 0 ]; do + file= + case "$1" in + *.c) + file=$1 + cfiles="$cfiles $file" + ;; + *.cc | *.C | *.cpp) + file=$1 + ccfiles="$ccfiles $file" + ;; + *.f | *.F) + file=$1 + f77files="$f77files $file" + ;; + *.o) + file=$1 + objfiles="$objfiles $file" + ;; + -d | --debug | -v | --verbose) + dbg=echo + ;; + -h | -\? | --help) + echo $usage_msg + cat << EOF + +Options: + + -h, -?, --help Print this message. + -IDIR Add -IDIR to compile commands. + -DDEF Add -DDEF to compile commands. + -lLIB Add library LIB to link command. + -LDIR Add -LDIR to link command. + -o FILE, --output FILE Output file name. Default extension is .oct. + -s, --strip Strip output file. + -v, --verbose Echo commands as they are executed. + + FILE Compile or link FILE. Recognized file types are: + + .c C source + .cc C++ source + .C C++ source + .cpp C++ source + .f Fortran source + .F Fortran source + .o object file + +EOF + exit 0 + ;; + -I*) + incflags="$incflags $1" + ;; + -D*) + defs="$defs $1" + ;; + -[lL]*) + ldflags="$ldflags $1" + ;; + -o | --output) + shift + if [ $# -gt 0 ]; then + octfile=`echo $1 | sed 's,\.[^.]*$,,'`.oct + else + echo "mkoctfile: output file name missing" + fi + ;; + -s | --strip) + strip=true + ;; + *) + echo "mkoctfile: unrecognized argument $1" + exit 1 + ;; + esac + if [ -n "$file" ]; then + if [ -z "$octfile" ]; then + octfile=`echo $file | sed 's,\.[^.]*$,,'`.oct + fi + fi + shift +done + +# Compile Fortran, C, and C++ files. Add the name of each object file +# that is produced to the overall list of object files. + +if [ -n "$f77files" ]; then + for f in $f77files; do + case $f in + *.f) + b=`echo $f | sed 's,\.f$,,'` + ;; + *.F) + b=`echo $f | sed 's,\.F$,,'` + ;; + esac + o=$b.o + objfiles="$objfiles $o" + $dbg $F77 -c $FPICFLAG $ALL_FFLAGS $f -o $o + eval $F77 -c $FPICFLAG $ALL_FFLAGS $f -o $o + done +fi + +if [ -n "$cfiles" ]; then + for f in $cfiles; do + b=`echo $f | sed 's,\.c$,,'` + o=$b.o + objfiles="$objfiles $o" + $dbg $CC -c $CPPFLAGS $CPICFLAG $ALL_CFLAGS $incflags $defs $f -o $o + eval $CC -c $CPPFLAGS $CPICFLAG $ALL_CFLAGS $incflags $defs $f -o $o + done +fi + +if [ -n "$ccfiles" ]; then + for f in $ccfiles; do + case $f in + *.cc) + b=`echo $f | sed 's,\.cc$,,'` + ;; + *.C) + b=`echo $f | sed 's,\.C$,,'` + ;; + *.cpp) + b=`echo $f | sed 's,\.cpp$,,'` + ;; + esac + o=$b.o + objfiles="$objfiles $o" + $dbg $CXX -c $CPPFLAGS $CXXPICFLAG $ALL_CXXFLAGS $incflags $defs $f -o $o + eval $CXX -c $CPPFLAGS $CXXPICFLAG $ALL_CXXFLAGS $incflags $defs $f -o $o + done +fi + +# Link all the object files. + +$dbg $SH_LD $SH_LDFLAGS -o $octfile $objfiles $ldflags +eval $SH_LD $SH_LDFLAGS -o $octfile $objfiles $ldflags + +# Maybe strip it. + +if $strip; then + $dbg strip $octfile + eval strip $octfile +fi + +exit 0