X-Git-Url: http://git.megacz.com/?p=nestedvm.git;a=blobdiff_plain;f=Makefile;h=a26319b75f1e00a5a8990c4426bee720305f43f2;hp=4692fec1563355fc5575fbeaaf3355b0fd213e2c;hb=b4cee44bea4853f5c0f7cb3b331aecb84ef3aa3e;hpb=bcad568d15f3bfdfc4b7c3768ecd27023a7ac94a diff --git a/Makefile b/Makefile index 4692fec..a26319b 100644 --- a/Makefile +++ b/Makefile @@ -51,8 +51,8 @@ else JAVAC_NODEBUG_FLAGS = -g:none endif -bcel_jar = upstream/build/bcel-5.1/bcel-5.1.jar -classpath = build:$(bcel_jar) +CLASSGEN_PATH = upstream/build/classgen/build +classpath = build:$(CLASSGEN_PATH) GCJ = gcj EXE_EXT = @@ -77,12 +77,14 @@ all: build/mips2java$(EXE_EXT) $(mips_objects) endif # HACK: Ensure libc is kept up to date when our mips_objects change -$(tasks)/build_libc: $(mips_object) upstream/misc/extraheaders.sh +$(tasks)/build_libc: $(mips_objects) 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_CFLAGS="$(filter-out -Werror,$(MIPS_CFLAGS))" \ + MIPS_PCFLAGS="$(filter-out -Werror,$(MIPS_PCFLAGS))" \ + MIPS_LDFLAGS="$(MIPS_LDFLAGS)" + upstream_clean_%: $(MAKE) -C upstream clean_$* usr="$(usr)" @@ -98,12 +100,9 @@ build/org/ibex/nestedvm/util/.Dummy.class: $(java_classes): build/org/ibex/nestedvm/util/.Dummy.class endif -$(java_classes): $(java_sources) $(bcel_jar) +$(java_classes): $(java_sources) $(tasks)/build_darcs_classgen $(JAVAC) -classpath $(classpath) -d build $(java_sources) -$(bcel_jar): upstream/tasks/extract_bcel - @true - # GCJ Stuff # FIXME: We're cramming more than we need into the binary here build/mips2java$(EXE_EXT): $(java_sources) $(java_gen_sources) @@ -185,7 +184,7 @@ env.sh: Makefile $(tasks)/build_gcc $(tasks)/build_libc build/org/ibex/nestedvm/ @echo 'CFLAGS="$(mips_optflags)"; export CFLAGS' >> $@~ @echo 'CXXFLAGS="$(mips_optflags)"; export CXXFLAGS' >> $@~ @echo 'LDFLAGS="$(MIPS_LDFLAGS)"; export LDFLAGS' >> $@~ - @echo 'CLASSPATH=$(mips2java_root)/build:$(mips2java_root)/$(bcel_jar):.; export CLASSPATH' >> $@~ + @echo 'CLASSPATH=$(mips2java_root)/build:$(mips2java_root)/upstream/build/classgen/build:.; export CLASSPATH' >> $@~ @mv "$@~" "$@" @echo "$@ created successfully" @@ -195,8 +194,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) \ @@ -210,21 +209,31 @@ runtime.jar: $(runtime_classes:%=build/org/ibex/nestedvm/%.class) org/ibex/nestedvm/util/Seekable\$$*.class .manifest: - echo -ne "Manifest-Version: 1.0\nMain-Class: org.ibex.nestedvm.RuntimeCompiler\n" > $@ + printf "Manifest-Version: 1.0\nMain-Class: org.ibex.nestedvm.RuntimeCompiler\n" > $@ nestedvm.jar: $(java_classes) .manifest cd build && jar cfm ../$@ ../.manifest $(java_classes:build/%.class=%*.class) -compact_runtime_compiler.jar: $(java_classes) .manifest $(tasks)/build_gcclass +compact_runtime_compiler.jar: $(java_classes) .manifest $(tasks)/build_darcs_gcclass mkdir -p tmp/pruned - java -cp upstream/build/gcclass/build:$(bcel_jar) com.brian_web.gcclass.GCClass \ - build tmp/pruned \ + rm -rf tmp/pruned/* + java -cp \ + upstream/build/gcclass/build:upstream/build/gcclass/upstream/bcel-5.1/bcel-5.1.jar \ + com.brian_web.gcclass.GCClass \ + $(classpath) tmp/pruned \ org.ibex.nestedvm.RuntimeCompiler.main 'org.ibex.nestedvm.Runtime.decodeData' \ 'org.ibex.nestedvm.UnixRuntime.' 'org.ibex.nestedvm.Runtime.initPages' \ 'org.ibex.nestedvm.Runtime.clearPages' 'org.ibex.nestedvm.Runtime.syscall' \ 'org.ibex.nestedvm.Runtime$$CPUState.dup' cd tmp/pruned && jar cfm ../../$@ ../../.manifest . +sizecheck: compact_runtime_compiler.jar + @for c in `find tmp/pruned -name '*.class'|fgrep -v '$$'`; do \ + for f in `echo $$c|sed 's,\.class$$,,;'`*.class; do gzip -c $$f; done | wc -c | tr -d '\n'; \ + echo -e "\t`echo $$c | sed 's,tmp/pruned/org/ibex,,;s,\.class$$,,;s,/,.,g;'`"; \ + done | sort -rn | awk '{ sum += $$1; print } END { print sum,"Total"; }' + + # This is only for Brian to use... don't mess with it rebuild-constants: $(tasks)/build_libc @mkdir -p `dirname $@` @@ -359,6 +368,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 +447,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