X-Git-Url: http://git.megacz.com/?p=org.ibex.core.git;a=blobdiff_plain;f=Makefile;h=9ca6dea453dc2cc7dd1e211eceb2bd98b336669c;hp=88801025ed9d3ee4fe1d3612db0c79cdd48d6f7f;hb=281809f6b87f0abc7b944795c05b1131a4495895;hpb=926fe7b5464f609d0b6f26572488b756428e93ec diff --git a/Makefile b/Makefile index 8880102..9ca6dea 100644 --- a/Makefile +++ b/Makefile @@ -18,12 +18,12 @@ target := $(target_$(platform)) all: Java2 Linux Win32 Darwin Solaris -clean: ; rm -rf build; rm build/class/org/ibex/util/Preprocessor.class +clean: ; rm -rf build dist-clean: rm -rf .configure* .install* build .compile .build* - find upstream -name config.cache -exec rm {} \; + find upstream -name config.cache -exec rm -f {} \; test -e upstream/org.ibex.nestedvm && make -C upstream/org.ibex.nestedvm clean - rm .install_org.ibex.nestedvm + rm -f .install_org.ibex.nestedvm libwing_Linux := -Lupstream/install/i686-pc-linux-gnu/lib/ libwing_Linux += upstream/install/i686-pc-linux-gnu/lib/libWINGs.a @@ -101,17 +101,15 @@ plat_classes_Solaris := org.ibex.plat.Solaris $(plat_classes_X11) plat_classes_Darwin := org.ibex.plat.Darwin org.ibex.plat.OpenGL $(plat_classes_POSIX) plat_java_src_sources := $(patsubst %,build/java/%.java,$(subst .,/,$(plat_classes_$(platform)))) -java_src_sources := $(shell find src -name '*.java' | grep -v Preprocessor | grep -v /plat/) +java_src_sources := $(shell find src -name '*.java' | grep -v NanoGoat | grep -v Preprocessor | grep -v /plat/) java_src_sources += $(plat_java_src_sources) java_sources := $(patsubst src/%.java, build/java/%.java, $(java_src_sources)) -java_sources += build/java/org/xwt/mips/util/SeekableByteArray.java -java_sources += build/java/org/xwt/mips/util/SeekableData.java -java_sources += build/java/org/xwt/mips/util/SeekableFile.java -java_sources += build/java/org/xwt/mips/util/SeekableInputStream.java -java_sources += build/java/org/xwt/mips/Registers.java -java_sources += build/java/org/xwt/mips/Runtime.java -java_sources += build/java/org/xwt/mips/UsermodeConstants.java +java_sources += build/java/org/ibex/nestedvm/util/Seekable.java +java_sources += build/java/org/ibex/nestedvm/util/Platform.java +java_sources += build/java/org/ibex/nestedvm/Registers.java +java_sources += build/java/org/ibex/nestedvm/Runtime.java +java_sources += build/java/org/ibex/nestedvm/UsermodeConstants.java java_sources += build/java/org/ibex/crypto/DER.java java_sources += build/java/org/ibex/crypto/Digest.java @@ -159,23 +157,20 @@ java_classes := $(java_sources:build/java/%.java=build/class/%.clas java_classes += build/class/gnu/regexp/CharUnit.class build/class/gnu/regexp/IntPair.class java_classes += build/class/org/ibex/util/MIPSApps.class -.PRECIOUS: $(java_classes) $(java_sources) *.java upstream/org.ibex.crypto/src/org/ibex/crypto/DER.java - ### Java Source Files ############################################################################## -upstream/org.ibex.crypto/%.java:; @make .download_org.ibex.crypto -upstream/org.ibex.nestedvm/%.java:; @make .download_org.ibex.nestedvm -link_upstream = build/java/$(1): $(2)/$(1); -link_upstream += @echo -e "\033[1mlinking .java -> .java: $$@\033[0m"; -link_upstream += mkdir -p $$(@D); ln -fs `echo $$(@D)/ | sed 's_[^/]*//*_../_g'`/$$< $$@ +$(java_sources):: .download_org.ibex.crypto .download_org.ibex.nestedvm .download_gnu.regexp-1.1.4 +link_upstream = build/java/$(1):: $(2)/$(1) $(3); \ + @echo -e "\033[1mlinking .java -> .java: $$@\033[0m"; \ + mkdir -p $$(@D); ln -fs `echo $$(@D)/ | sed 's_[^/]*//*_../_g'`/$$< $$@ build/cc/%.cc: src/%.c ; @echo linking $@; mkdir -p $(@D); ln -fs `echo $(@D)/ | sed 's_[^/]*//*_../_g'`/$< $@ build/res/%: src/% ; @echo linking $@; mkdir -p $(@D); ln -fs `echo $(@D)/ | sed 's_[^/]*//*_../_g'`/$< $@ -$(call link_upstream,org/xwt/mips/%.java,upstream/org.ibex.nestedvm/src,.download_org.ibex.nestedvm) +$(call link_upstream,org/ibex/nestedvm/%.java,upstream/org.ibex.nestedvm/src,.download_org.ibex.nestedvm) $(call link_upstream,org/ibex/crypto/%.java,upstream/org.ibex.crypto/src,.download_org.ibex.crypto) $(call link_upstream,org/ibex/net/ssl/%.java,upstream/org.ibex.crypto/src,.download_org.ibex.crypto) $(call link_upstream,org/ibex/net/SSL.java,upstream/org.ibex.crypto/src,.download_org.ibex.crypto) $(call link_upstream,gnu/regexp/%.java,upstream/gnu.regexp-1.1.4/src/src) -build/java/org/ibex/%.java: src/org/ibex/%.java build/class/org/ibex/util/Preprocessor.class +build/java/org/ibex/%.java: src/org/ibex/%.java .download_gnu.regexp-1.1.4 build/class/org/ibex/util/Preprocessor.class @echo -e "\033[1mpreprocessing .java -> .java: $<\033[0m" mkdir -p `dirname $@`; java -cp build/class:upstream/gnu.regexp-1.1.4/src/src org.ibex.util.Preprocessor < $< > $@ $(call link_upstream,%.java,src) @@ -189,16 +184,18 @@ build/class/org/ibex/util/Preprocessor.class: src/org/ibex/util/Preprocessor.jav $(javac) $< src/org/ibex/util/Vec.java upstream/gnu.regexp-1.1.4/src/src/gnu/regexp/*.java compile: .compile -.compile: .download_org.ibex.nestedvm .download_bcel-5.1 .download_gnu.regexp-1.1.4 $(java_sources) +.compile: $(java_sources) @echo -e "\n\033[1mcompiling .java -> .class\033[0m" @echo $(java_sources) | tr ' ' '\n' | sed 's_build/java/_ _' | sed 's_/_._g' | sed 's_.java$$__g' + @make -s $(java_sources) $(javac) $(java_sources) + touch $@ build/class/org/ibex/util/MIPSApps.class: build/mips/mipsapps.mips .install_org.ibex.nestedvm @mkdir -p build/java/org/ibex/util @echo -e "\n\033[1mtranslating .mips -> .class: $<\033[0m" - java -cp upstream/org.ibex.nestedvm/build:upstream/org.ibex.nestedvm/upstream/build/bcel-5.1/bcel-5.1.jar \ - org.xwt.mips.Compiler org.ibex.util.MIPSApps $< -outfile $@ + java -cp upstream/org.ibex.nestedvm/build:upstream/org.ibex.nestedvm/upstream/build/classgen/build \ + org.ibex.nestedvm.Compiler org.ibex.util.MIPSApps $< -outfile $@ build/Java2/ibex.jar: compile build/res/builtin.jar build/class/org/ibex/util/MIPSApps.class @echo -e "\n\033[1marchiving .class -> .jar: build/Java2/ibex.jar\033[0m" @@ -249,7 +246,7 @@ ifneq ($(platform),Darwin) ($(nm) $(nat_libjava_files) build/$(platform)/org/ibex/plat/$(platform).cc.o; echo org.ibex.plat.$(platform).main) |\ grep _ZN | c++filt --format java | grep " U " | sed 's_ * U __' | sed 's_(.*__' \ | java -cp $(bcel_jar):build/class org.ibex.util.NanoGoat build/$(platform)/ibex.jar | tee nanogoat.log - mkdir tmp; cd tmp; fastjar xvf ../build/$(platform)/ibex.jar.pruned; rm gnu/gcj/runtime/FirstThread*; cp ../build/class/org/ibex/plat/GCJ* org/ibex/plat/; cp -r ../build/class/org/xwt/mips/* org/xwt/mips/; mkdir -p $(shell pwd)/build/$(platform)/java/lang; mv java/lang/Class.class $(shell pwd)/build/$(platform)/java/lang; fastjar cvf ../build/$(platform)/ibex.jar.pruned .; cd ..; rm -rf tmp + mkdir tmp; cd tmp; fastjar xvf ../build/$(platform)/ibex.jar.pruned; rm gnu/gcj/runtime/FirstThread*; cp ../build/class/org/ibex/plat/GCJ* org/ibex/plat/; cp -r ../build/class/org/ibex/nestedvm/* org/ibex/nestedvm/; mkdir -p $(shell pwd)/build/$(platform)/java/lang; mv java/lang/Class.class $(shell pwd)/build/$(platform)/java/lang; fastjar cvf ../build/$(platform)/ibex.jar.pruned .; cd ..; rm -rf tmp mv build/$(platform)/ibex.jar.pruned $@ endif ifeq ($(platform),Darwin) @@ -388,8 +385,8 @@ build/mips/mipsapps.mips: build/mips/org/ibex/graphics/Freetype.c.o build/mips/o upstream/install/bin/mips-unknown-elf-gcc \ --static \ -march=mips1 \ - -T upstream/org.ibex.nestedvm/src/org/xwt/mips/linker.ld \ - -L upstream/org.ibex.nestedvm/build/org/xwt/mips/ \ + -T upstream/org.ibex.nestedvm/src/org/ibex/nestedvm/linker.ld \ + -L upstream/org.ibex.nestedvm/build/org/ibex/nestedvm/ \ -L upstream/freetype-2.1.4/src/objs \ -L upstream/libmspack-20030726/build-mips-unknown-elf/ \ -o $@ \ @@ -429,8 +426,12 @@ propose-patch: commit: propose-patch darcs push xwt@xwt.org:/var/www/org/ibex/core/ -doc/%.pdf: build/class/org/ibex/util/XML.class build/class/org/ibex/util/Doc.class doc/%.xml - cd $(@D); java -cp ../../build/class org.ibex.util.Doc slides < `basename $*`.xml > `basename $*`.tex - cd $(@D); pdflatex `basename $*`.tex - open doc/$*.pdf - +upstream/org.ibex.doc/src/org/ibex/doc/Doc.java: .download_org.ibex.doc +build/class/org/ibex/doc/Doc.class: upstream/org.ibex.doc/src/org/ibex/doc/Doc.java + $(javac) upstream/org.ibex.doc/src/org/ibex/doc/Doc.java +doc/%.pdf: build/class/org/ibex/util/XML.class build/class/org/ibex/doc/Doc.class + cd doc/$*; java -cp ../../build/class org.ibex.doc.Doc < $*.xml > $*.tex + cd doc/$*; pdflatex $*.tex + mv doc/$*/$*.pdf doc/$*.pdf + test `uname` == Darwin && open doc/$*.pdf +reference: ; rm -f doc/reference.pdf; make doc/reference.pdf \ No newline at end of file