2003/09/04 05:04:04
authormegacz <megacz@xwt.org>
Fri, 30 Jan 2004 07:04:37 +0000 (07:04 +0000)
committermegacz <megacz@xwt.org>
Fri, 30 Jan 2004 07:04:37 +0000 (07:04 +0000)
darcs-hash:20040130070437-2ba56-71f2c1927db82cfd4b994e1276d488cd2b719ab8.gz

Makefile
upstream/Makefile

index b984de7..222199b 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -41,9 +41,9 @@ jar                    := $(shell ((type fastjar &>/dev/null) && echo fastjar) |
 
 
 # PHASE 1a: human-written inputs
-handwritten_java_sources      := $(find src -name \*.java)
-handwritten_java_pp_sources   := $(find src -name \*.java.pp)
-handwritten_mips_sources      := $(find src -name \*.mips.c)
+handwritten_java_sources      := $(shell find src -name \*.java)
+handwritten_java_pp_sources   := $(shell find src -name \*.java.pp)
+handwritten_mips_sources      := $(shell find src -name \*.mips.c)
 handwritten_cc_sources        := src/org/xwt/plat/$(platform).cc
 handwritten_c_sources         := $(jpeg_c_sources:%.c=src/org/ijg/%.c)
 handwritten_xwar_sources      := $(shell ls src/org/xwt/builtin/*.png src/org/xwt/builtin/*.xwt src/org/xwt/builtin/*.xwf)
@@ -74,22 +74,29 @@ java_sources    := $(handwritten_java_sources:src/%.java=build/java/%.java)
 java_sources    += $(handwritten_java_pp_sources:src/%.java.pp=build/java/%.java)
 java_sources    += $(handwritten_mips_sources:src/%.mips.c=build/java/%.java)
 java_sources    += build/java/org/xwt/Builtin.java
-build/java/%.java:: src/%.java
-       @mkdir -p `dirname $@`;                  \
+$(handwritten_java_sources:src/%.java=build/java/%.java): build/java/%.java: src/%.java
+       @echo "symlinking                    :     $<"
+       @mkdir -p `dirname $@`;  \
        cd `dirname $@`;                        \
        A=`echo $@ | sed 's_[^/]*/_../_g'`;     \
        B=`dirname $$A`;                        \
        C=$$B/$<;                               \
-       ln -s $$C       
+       ln -s $$C
 
 
 # PHASE 3: class files
 class_files           := $(java_sources:build/java/%.java=build/class/%.class)
-class_files           += build/class/org/xwt/imp/Freetype.class build/class/org/xwt/imp/MIPS.class
+class_files           += build/class/org/xwt/imp/Freetype.class
+
 $(class_files): build/class/%.class: build/java/%.java upstream/.jikes
-       @$(shell cat upstream/.jikes) -classpath lib/libgcj-minimal.jar $< -d build/class/ 2>&1 | \
-               grep -v ^\\[read | sed s_^\\[write\ build/class/__ | sed s_.class\\]_.java_ | sed "s_^_compiling          .java -> .class: src/_"
+       @echo "compiling          .java -> .class: $<"
+       @mkdir -p build/class
+       @upstream/.jikes $<
 
+compile: $(java_sources)
+       @echo "compiling          .java -> .class: src/**/*.java"
+       @mkdir -p build/class
+       @upstream/.jikes $(java_sources)
 
 # PHASE 4: gcj-generated headers
 java_headers          := $(build_java_sources:build/java/%.java=build/h/%.h)
@@ -128,7 +135,7 @@ $(target_bin): $(objects)
 # Special treatment:
 #
 
-build/java/org/xwt/Builtin.java: $(handwritten_xwar_sources)
+build/java/org/xwt/Builtin.java:: $(handwritten_xwar_sources)
        @mkdir -p `dirname $@` build build/java build/class build/h build
        @echo "zipping/uuencoding  .xwt -> .java:  build/java/org/xwt/Builtin.java"
        @echo "package org.xwt;"                  >  build/java/org/xwt/Builtin.java
@@ -143,16 +150,17 @@ postprocessed_sources   := $(handwritten_java_pp_sources:src/%.pp=build/java/%)
 $(postprocessed_sources):  build/java/%.java: src/%.java.pp build/class/org/xwt/util/Preprocessor.class
        @echo "preprocessing   .java.pp -> .java:  $<"
        @mkdir -p `dirname $@`
-       @java -cp build org.xwt.util.Preprocessor < $< > $@
+       @rm -f $@
+       @java -cp build/class org.xwt.util.Preprocessor < $< > $@
 
 build/java/org/xwt/imp/Freetype.java:: build/mips/freetype.mips build/class/org/xwt/imp/MIPS.class
-       @echo "translating        .mips -> .java:  $<"
+       @echo "translating        .mips -> .java:  $@"
        @mkdir -p build/java/org/xwt/imp/
        @rm -f $@
        @java -cp build/class org.xwt.imp.MIPS org.xwt.imp.Freetype build/mips/freetype.mips > build/java/org/xwt/imp/Freetype.java
 
 build/mips/freetype.mips: $(freetype_mips_objects)
-       @echo "compiling             .c -> .mips:  $<"
+       @echo "compiling             .c -> .mips:  $@"
        @mkdir -p build/mips
        @make -sC upstream newlib-1.11.0/src newlib-1.11.0/build-mips/.installed gcc-3.3-mips freetype-2.1.4/src .headers target=mips
        @$(gcc_path)/bin/mips-gcc \
@@ -192,14 +200,15 @@ Win32:
 Carbon:
        @make gcj platform=Carbon arget=powerpc-apple-darwin platform_link="$(gcc_path)/lib/libgcj.a -Xlinker -framework -Xlinker Carbon" platform_java_sources="POSIX Carbon"
 
-JVM: compile $(class_files)
+JVM: compile
        @echo -e "\\n=== JVM ========================================="
-       @echo "archiving         .class -> .jar"
+       @echo "archiving         .class -> .jar:  build/JVM/xwt.jar"
        @mkdir -p build/JVM
        @echo -e "Manifest-Version: 1.0\nMain-Class: org.xwt.Main\n" > build/JVM/.manifest
        @cd build/class; $(jar) cvfm ../JVM/xwt.jar ../JVM/.manifest \
                `find . -name \*.class | grep -v org/xwt/plat/` \
-               org/xwt/plat/AWT*.class org/xwt/plat/Java2*.class | tr \\012 \\015
+               org/xwt/plat/AWT*.class org/xwt/plat/Java2*.class | tr \\012 \\015 | \
+               sed '_$$_                                                   _'
        @echo
 
 
@@ -311,13 +320,6 @@ dist-private:
        echo "*** DONE ******************************************"
 
 
-compile: upstream/.jikes $(java_sources) build/class/org/xwt/imp/Freetype.class
-       echo "compiling          .java -> .class: src/**/*.java"
-       mkdir -p build
-       cp build/class/org/xwt/imp/MIPS.class build/class/org/xwt/imp/MIPS.class.old
-       $(shell cat upstream/.jikes) -classpath lib/libgcj-minimal.jar $(java_sources) -d build/ 2>&1 | \
-               grep -v ^\\[read | sed s_^\\[write\ build/__ | sed s_.class\\]_.java_ | sed "s_^_compiling          .java -> .class: src/_"
-       cmp build/class/org/xwt/imp/MIPS.class build/class/org/xwt/imp/MIPS.class.old && mv build/class/org/xwt/imp/MIPS.class.old build/class/org/xwt/imp/MIPS.class
 
 
 
index c6d1e96..1003abd 100644 (file)
@@ -28,15 +28,21 @@ configure_gcc-3.3-mips                  := --enable-languages=c --nfp --with-new
 
 # jikes has a special target to autodetect a pre-installed jikes, and to autodetect the JVM's $CLASSPATH
 .jikes:
-       echo "jikes " > .jikes
-       (type jikes && (jikes --version | grep "Version 1.18")) || \
-               (make jikes-1.18/src jikes-1.18/.installed && echo -n "upstream/install/bin/jikes " > .jikes)
+       echo "#!/bin/sh" > .jikes
+       echo 'for A in `find build/class -name \*.class`; do mv $$A $$A.old; done;' >> .jikes
+       echo -n 'PATH=$$PATH:upstream/install/bin/ jikes -classpath lib/libgcj-minimal.jar $$@ -d build/class/ -sourcepath build/java/ ' >> .jikes
+       (type jikes && (jikes --version | grep "Version 1.18")) || make jikes-1.18/src jikes-1.18/.installed
        echo -n "$(jikes_flags) -bootclasspath " >> .jikes
        echo "public class GetBootClassPath { public static void main(String[] s) { " > GetBootClassPath.java
        echo "System.out.println(System.getProperty(\"sun.boot.class.path\")); } }"  >> GetBootClassPath.java
        javac GetBootClassPath.java
        java -cp . GetBootClassPath >> .jikes
        rm GetBootClassPath.*
+       echo 'EXIT=$$?' >> .jikes
+       echo 'for A in `find build/class -name \*.class`; do test -e $$A.old && cmp -s $$A $$A.old && mv $$A.old $$A; done' >> .jikes
+       echo 'for A in `find build/class -name \*.class`; do test -e $$A.old && rm $$A.old; done' >> .jikes
+       echo 'exit $$EXIT' >> .jikes
+       chmod +x .jikes
 
 # make the package's directory (if it doesn't exist)
 $(packages):