# # Makefile for workstation benchmarks. Should be invoked via makebench # # Sample use: # $ makebench mips.O2 clean # $ makebench mips.O2 build # $ makebench mips.O2 times >& Results/charlie.O2.run1 # # Bogus defaults (reminder to choose correct values) CC = specify_c_compiler FC = specify_f_compiler NOP= specify_nooptimize OPT= specify_optimize O = specify_object_extn DOMAKE = make O=$O C_COMPILE='${CC}' F_COMPILE='${FC}' REL=${REL} DOMAKE_OPT = ${DOMAKE} OPTIMIZE='${OPT}' DOMAKE_UNOPT = ${DOMAKE} OPTIMIZE='${NOP}' LOG = util/log TIMES-ALL = times.gcc times.tex times.spice BUILD-ALL = build.gcc build.tex build.spice CLEAN-ALL = clean.gcc clean.tex clean.spice # First target, hence default help: @echo Possible targets are: @echo ' ' clean.ALL ${CLEAN-ALL} @echo ' ' build.ALL ${BUILD-ALL} @echo ' ' times.ALL ${TIMES-ALL} @echo 'times.* does build.* if necessary.' @echo 'build.* does NOT do clean.*; this should be invoked manually' times.ALL : ${TIMES-ALL} build.ALL : ${BUILD-ALL} clean.ALL : ${CLEAN-ALL} #--- gcc (GNU C compiler) times.gcc: build.gcc ${LOG} gcc 'gcc 0K-12K' repeat 5 ./gcc -S -O -B./ \ version.c genflags.c gencodes.c genconfig.c \ genextract.c genpeep.c genemit.c obstack.c ${LOG} gcc 'gcc 20K-35K' ./gcc -S -O -B./ \ regclass.c stor-layout.c recog.c rtl.c \ genrecog.c global-alloc.c final.c local-alloc.c ${LOG} gcc 'gcc 130K' repeat 3 ./gcc -S -O -B./ expr.c build.gcc: cd gcc; ${DOMAKE_OPT} gcc cc1 cd gcc; ${DOMAKE_UNOPT} cpp # ^ -O[234] cccp.c breaks on SUN4. Grrr. clean.gcc: cd gcc; ${DOMAKE} clean #--- spice times.spice: build.spice ${LOG} spice 'spice 2g6/bsim digsr' './spice < test.digsr' build.spice: cd spice ; ${DOMAKE_OPT} spice clean.spice: cd spice ; ${DOMAKE} clean #--- CommonTex (hand-translated, not machine-translated, to C) TEX_CODE = tex/code TEX_MACROS = tex/latex TEX_TEST = tex/test INITEX = ${TEX_CODE}/initex VIRTEX = ${TEX_CODE}/virtex LATEX_INPUT = lplain.tex LATEX_FORMAT = ${TEX_MACROS}/lplain.fmt LATEX_RUN = ${VIRTEX} "'&${TEX_MACROS}/lplain'" TEX_DOC = ${TEX_TEST}/draft times.tex: build.tex ${TEX_DOC}.tex @rm -f ${TEX_DOC}.aux ${LOG} . 'TeX' repeat 2 ${LATEX_RUN} ${TEX_DOC}.tex build.tex: ${LATEX_FORMAT} ${VIRTEX} ${INITEX}: cd ${TEX_CODE} ; ${DOMAKE_OPT} initex ${VIRTEX}: cd ${TEX_CODE} ; ${DOMAKE_OPT} virtex ${LATEX_FORMAT}: ${INITEX} ${TEX_MACROS}/${LATEX_INPUT} # And *.tfm *.tex cd ${TEX_MACROS} ; ../../${INITEX} ${LATEX_INPUT} \\dump clean.tex: rm -f ${LATEX_FORMAT} ${TEX_DOC}.aux ${TEX_DOC}.dvi ${TEX_DOC}.log cd ${TEX_CODE} ; ${DOMAKE} clean