#!/bin/sh # shell script to help automate genration of lexer parser files (OBSOLETE) # Copyright (C) 1992-2000 Michigan State University # # The CAPA system is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of the # License, or (at your option) any later version. # # The CAPA system is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public # License along with the CAPA system; see the file COPYING. If not, # write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # # As a special exception, you have permission to link this program # with the TtH/TtM library and distribute executables, as long as you # follow the requirements of the GNU GPL in regard to all of the # software in the executable aside from TtH/TtM. VER=5.1 BUGFIX=0 TEST_DIR=testing7 CC="cc" # -DDMALLOC -DDMALLOC_FUNC_CHECK" #FLEX="/usr/user1/capadvt/BIN/flex -Cfa -s" FLEX="flex -Cfa -s" #FLEX="/usr/user1/capadvt/BIN/flex -Cfa -s" #YACC="/usr/bin/byacc" #YACC="/usr/user1/capadvt/BIN/bison" YACC="bison" MV="mv" #echo "${CC}" ARCH=`uname` #echo "${ARCH}" # have to put " around the multiple line string PAR_OBJ="${ARCH}/capaCommon.o ${ARCH}/capaLexerFun.o \ ${ARCH}/capaParserFun.o ${ARCH}/capaFunction.o ${ARCH}/capaParserUtils.o \ ${ARCH}/capaMapExpr.o ${ARCH}/capaUnit.o ${ARCH}/com.o ${ARCH}/linpack.o ${ARCH}/ranlib.o \ ${ARCH}/capaCgiUtils.o ${ARCH}/capaRQO.o ${ARCH}/capaFormulaLexer.o ${ARCH}/capaFormulaParser.o \ ${ARCH}/capaSubjective.o" #echo "OBJ:${PAR_OBJ}" prefix="" CCFLAG="-g -DUSE_DYNAMIC_SYMBOLS" PLIBS="-ll -lm -lcurses " if [ ${ARCH} = "AIX" ] then CCFLAG="-O3 -DAIX" fi if [ ${ARCH} = "Linux" ] then CCFLAG="-g -DUSE_DYNAMIC_SYMBOLS -DCAPA_VER=\"${VER}.${BUGFIX}\" -DCOMPILE_DATE=\"`date +'%b-%d-%Y'`\"" fi if [ ${ARCH} = "OSF1" ] then #CCFLAG="-O3 -Olimit 1024 -DUSE_DYNAMIC_SYMBOLS -DUSE_DYNAMIC_LEXBUFS" CCFLAG="-O3 -Olimit 2048 -DUSE_DYNAMIC_SYMBOLS -DCAPA_VER=\"${VER}.${BUGFIX}\" -DCOMPILE_DATE=\"`date +'%b-%d-%Y'`\"" fi if [ ${ARCH} = "NEXTSTEP" ] then CCFLAG="-arch i386 -arch m68k" fi if [ ${ARCH} = "SunOS" ] then CCFLAG="-xO3" fi if [ ${ARCH} = "HP-UX" ] then CCFLAG="-O -Ae -Dhpux" fi if [ ${ARCH} = "IRIX" ] then CCFLAG="-O2 -DIRIX" fi # echo "ALL: $*" # echo "ONE: $1" # echo "TWO: $2" compileUnits() { ofile="${ARCH}/capaUnit.o" cfile="capaUnit.c" cmd="${CC} $CCFLAG -c $cfile -o $ofile" echo $cmd $cmd } lexCAPA() { echo "${FLEX} capaLexerDef.flex" # ${FLEX} capaLexerDef.flex echo "mv lex.yy.c capaLexerFun.c" mv lex.yy.c capaLexerFun.c ofile="${ARCH}/capaLexerFun.o" cfile="capaLexerFun.c" cmd="${CC} $CCFLAG -c $cfile -o $ofile" echo $cmd $cmd } lexCAPAdmalloc() { echo "${FLEX} capaLexerDef.flex" # ${FLEX} capaLexerDef.flex echo "mv lex.yy.c capaLexerFun.c" mv lex.yy.c capaLexerFun.c ofile="${ARCH}/capaLexerFun.o" cfile="capaLexerFun.c" cmd="${CC} $CCFLAG -c $cfile -o $ofile" echo $cmd $cmd } lexdbug() { echo "${FLEX} capaLexerDef.flex" # ${FLEX} capaLexerDef.flex echo "mv lex.yy.c capaLexerFun.c" mv lex.yy.c capaLexerFun.c ofile="${ARCH}/capaLexerFun.o" cfile="capaLexerFun.c" cmd="${CC} $CCFLAG -DLEX_DBUG -c $cfile -o $ofile" echo $cmd $cmd } yaccCAPA() { echo "${YACC} capaGrammarDef.y # -ocapaParserFun.c" # ${YACC} -d capaGrammarDef.y # mv y.tab.c capaParserFun.c echo "mv capaGrammarDef.tab.c capaParserFun.c" mv capaGrammarDef.tab.c capaParserFun.c ofile="${ARCH}/capaParserFun.o" cfile="capaParserFun.c" cmd="${CC} $CCFLAG -c $cfile -o $ofile" echo $cmd $cmd } yaccCAPAdmalloc() { echo "${YACC} capaGrammarDef.y # -ocapaParserFun.c" # ${YACC} -d capaGrammarDef.y echo "mv y.tab.c capaParserFun.c" mv y.tab.c capaParserFun.c ofile="${ARCH}/capaParserFun.o" cfile="capaParserFun.c" cmd="${CC} $CCFLAG -c $cfile -o $ofile" echo $cmd $cmd } yaccdbug() { echo "${YACC} capaGrammarDef.y -ocapaParserFun.c" # ${YACC} -d capaGrammarDef.y #-ocapaParserFun.c # echo "mv y.tab.c capaParserFun.c" # mv y.tab.c capaParserFun.c # echo "mv y.tab.h capaToken.h" # mv y.tab.h capaToken.h echo "mv capaGrammarDef.tab.c capaParserFun.c" mv capaGrammarDef.tab.c capaParserFun.c ofile="${ARCH}/capaParserFun.o" cfile="capaParserFun.c" cmd="${CC} $CCFLAG -DYACC_DBUG -c $cfile -o $ofile" echo $cmd $cmd } formulaParser() { echo "${YACC} -p fml_ -d capaFormula.y" ${YACC} -b fma -p fml_ -d capaFormula.y echo "MV fma.tab.c capaFormulaParser.c" echo "MV fma.tab.h capaFormula.h" ${MV} fma.tab.c capaFormulaParser.c ${MV} fma.tab.h capaFormula.h ofile="${ARCH}/capaFormulaParser.o" cfile="capaFormulaParser.c" cmd="${CC} $CCFLAG -c $cfile -o $ofile" echo $cmd $cmd } formulaDbug() { echo "YACC -p fml_ -d capaFormula.y" ${YACC} -b fma -p fml_ -d capaFormula.y echo "MV fma.tab.c capaFormulaParser.c" echo "MV fma.tab.h capaFormula.h" ${MV} fma.tab.c capaFormulaParser.c ${MV} fma.tab.h capaFormula.h ofile="${ARCH}/capaFormulaParser.o" cfile="capaFormulaParser.c" cmd="${CC} $CCFLAG -DFML_DBUG -c $cfile -o $ofile" echo $cmd $cmd ofile="${ARCH}/capaParserUtils.o" cfile="capaParserUtils.c" cmd="${CC} $CCFLAG -c $cfile -o $ofile" echo $cmd $cmd } symboldbug() { echo "${YACC} capaGrammarDef.y " # ${YACC} capaGrammarDef.y echo "mv y.tab.c capaParserFun.c" # mv y.tab.c capaParserFun.c ofile="${ARCH}/capaParserFun.o" cfile="capaParserFun.c" cmd="${CC} $CCFLAG -DSYMBOL_DBUG -c $cfile -o $ofile" echo $cmd $cmd ofile="${ARCH}/capaParserUtils.o" cfile="capaParserUtils.c" cmd="${CC} $CCFLAG -DSYMBOL_DBUG -c $cfile -o $ofile" echo $cmd $cmd # ofile="${ARCH}/capaFunction.o" # cfile="capaFunction.c" # cmd="${CC} $CCFLAG -DSYMBOL_DBUG -c $cfile -o $ofile" # echo $cmd # $cmd } dynamicsymbol() { echo "${FLEX} capaLexerDef.flex" # ${FLEX} capaLexerDef.flex echo "mv lex.yy.c capaLexerFun.c" # mv lex.yy.c capaLexerFun.c ofile="${ARCH}/capaLexerFun.o" cfile="capaLexerFun.c" cmd="${CC} $CCFLAG -DUSE_DYNAMIC_SYMBOLS -c $cfile -o $ofile" echo $cmd $cmd ofile="${ARCH}/capaParserUtils.o" cfile="capaParserUtils.c" cmd="${CC} $CCFLAG -DUSE_DYNAMIC_SYMBOLS -c $cfile -o $ofile" echo $cmd $cmd ofile="${ARCH}/capaCommon.o" cfile="capaCommon.c" cmd="${CC} $CCFLAG -c $cfile -o $ofile" echo $cmd $cmd } arraysymbol() { echo "${FLEX} capaLexerDef.flex" # ${FLEX} capaLexerDef.flex echo "mv lex.yy.c capaLexerFun.c" # mv lex.yy.c capaLexerFun.c ofile="${ARCH}/capaLexerFun.o" cfile="capaLexerFun.c" cmd="${CC} $CCFLAG -c $cfile -o $ofile" echo $cmd $cmd ofile="${ARCH}/capaParserUtils.o" cfile="capaParserUtils.c" cmd="${CC} $CCFLAG -c $cfile -o $ofile" echo $cmd $cmd ofile="${ARCH}/capaCommon.o" cfile="capaCommon.c" cmd="${CC} $CCFLAG -c $cfile -o $ofile" echo $cmd $cmd } CAPAParserUtilsdbug() { ofile="${ARCH}/capaParserUtils.o" cfile="capaParserUtils.c" cmd="${CC} $CCFLAG -DPARSER_DBUG -c $cfile -o $ofile" echo $cmd $cmd } Ranlib() { ofile="${ARCH}/ranlib.o" cfile="ranlib.c" cmd="${CC} $CCFLAG -c $cfile -o $ofile" echo $cmd $cmd } CAPAParserUtils() { ofile="${ARCH}/capaParserUtils.o" cfile="capaParserUtils.c" cmd="${CC} $CCFLAG -c $cfile -o $ofile" echo $cmd $cmd } CAPAFunction() { ofile="${ARCH}/capaFunction.o" cfile="capaFunction.c" cmd="${CC} $CCFLAG -c $cfile -o $ofile" echo $cmd $cmd } createCAPAlib() { if [ -f ${ARCH}/libcapa${VER}.a ] then rm ${ARCH}/libcapa${VER}.a fi echo "ar q ${ARCH}/libcapa${VER}.a ${PAR_OBJ}" ar q ${ARCH}/libcapa${VER}.a ${PAR_OBJ} } compileLexTest() { if [ -f ${TEST_DIR}/testL ] then rm ${TEST_DIR}/testL fi (cd ${TEST_DIR}; make testL) } compileParseTest() { if [ -f ${TEST_DIR}/testP ] then rm ${TEST_DIR}/testP fi (cd ${TEST_DIR}; make testP) } compileParseTestDmalloc() { if [ -f ${TEST_DIR}/testP ] then rm ${TEST_DIR}/testP fi (cd ${TEST_DIR}; make testPdmalloc) } compileLoginTest() { if [ -f ${TEST_DIR}/testLogin ] then rm ${TEST_DIR}/testLogin fi ofile="${ARCH}/capaCommon.o" cfile="capaCommon.c" cmd="${CC} $CCFLAG -DCOMMON_DBUG -c $cfile -o $ofile" echo $cmd $cmd createCAPAlib ofile="${ARCH}/capaLoginTest.o" cfile="capalogin.c" cmd="${CC} $CCFLAG -DLOGIN_DBUG -c $cfile -o $ofile" echo $cmd $cmd cmd="${CC} $CCFLAG ${ARCH}/libcapa${VER}.a $ofile -L${ARCH} -lcapa${VER} ${PLIBS} -o ${TEST_DIR}/testLogin" echo $cmd $cmd } compileFormulaTest() { if [ -f ${TEST_DIR}/testFormula ] then rm ${TEST_DIR}/testFormula fi ofile="${ARCH}/capaTestFormula.o" cfile="${TEST_DIR}/tformula_main.c" cmd="${CC} $CCFLAG -DLOGIN_DBUG -I. -I.. -c $cfile -o $ofile" echo $cmd $cmd cmd="${CC} $CCFLAG ${ARCH}/libcapa${VER}.a $ofile -L${ARCH} -lcapa${VER} ${PLIBS} -o ${TEST_DIR}/testFormula" echo $cmd $cmd } for i in $* ; do case "$i" in *FP) formulaParser ;; *LD) lexCAPAdmalloc ;; *X|*x) lexdbug ;; *L|*l) lexCAPA ;; *P|*p) yaccdbug ;; *Y|*y) yaccCAPA ;; *R|*r) Ranlib ;; *PD) CAPAParserUtilsdbug ;; *PU|*pu) CAPAParserUtils ;; *SS) symboldbug ;; *DS) dynamicsymbol ;; *AS) arraysymbol ;; *D) formulaDbug ;; *F|*f) CAPAFunction ;; *lib|*Lib) createCAPAlib ;; *PT|*pt) compileParseTest ;; *Lo|*lo) compileLoginTest ;; esac done exit 0