diff --git a/gen-assemble-fcts.sh b/gen-assemble-fcts.sh new file mode 100755 index 0000000000000000000000000000000000000000..711151e2940b50ab4fc4d753f069a1910d2cf770 --- /dev/null +++ b/gen-assemble-fcts.sh @@ -0,0 +1,90 @@ +#! /bin/sh + +if test "$#" -eq 4 +then + DST_DOWB_ST=$1 + SRC_DOWB_ST=$1 + LALT_DOWB_ST=$2 + LB_DOWB_ST=$3 + C_DOWB_ST=$4 +elif test "$#" -eq 2 +then + DST_DOWB_ST=$1 + SRC_DOWB_ST=$2 + LALT_DOWB_ST=$2 + LB_DOWB_ST=$2 + C_DOWB_ST=$2 +else + exec 1>&2 + echo $0 DST_TYPE SRC_TYPE + echo *** or *** + echo $0 DST_TYPE LALt_TYPE LB_TYPE C_TYPE + exit 1 +fi + +SED_STRING="" +for target in DST SRC LALT LB C; do + DOWB_ST=${target}_DOWB_ST + TYPE=${target}_TYPE + RET_TYPE=${target}_RET_TYPE + PTR_TYPE=${target}_PTR_TYPE + DOWB_NAME=${target}_DOWB_NAME + CONSTCAST=${target}_CONSTCAST + type=`eval echo \$\{${DOWB_ST}\}` + SED_STRING="${SED_STRING} -e 's|@${DOWB_ST}@|${type}|g'" + case ${type} in + M) + case ${target} in + LALT) + SED_STRING="${SED_STRING} -e 's|@${RET_TYPE}@|const REAL_BDD *|g'" + ;; + LB) + SED_STRING="${SED_STRING} -e 's|@${RET_TYPE}@|const REAL_DD *|g'" + ;; + C) + SED_STRING="${SED_STRING} -e 's|@${RET_TYPE}@|const REAL_D *|g'" + ;; + esac + SED_STRING="${SED_STRING} -e 's|@${TYPE}@|REAL_DD|g'" + SED_STRING="${SED_STRING} -e 's|@${PTR_TYPE}@|REAL_D *|g'" + SED_STRING="${SED_STRING} -e 's|@${DOWB_NAME}@|full|g'" + SED_STRING="${SED_STRING} -e 's|@${CONSTCAST}@|(const REAL_D *)|g'" + ;; + DM) + case ${target} in + LALT) + SED_STRING="${SED_STRING} -e 's|@${RET_TYPE}@|const REAL_BD *|g'" + ;; + LB) + SED_STRING="${SED_STRING} -e 's|@${RET_TYPE}@|const REAL_D *|g'" + ;; + C) + SED_STRING="${SED_STRING} -e 's|@${RET_TYPE}@|const REAL *|g'" + ;; + esac + SED_STRING="${SED_STRING} -e 's|@${TYPE}@|REAL_D|g'" + SED_STRING="${SED_STRING} -e 's|@${PTR_TYPE}@|REAL *|g'" + SED_STRING="${SED_STRING} -e 's|@${DOWB_NAME}@|diag|g'" + SED_STRING="${SED_STRING} -e 's|@${CONSTCAST}@|/**/|g'" + ;; + SCM) + case ${target} in + LALT) + SED_STRING="${SED_STRING} -e 's|@${RET_TYPE}@|const REAL_B *|g'" + ;; + LB) + SED_STRING="${SED_STRING} -e 's|@${RET_TYPE}@|const REAL *|g'" + ;; + C) + SED_STRING="${SED_STRING} -e 's|@${RET_TYPE}@|REAL |g'" + ;; + esac + SED_STRING="${SED_STRING} -e 's|@${TYPE}@|REAL|g'" + SED_STRING="${SED_STRING} -e 's|@${PTR_TYPE}@|NOT_NEEDED|g'" + SED_STRING="${SED_STRING} -e 's|@${DOWB_NAME}@|scal|g'" + SED_STRING="${SED_STRING} -e 's|@${CONSTCAST}@|/**/|g'" + ;; + esac +done +eval sed ${SED_STRING} +