major TeX cleanup
authorbrian <brian@brianweb.net>
Fri, 21 May 2004 09:52:50 +0000 (02:52 -0700)
committerbrian <brian@brianweb.net>
Fri, 21 May 2004 09:52:50 +0000 (02:52 -0700)
darcs-hash:20040521095250-24bed-37f50e769351436110758904cf519e705630d938.gz

Makefile
src/org/ibex/nestedvm/Runtime.java
upstream/Makefile

index 4692fec..f9fbcbd 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -80,7 +80,7 @@ endif
 $(tasks)/build_libc: $(mips_object) upstream/misc/extraheaders.sh
 
 $(tasks)/%:
-       $(MAKE) -C upstream tasks/$* usr="$(usr)" MIPS_LDFLAGS="$(MIPS_LDFLAGS)" MIPS_CFLAGS="$(flags) $(mips_optflags)"
+       $(MAKE) -C upstream tasks/$* usr="$(usr)" MIPS_LDFLAGS="$(MIPS_LDFLAGS)" MIPS_CFLAGS="$(MIPS_LDFLAGS)" MIPS_PCFLAGS="$(MIPS_PCFLAGS)"
 
 
 upstream_clean_%:
@@ -195,8 +195,8 @@ env.sh: Makefile $(tasks)/build_gcc $(tasks)/build_libc build/org/ibex/nestedvm/
 
 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
+tex.jar: $(mips_objects) $(runtime_classes:%=build/org/ibex/nestedvm/%.class) build/tests/TeX.class
+       echo -e "Manifest-Version: 1.0\nMain-Class: Tex\n" > .manifest
        cp upstream/build/tex/TeX.class build
        cd build && jar cfm ../$@ ../.manifest \
                $(runtime_classes:%=org/ibex/nestedvm/%.class) \
@@ -359,6 +359,20 @@ boehmgctest: build/tests/Env.class build/tests/GCTest.class
        $(JAVA) -cp build tests.Env GC_PRINT_STATS=1  tests.GCTest
 
 
+# TeX
+
+Tangle_COMPILERFLAGS = -o unixruntime
+
+build/tests/Tangle.mips: $(tasks)/build_tex_tangle
+       @mkdir -p `dirname $@`
+       cp upstream/build/tex/tangle.mips $@
+
+
+TeX_COMPILERFLAGS = -o unixruntime
+build/tests/TeX.mips: $(tasks)/build_tex
+       @mkdir -p `dirname $@`
+       cp upstream/build/tex/tex.mips $@
+       
 #
 # Speed tests
 #
@@ -424,14 +438,13 @@ doc/charts/%.pdf: doc/charts/%.dat doc/charts/%.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
-
-doc/ivme04.pdf: doc/ivme04.tex doc/acmconf.cls $(charts:%.dat=%.pdf) tex.jar upstream/tasks/extract_texinputs
+doc/ivme04.pdf: doc/ivme04.tex doc/acmconf.cls $(charts:%.dat=%.pdf) build/tests/TeX.class
        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
+       cd upstream/build/tex/texinputs && echo '\latex.ltx' | java -cp $(build) tests.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' | java -cp $(build) tests.TeX
+       cd upstream/build/tex/texinputs && dvipdf ivme04.dvi
+       cp upstream/build/tex/texinputs/ivme04.pdf $@
 
 pdf: doc/ivme04.pdf
        open doc/ivme04.pdf
index 4d965e7..272e4e6 100644 (file)
@@ -754,8 +754,13 @@ public abstract class Runtime implements UsermodeConstants,Registers,Cloneable {
     
     /** The open syscall */
     private int sys_open(int addr, int flags, int mode) throws ErrnoException, FaultException {
+        String name = cstring(addr);
+        
+        // HACK: TeX, or GPC, or something really sucks
+        if(name.length() == 1024 && getClass().getName().equals("tests.TeX")) name = name.trim();
+        
         flags &= ~O_NOCTTY; // this is meaningless under nestedvm
-        FD fd = _open(cstring(addr),flags,mode);
+        FD fd = _open(name,flags,mode);
         if(fd == null) return -ENOENT;
         int fdn = addFD(fd);
         if(fdn == -1) { fd.close(); return -ENFILE; }
index 41d7b1c..63fde09 100644 (file)
@@ -81,37 +81,6 @@ clean_%:
        rm -f "tasks/build_$*" "tasks/patch_$*" "tasks/extract_$*"
 
 
-# FIXME ugly path hacks evil bad
-nestedvm := java -cp $(usr)/../build/bcel/bcel-5.1.jar:$(usr)/../../build org.ibex.nestedvm.Compiler -outformat class
-
-version_texinputs = 1.0
-url_texinputs = http://www.megacz.com/tmp/texinputs-$(version_texinputs).tgz
-
-tasks/download_tex:  ; mkdir -p build/tex; touch $@
-build/tex/tex.web:   ; curl -o $@ http://www.math.uni.wroc.pl/~hebisch/tex_p/tex.web
-build/dtex/tangle.p: ; curl http://www.gnu-pascal.de/crystal/gpc/en/attachments/5593/tangle.p.gz | zcat > $@
-tasks/extract_tex:     build/tex/tex.web build/tex/tangle.p; touch $@
-
-build/tex/tangle.mips:  build/tex/tangle.p tasks/full_toolchain tasks/extract_tex tasks/build_gcc_step2
-       cd build/tex; $(gpc) tangle.p $(gpc_flags) -o tangle.mips
-build/tex/Tangle.class: build/tex/tangle.mips
-       $(nestedvm) -o unixruntime -outfile $@ Tangle $<
-build/tex/tex.p: build/tex/tex.web build/tex/tex.ch build/tex/Tangle.class
-       rm -f build/tex/tex.p build/tex/tex.pool
-       cd build/tex; java -cp .:$(usr)/../../build Tangle        \
-                       --gpc-rts=-nPascalfile:tex.p              \
-                       --gpc-rts=-npool:tex.pool                 \
-                       --gpc-rts=-nwebfile:tex.web               \
-                       --gpc-rts=-nchangefile:tex.ch
-build/tex/tex.mips:  build/tex/tex.p tasks/full_toolchain tasks/build_gcc_step2
-       cd build/tex; $(gpc) tex.p $(gpc_flags) -o tex.mips
-tasks/build_tex: build/tex/tex.mips
-       cd build/tex; $(nestedvm) -o unixruntime -outfile TeX.class TeX tex.mips
-       touch $@ 
-tasks/extract_texinputs: tasks/build_tex tasks/download_texinputs
-       cd build/tex; tar xvzf ../../download/texinputs-1.0.tgz
-       touch $@
-
 tasks/download_%:
        if [ -z "$(url_$*)" ]; then echo "No url for $*" >&2; false; fi
        mkdir -p download
@@ -233,6 +202,9 @@ version_busybox = 1.00-pre9
 url_busybox = http://busybox.net/downloads/busybox-$(version_busybox).tar.gz
 patches_busybox = busybox.patch
 
+version_texinputs = 1.0
+url_texinputs = http://www.megacz.com/tmp/texinputs-$(version_texinputs).tgz
+
 tasks/extract_libjpeg: tasks/download_libjpeg
        mkdir -p build
        cd build && \
@@ -308,3 +280,36 @@ tasks/build_gcclass:
        cd build &&  darcs get --verbose http://darcs.brianweb.net/gcclass
        cd build/gcclass && make
        touch $@
+
+# TeX Stuff
+
+tasks/extract_tex_tangle:
+       @mkdir -p build/tex
+       cd build/tex && \
+               curl -o tex.web http://www.math.uni.wroc.pl/~hebisch/tex_p/tex.web && \
+               curl http://www.gnu-pascal.de/crystal/gpc/en/attachments/5593/tangle.p.gz | zcat > tangle.p 
+       touch $@
+
+tasks/build_tex_tangle: tasks/extract_tex_tangle tasks/build_gpc
+       @mkdir -p build/tex
+       mips-unknown-elf-gpc $(MIPS_PCFLAGS) build/tex/tangle.p $(MIPS_LDFLAGS) -o build/tex/tangle.mips
+       touch $@
+
+tasks/build_tex: tasks/build_tex_tangle tasks/build_gpc tasks/download_texinputs
+       @mkdir -p build/tex
+       
+       # HACK: Build Tangel.class
+       make -C $(root) build/tests/Tangle.class
+       
+       rm -f build/tex/tex.p build/tex/tex.pool
+       cp misc/tex.ch build/tex/tex.ch
+       cd build/tex && \
+               tar xfz ../../download/texinputs-$(version_texinputs).tgz && \
+               java -cp $(root)/build tests.Tangle \
+                       --gpc-rts=-nPascalfile:tex.p    \
+                       --gpc-rts=-npool:tex.pool       \
+                       --gpc-rts=-nwebfile:tex.web     \
+                       --gpc-rts=-nchangefile:tex.ch   \
+                       && \
+               mips-unknown-elf-gpc $(filter-out -Werror,$(MIPS_PCFLAGS)) tex.p $(MIPS_LDFLAGS) -o tex.mips
+       touch $@