X-Git-Url: http://git.megacz.com/?p=nestedvm.git;a=blobdiff_plain;f=Makefile;h=7f3032497c01a4f92fe676ceaa5aa4201a1eb343;hp=a24c22316e6273f1c8de05652d05a6a537d925da;hb=ae52817e5cb153f781b76f5d525e127f217b5482;hpb=8f29829b18589115f1521830dbfa0e25fd3685ec diff --git a/Makefile b/Makefile index a24c223..7f30324 100644 --- a/Makefile +++ b/Makefile @@ -1,13 +1,11 @@ - # +.SECONDARY: + +# # What to build # # Java sources that are part of the compiler/interpreter -java_sources = $(wildcard src/org/xwt/mips/*.java) $(wildcard src/org/xwt/mips/util/*.java) - -# Java sources that are part of the compiler/interpreter that are -# generated from other sources -java_gen_sources = $(patsubst %,build/org/xwt/mips/%.java, UsermodeConstants) +java_sources = $(wildcard src/org/ibex/nestedvm/*.java) $(wildcard src/org/ibex/nestedvm/util/*.java) # C sources that are part of the compiler/interpreter mips_sources = crt0.c support_aux.c @@ -38,8 +36,8 @@ mips_optflags = -O3 -g \ MIPS_CFLAGS = $(mips_optflags) $(flags) -I. -Wall -Wno-unused -Werror MIPS_LD = mips-unknown-elf-gcc MIPS_LDFLAGS= \ - $(flags) -L$(build)/org/xwt/mips --static \ - -T $(mips2java_root)/src/org/xwt/mips/linker.ld -Wl,--gc-sections + $(flags) -L$(build)/org/ibex/nestedvm --static \ + -T $(mips2java_root)/src/org/ibex/nestedvm/linker.ld -Wl,--gc-sections MIPS_STRIP = mips-unknown-elf-strip # Java compiler/VM settings @@ -59,15 +57,11 @@ EXE_EXT = ##### -java_classes = \ - $(java_sources:src/%.java=build/%.class) \ - $(java_gen_sources:%.java=%.class) - -mips_objects = $(mips_sources:%.c=build/org/xwt/mips/%.o) $(mips_asm_sources:%.s=build/org/xwt/mips/%.o) - -.SECONDARY: +java_classes = $(java_sources:src/%.java=build/%.class) +mips_objects = $(mips_sources:%.c=build/org/ibex/nestedvm/%.o) $(mips_asm_sources:%.s=build/org/ibex/nestedvm/%.o) -PATH := $(mips2java_root)/upstream/install/bin:$(PATH) +usr = $(mips2java_root)/upstream/install +PATH := $(usr)/bin:$(PATH) export PATH # @@ -79,15 +73,15 @@ all: build/mips2java$(EXE_EXT) $(mips_objects) endif $(tasks)/%: - $(MAKE) -C upstream tasks/$* MIPS_LDFLAGS="$(MIPS_LDFLAGS)" MIPS_CFLAGS="$(flags) $(mips_optflags)" + $(MAKE) -C upstream tasks/$* usr="$(usr)" MIPS_LDFLAGS="$(MIPS_LDFLAGS)" MIPS_CFLAGS="$(flags) $(mips_optflags)" upstream_clean_%: - $(MAKE) -C upstream clean_$* + $(MAKE) -C upstream clean_$* usr="$(usr)" -errno_h = upstream/install/mips-unknown-elf/include/sys/errno.h +errno_h = $(usr)/mips-unknown-elf/include/sys/errno.h $(errno_h): $(tasks)/build_newlib -unistd_h = upstream/install/mips-unknown-elf/include/sys/unistd.h +unistd_h = $(usr)/mips-unknown-elf/include/sys/unistd.h $(unistd_h): $(tasks)/build_newlib # @@ -96,33 +90,23 @@ $(unistd_h): $(tasks)/build_newlib # This works around a gcj -C bug ifeq ($(firstword $(JAVAC)),gcj) -build/org/xwt/mips/util/.Dummy.class: +build/org/ibex/nestedvm/util/.Dummy.class: mkdir -p `dirname $@` touch $@ -$(java_classes): build/org/xwt/mips/util/.Dummy.class +$(java_classes): build/org/ibex/nestedvm/util/.Dummy.class endif -$(java_classes): $(tasks)/unpack_bcel $(java_sources) $(java_gen_sources) - $(JAVAC) -classpath $(CLASSPATH) -d build $(java_sources) $(java_gen_sources) +$(java_classes): $(java_sources) $(bcel_jar) + $(JAVAC) -classpath $(classpath) -d build $(java_sources) -build/org/xwt/mips/UsermodeConstants.java: src/org/xwt/mips/syscalls.h $(errno_h) $(unistd_h) - @mkdir -p `dirname $@` - cat $^ | ( \ - echo "package org.xwt.mips;"; \ - echo "public interface UsermodeConstants {"; \ - tr '\t' ' ' | sed -n ' \ - s/ */ /g; \ - s/ *# *define \([A-Z_][A-Za-z0-9_]*\) \([0-9][0-9x]*\)/ public static final int \1 = \2;/p'; \ - echo "}"; \ - ) > $@ - $(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) @mkdir -p `dirname $@` - $(GCJ) -s -o $@ --main=org.xwt.mips.Compiler $(java_sources) $(java_gen_sources) + $(GCJ) -s -o $@ --main=org.ibex.nestedvm.Compiler $(java_sources) $(java_gen_sources) # # MIPS Binary compilation @@ -152,15 +136,15 @@ build/%.mips.stripped: build/%.mips # MIPS Compiler generated class compilation ifdef DO_JAVASOURCE -build/%.java: build/%.mips build/org/xwt/mips/JavaSourceCompiler.class $(tasks)/unpack_bcel - $(JAVA) -cp $(CLASSPATH) org.xwt.mips.Compiler -outformat javasource $(compiler_flags) $($(notdir $*)_COMPILERFLAGS) $(subst /,.,$*) $< > build/$*.java +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 -build/%.class: build/%.java build/org/xwt/mips/Runtime.class +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/xwt/mips/ClassFileCompiler.class $(tasks)/unpack_bcel - $(JAVA) -cp $(CLASSPATH) org.xwt.mips.Compiler -outformat class -outfile $@ $(compiler_flags) $($(notdir $*)_COMPILERFLAGS) $(subst /,.,$*) $< +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 /,.,$*) $< endif @@ -170,18 +154,19 @@ build/%.class: src/%.java $(JAVAC) -classpath build -d build $< clean: - rm -rf build/tests build/org/xwt/mips *.jar build/mips2java$(EXE_EXT) + rm -rf build/tests build/org/ibex/nestedvm *.jar build/mips2java$(EXE_EXT) # # env.sh # -env.sh: Makefile $(tasks)/full_toolchain build/org/xwt/mips/Compiler.class $(tasks)/unpack_bcel +env.sh: Makefile $(tasks)/full_toolchain build/org/ibex/nestedvm/Compiler.class @rm -f "$@~" - @echo 'PATH="$(mips2java_root)/build:$(mips2java_root)/upstream/install/bin:$$PATH"; export PATH' >> $@~ + @echo 'PATH="$(mips2java_root)/build:$(usr)/bin:$$PATH"; export PATH' >> $@~ @echo 'CC=mips-unknown-elf-gcc; export CC' >> $@~ @echo 'CXX=mips-unknown-elf-g++; export CXX' >> $@~ @echo 'AS=mips-unknown-elf-as; export AS' >> $@~ - @echo 'LD=mips-unknown-elf-ar; export LD' >> $@~ + @echo 'AR=mips-unknown-elf-ar; export AR' >> $@~ + @echo 'LD=mips-unknown-elf-ld; export LD' >> $@~ @echo 'RANLIB=mips-unknown-elf-ranlib; export RANLIB' >> $@~ @echo 'CFLAGS="$(mips_optflags)"; export CFLAGS' >> $@~ @echo 'CXXFLAGS="$(mips_optflags)"; export CXXFLAGS' >> $@~ @@ -198,27 +183,40 @@ runtime_util_classes = SeekableData SeekableByteArray SeekableFile SeekableInput runtime_classes = Runtime Registers UsermodeConstants $(runtime_util_classes:%=util/%) unixruntime_classes = $(runtime_classes) UnixRuntime -runtime.jar: $(runtime_classes:%=build/org/xwt/mips/%.class) - cd build && jar cf ../$@ $(runtime_classes:%=org/xwt/mips/%*.class) - -unixruntime.jar: $(unixruntime_classes:%=build/org/xwt/mips/%.class) - cd build && jar cf ../$@ $(unixruntime_classes:%=org/xwt/mips/%*.class) - +runtime.jar: $(runtime_classes:%=build/org/ibex/nestedvm/%.class) + cd build && jar cf ../$@ $(runtime_classes:%=org/ibex/nestedvm/%*.class) +unixruntime.jar: $(unixruntime_classes:%=build/org/ibex/nestedvm/%.class) + cd build && jar cf ../$@ $(unixruntime_classes:%=org/ibex/nestedvm/%*.class) +# This is only for Brian to use... don't mess with it +rebuild-constants: src/org/ibex/nestedvm/syscalls.h $(errno_h) $(unistd_h) + @mkdir -p `dirname $@` + cat $^ | ( \ + echo "// THIS FILE IS AUTOGENERATED! DO NOT EDIT!"; \ + echo "// run \"make rebuild-constants\" if it needs to be updated"; \ + echo ""; \ + echo "package org.ibex.nestedvm;"; \ + echo "public interface UsermodeConstants {"; \ + tr '\t' ' ' | sed -n ' \ + s/ */ /g; \ + 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 # to build or run mips2java # -build/tests/Env.class: build/org/xwt/mips/Runtime.class build/org/xwt/mips/Interpreter.class +build/tests/Env.class: build/org/ibex/nestedvm/Runtime.class build/org/ibex/nestedvm/Interpreter.class # Generic Hello Worldish test test: build/tests/Test.class $(JAVA) -cp build tests.Test "arg 1" "arg 2" "arg 3" -inttest: build/tests/Test.mips build/org/xwt/mips/Interpreter.class - $(JAVA) -cp build org.xwt.mips.Interpreter build/tests/Test.mips "arg 1" "arg 2" "arg 3" +inttest: build/tests/Test.mips build/org/ibex/nestedvm/Interpreter.class + $(JAVA) -cp build org.ibex.nestedvm.Interpreter build/tests/Test.mips "arg 1" "arg 2" "arg 3" cxxtest: build/tests/CXXTest.class $(JAVA) -cp build tests.CXXTest @@ -311,7 +309,7 @@ boehmgctest: build/tests/Env.class build/tests/GCTest.class # Speed tests # -build/tests/SpeedTest.class: build/org/xwt/mips/Runtime.class +build/tests/SpeedTest.class: build/org/ibex/nestedvm/Runtime.class tmp/thebride_1280.jpg: @mkdir -p tmp @@ -349,8 +347,8 @@ speedtest: build/tests/SpeedTest.class build/tests/DJpeg.class build/tests/FTBen echo "Run \"make check\" to get the MS True Type fonts for the MSPackBench test"; \ fi -intspeed: build/tests/DJpeg.mips build/org/xwt/mips/Interpreter.class tmp/thebride_1280.jpg - time $(JAVA) -cp build org.xwt.mips.Interpreter build/tests/DJpeg.mips -targa -outfile tmp/thebride_1280.tga tmp/thebride_1280.jpg +intspeed: build/tests/DJpeg.mips build/org/ibex/nestedvm/Interpreter.class tmp/thebride_1280.jpg + time $(JAVA) -cp build org.ibex.nestedvm.Interpreter build/tests/DJpeg.mips -targa -outfile tmp/thebride_1280.tga tmp/thebride_1280.jpg @echo "e90f6b915aee2fc0d2eb9fc60ace6203 tmp/thebride_1280.tga" | md5sum -c && echo "MD5 is OK" #