g77/linpack
[nestedvm.git] / Makefile
index 6d7a771..8a6af84 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -21,6 +21,7 @@ tasks = upstream/tasks
 flags = -march=mips1
 MIPS_CC = mips-unknown-elf-gcc
 MIPS_CXX = mips-unknown-elf-g++
+MIPS_G77 = mips-unknown-elf-g77
 
 # Be VERY careful about changing any of these as they can break binary 
 # compatibility and create hard to find bugs
@@ -173,12 +174,21 @@ env.sh: Makefile $(tasks)/full_toolchain build/org/ibex/nestedvm/Compiler.class
 
 runtime_classes = Runtime Registers UsermodeConstants util/Seekable
 
+tex.jar: $(mips_objects) $(runtime_classes:%=build/org/ibex/nestedvm/%.class) upstream/tasks/build_tex
+       echo -e "Manifest-Version: 1.0\nMain-Class: TeX\n" > .manifest
+       cp upstream/build/tex/TeX.class build
+       cd build && jar cfm ../$@ ../.manifest \
+               TeX.class \
+               $(runtime_classes:%=org/ibex/nestedvm/%.class) \
+               org/ibex/nestedvm/*.class \
+               org/ibex/nestedvm/util/*.class
+
 runtime.jar: $(runtime_classes:%=build/org/ibex/nestedvm/%.class)
        cd build && jar cf ../$@ \
                $(runtime_classes:%=org/ibex/nestedvm/%.class) \
                org/ibex/nestedvm/Runtime\$$*.class \
                org/ibex/nestedvm/util/Seekable\$$*.class
-               
+
 .manifest:
        echo -ne "Manifest-Version: 1.0\nMain-Class: org.ibex.nestedvm.RuntimeCompiler\n" > $@
 
@@ -214,7 +224,7 @@ rebuild-constants: $(tasks)/build_newlib
                        s/ *# *define \([A-Z_][A-Za-z0-9_]*\) \([0-9][0-9x]*\)/    public static final int \1 = \2;/p'; \
                echo "}"; \
        ) > src/org/ibex/nestedvm/UsermodeConstants.java
-       
+
 #
 # Tests
 # These are simply here for convenience. They aren't required 
@@ -224,6 +234,7 @@ rebuild-constants: $(tasks)/build_newlib
 build/tests/Env.class: build/org/ibex/nestedvm/Runtime.class build/org/ibex/nestedvm/Interpreter.class
 
 # Generic Hello Worldish test
+test_COMPILERFLAGS = -o unixruntime
 test: build/tests/Test.class
        $(JAVA) -cp build tests.Test "arg 1" "arg 2" "arg 3"
 inttest: build/tests/Test.mips build/org/ibex/nestedvm/Interpreter.class
@@ -301,7 +312,7 @@ BusyBox_COMPILERFLAGS = -o unixruntime
 build/tests/BusyBox.mips: $(mips_objects) $(tasks)/build_busybox
        @mkdir -p `dirname $@`
        cp upstream/build/busybox/busybox $@
-       
+
 busyboxtest: build/tests/BusyBox.class
        $(JAVA) -cp $(classpath) tests.BusyBox ash
 
@@ -373,9 +384,23 @@ compiletests: $(patsubst %,build/tests/%.class,FTBench MSPackBench DJpeg Test Fr
        @true
 
 
-# IVME Paper
-doc/nestedvm.ivme04.pdf: doc/nestedvm.ivme04.tex doc/acmconf.cls
-       cd doc; pdflatex nestedvm.ivme04.tex && ./pst2pdf && pdflatex nestedvm.ivme04.tex
+charts := $(shell find doc/charts -name \*.dat)
 
-pdf: doc/nestedvm.ivme04.pdf
-       open doc/nestedvm.ivme04.pdf
+# IVME Paper
+doc/charts/%.pdf: doc/charts/%.dat doc/charts/%.gnuplot
+       cd doc/charts; gnuplot $*.gnuplot
+       cd doc/charts; chmod +x boxfill.pl; ./boxfill.pl -g -o unfilled.eps $*.eps
+       cd doc/charts; ps2pdf $*.eps
+
+tex := java -cp $(usr)/../../build:.. TeX
+
+#tex := java -cp $(usr)/../../build:.. org.ibex.nestedvm.Interpreter ../tex.mips
+doc/ivme04.pdf: doc/ivme04.tex doc/acmconf.cls $(charts:%.dat=%.pdf) tex.jar upstream/tasks/extract_texinputs
+       cp upstream/build/tex/tex.pool upstream/build/tex/texinputs/tex.pool
+       cd upstream/build/tex/texinputs; echo '\latex.ltx' | $(tex)
+       cd upstream/build/tex/texinputs; ln -fs ../../../../doc/* .; rm -f ivme04.aux; touch ivme04.aux; touch ivme04.bbl
+       cd upstream/build/tex/texinputs; echo '\&latex \input ivme04.tex' | $(tex)
+       cd upstream/build/tex/texinputs; dvipdf ivme04.dvi
+
+pdf: doc/ivme04.pdf
+       open doc/ivme04.pdf