X-Git-Url: http://git.megacz.com/?p=nestedvm.git;a=blobdiff_plain;f=Makefile;h=28e81008272cd954f6a4e7bf399114aad3bf54d2;hp=86b008533db8ed1a970ee6373d82b62f1f83fc56;hb=f4a70cc5b4dc1a175ba741a4eac3a52985b1b322;hpb=2eb10cf0499c9bf838a406def44bf8ec4337c8eb diff --git a/Makefile b/Makefile index 86b0085..28e8100 100644 --- a/Makefile +++ b/Makefile @@ -51,8 +51,13 @@ else JAVAC_NODEBUG_FLAGS = -g:none endif -bcel_jar = upstream/build/bcel-5.1/bcel-5.1.jar -classpath = build:$(bcel_jar) +CYGWIN = $(findstring CYGWIN,$(shell uname)) +CLASSGEN_PATH = upstream/build/classgen/build +ifneq ($(CYGWIN),) + classpath = $(shell cygpath -wp build:$(CLASSGEN_PATH)) +else + classpath = build:$(CLASSGEN_PATH) +endif GCJ = gcj EXE_EXT = @@ -100,11 +105,8 @@ build/org/ibex/nestedvm/util/.Dummy.class: $(java_classes): build/org/ibex/nestedvm/util/.Dummy.class endif -$(java_classes): $(java_sources) $(bcel_jar) - $(JAVAC) -classpath $(classpath) -d build $(java_sources) - -$(bcel_jar): upstream/tasks/extract_bcel - @true +$(java_classes): $(java_sources) $(tasks)/build_darcs_classgen + $(JAVAC) -classpath "$(classpath)" -d build $(java_sources) # GCJ Stuff # FIXME: We're cramming more than we need into the binary here @@ -153,14 +155,14 @@ build/%.mips.stripped: build/%.mips $(tasks)/build_linker ifdef DO_JAVASOURCE build/%.java: build/%.mips build/org/ibex/nestedvm/JavaSourceCompiler.class - $(JAVA) -cp $(classpath) org.ibex.nestedvm.Compiler -outformat javasource $(compiler_flags) $($(notdir $*)_COMPILERFLAGS) $(subst /,.,$*) $< > build/$*.java + $(JAVA) -cp "$(classpath)" org.ibex.nestedvm.Compiler -outformat javasource $(compiler_flags) $($(notdir $*)_COMPILERFLAGS) $(subst /,.,$*) $< > build/$*.java build/%.class: build/%.java build/org/ibex/nestedvm/Runtime.class $(JAVAC) $(JAVAC_NODEBUG_FLAGS) -classpath build -d build $< else build/%.class: build/%.mips build/org/ibex/nestedvm/ClassFileCompiler.class - $(JAVA) -cp $(classpath) org.ibex.nestedvm.Compiler -outformat class -outfile $@ $(compiler_flags) $($(notdir $*)_COMPILERFLAGS) $(subst /,.,$*) $< + $(JAVA) -cp "$(classpath)" org.ibex.nestedvm.Compiler -outformat class -outfile $@ $(compiler_flags) $($(notdir $*)_COMPILERFLAGS) $(subst /,.,$*) $< endif @@ -187,7 +189,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" @@ -212,21 +214,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 $@` @@ -348,7 +360,7 @@ build/tests/BusyBox.mips: $(tasks)/build_busybox cp upstream/build/busybox/busybox $@ busyboxtest: build/tests/BusyBox.class - $(JAVA) -Dnestedvm.busyboxhack=true -cp $(classpath) tests.BusyBox ash + $(JAVA) -Dnestedvm.busyboxhack=true -cp "$(classpath)" tests.BusyBox ash # # Boehm GC @@ -432,6 +444,23 @@ compiletests: $(patsubst %,build/tests/%.class,FTBench MSPackBench DJpeg Test Fr @true +# +# Darcs stuff +# + +commit: + @if [ -d _darcs ]; then darcs push; \ + else echo "You need darcs to commit"; false; \ + fi + +update: + @if [ -d _darcs ]; then darcs pull; \ + else wget -nH -rl 16 -N -X _darcs http://nestedvm.darcs.brianweb.net; \ + fi + +# +# Paper stuff +# charts := $(shell find doc/charts -name \*.dat) # IVME Paper