#!/bin/sh while [ $# != 0 ] do case $1 in -h) echo "usage: m-specific []" echo echo " : can be octave or matlab" echo " : can be - in order to use stdin" echo echo " If no is specified, stdout is used" exit 0;; -*) echo "m-specific: unknown option $1" echo 'try `m-specific -h'"'"' for help' exit 1;; *) break;; esac shift done if [ $# -lt 2 ] || [ $# -gt 3 ] ; then echo "usage: m-specific []" echo echo " : can be octave or matlab" echo " : can be - in order to use stdin" echo echo " If no is specified, stdout is used" exit 1 fi fo="" foname="stdout" md=$1 fi=$2 if [ $# = 3 ] ; then foname=$3 fo="> $3" fi case $md in matlab) echo "m-specific: matlabifying $fi to $foname" 1>&2 ;; octave) echo "m-specific: octavifying $fi to $foname" 1>&2 ;; *) echo "m-specific: unknown mode '$md'" exit 1 ;; esac tempfile=/tmp/mspec.$$ cat > $tempfile <<'EOF' m4_define(`filename',m4_ifdef(`filename',filename,))m4_dnl Give a default filename m4_define(in_octave,m4_ifdef(`octave',` % =========================================================================== % Source file: filename % Mode: Octave % =========================================================================== $1 % ==========================================================================='))m4_dnl Definition du mode octave m4_define(in_matlab,m4_ifdef(`matlab',` % =========================================================================== % Source file: filename % Mode: Matlab % =========================================================================== $1 % ==========================================================================='))m4_dnl Definition du mode matlab m4_undefine(octave)m4_dnl Remove unnecessary macros m4_undefine(matlab)m4_dnl m4_undefine(filename)m4_dnl m4_changequote(&$@&,&$@&)m4_dnl Weird quotes to be sure it won't be used by mistake EOF eval /usr/local/bin/m4 --prefix-builtins -D$md -Dfilename=$fi $tempfile $fi $fo rm -f $tempfile