2003/09/15 20:24:41
authormegacz <megacz@xwt.org>
Fri, 30 Jan 2004 07:35:34 +0000 (07:35 +0000)
committermegacz <megacz@xwt.org>
Fri, 30 Jan 2004 07:35:34 +0000 (07:35 +0000)
darcs-hash:20040130073534-2ba56-4ced5efdd57c2c915f378953bfa82bcd0fecc37c.gz

Makefile

index e68926d..0bfa5ea 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -33,6 +33,7 @@ gcc_optimizations      := -O2
 gcc_flags              := -nostdinc $(gcc_optimizations) -Ibuild/h -Iupstream/jpeg-6b/src/ -Iupstream/jpeg-6b/build-$(target)/
 gcj_flags              := -fCLASSPATH=build/java
 gcj                    := upstream/install/bin/$(target)-gcj $(gcc_flags) $(gcj_flags)
+gcjh                   := $(shell test -e `pwd`/upstream/install/bin/$(target)-gcjh && echo `pwd`/upstream/install/bin/$(target)-gcjh || echo `pwd`/upstream/install/bin/gcjh)
 g++                    := upstream/install/bin/$(target)-gcj $(gcc_flags)
 gcc                    := upstream/install/bin/$(target)-gcc $(gcc_flags)
 jar                    := $(shell ((type fastjar &>/dev/null) && echo fastjar) || echo jar)
@@ -89,7 +90,7 @@ build/h/%.h: build/class/%.class .compile
        @echo -e "\n\033[1mextracting        .class -> .h:     $<\033[0m"
        mkdir -p `dirname $@`
        ls `echo $< | sed s/.class\$$//`*.class |\
-                sed s_build/class/__ | sed s/.class\$$//g | sed s_/_._g | (cd build/class; xargs ../../upstream/install/bin/$(target)-gcjh -d ../h --classpath .)
+                sed s_build/class/__ | sed s/.class\$$//g | sed s_/_._g | (cd build/class; xargs $(gcjh) -d ../h --classpath .)
 
 # a hack since we've disabled gcj's awt implementation
 build/$(platform)/org/xwt/plat/Java2.java.o:
@@ -118,7 +119,7 @@ jpeg_sources    += jdhuff.c jdphuff.c jddctmgr.c jidctint.c jidctfst.c jidctflt.
 jpeg_sources    += jquant1.c jquant2.c jerror.c jutils.c jmemnobs.c jmemmgr.c
 
 upstream/jpeg-6b/build-$(target)/libjpeg.a: .install_jpeg-6b_$(target)
-$(target_bin): upstream/jpeg-6b/build-$(target)/libjpeg.a $(java_sources:build/java/%.java=build/$(platform)/%.java.o) build/$(platform)/org/xwt/plat/$(platform).cc.o
+$(target_bin): upstream/jpeg-6b/build-$(target)/libjpeg.a $(java_sources:build/java/%.java=build/$(platform)/%.java.o) build/$(platform)/org/xwt/plat/$(platform).cc.o build/$(platform)/org/xwt/builtin.res.o build/$(platform)/freetype.res.o
        @echo -e "\n\033[1mlinking               .o -> $(target_bin)\033[0m"
        mkdir -p build/$(platform)
        PATH=upstream/install/bin:$$PATH $(gcj) -v --main=org.xwt.Main -o build/$(platform)/$(target_bin) $^ $(jpeg_sources:%.c=upstream/jpeg-6b/build-$(target)/%.o) -Lupstream/install/$(target)/lib $(link_flags)
@@ -128,25 +129,45 @@ $(target_bin): upstream/jpeg-6b/build-$(target)/libjpeg.a $(java_sources:build/j
 # Special treatment:
 #
 
-#build/java/org/xwt/Builtin.java: $(shell ls src/org/xwt/builtin/*.png src/org/xwt/builtin/*.xwt src/org/xwt/builtin/*.xwf)
-#      @mkdir -p `dirname $@` build build/java build/class build/h build
-#      echo -e "\n\033[1mzipping/uuencoding  .xwt -> .java:  build/java/org/xwt/Builtin.java\033[0m"
-#      echo "package org.xwt;"                  >  build/java/org/xwt/Builtin.java
-#      echo "class Builtin {"                   >> build/java/org/xwt/Builtin.java
-#      echo "public static String encoded = "   >> build/java/org/xwt/Builtin.java
-#      cd src; $(jar) cf ../.builtin.xwar $(^:src/%=%)
-#      mimencode .builtin.xwar | sed s_.\*_\"\\0\"\ +_ >> build/java/org/xwt/Builtin.java
-#      echo "\"\"; }"                           >> build/java/org/xwt/Builtin.java
+build/xwar/org/xwt/builtin.xwar: $(shell ls src/org/xwt/builtin/*.*)
+       @echo -e "\n\033[1mzipping                * -> .xwar: builtin.xwar\033[0m"
+       mkdir -p build/xwar
+       cd src; $(jar) cvf ../build/xwar/builtin.xwar org/xwt/builtin
+
+build/$(platform)/builtin.res.o: build/xwar/org/xwt/builtin.xwar
+       @echo -e "\n\033[1mwrapping           .xwar -> .o: builtin.res.o\033[0m"
+       @(echo "unsigned int builtin_xwar_length = ";                           \
+               (wc -c build/xwar/org/xwt/builtin.xwar | sed "s_bin.*__");      \
+               echo \;;                                                        \
+               echo "unsigned char builtin_xwar[] = {";                        \
+               hexdump -ve '"0x" 1/1 "%x,\n"' build/xwar/org/xwt/builtin.xwar; \
+               echo "};") > .builtin.c
+       $(gcc) -c .builtin.c -o build/$(platform)/org/xwt/builtin.res.o
+
+build/$(platform)/freetype.res.o: build/mips/org/xwt/freetype.mips
+       @echo -e "\n\033[1mwrapping           .mips -> .o: freetype.res.o\033[0m"
+       @(echo "unsigned int freetype_mips_length = ";                           \
+               (wc -c build/mips/freetype.mips | sed "s_bin.*__");              \
+               echo \;;                                                         \
+               echo "unsigned char freetype_mips[] = {";                        \
+               hexdump -ve '"0x" 1/1 "%x,\n"' build/mips/freetype.mips;         \
+               echo "};") > .freetype.c
+       $(gcc) -c .freetype.c -o build/$(platform)/freetype.res.o
 
 
 # compile is here to force compilation of the .class files (they get used via -Ibuild) without
 # having the individual .o's depend on the .java's (otherwise every .o gets recompiled when one .java changes)
 gcj: .compile .vendor .install_gcc-3.3_$(target) $(target_bin)
-build/JVM/xwt.jar: .compile
+
+build/JVM/xwt.jar: .compile build/xwar/org/xwt/builtin.xwar build/mips/freetype.mips
        @echo -e "\n\033[1marchiving         .class -> .jar:   build/JVM/xwt.jar\033[0m"
        mkdir -p build/JVM
        echo -e "Manifest-Version: 1.0\nMain-Class: org.xwt.Main\n" > build/JVM/.manifest
-       cd build/class; $(jar) cfm ../JVM/xwt.jar ../JVM/.manifest `find . -name \*.class`;
+       cd build/class/org/xwt/; ln -s ../../../xwar/org/xwt/builtin.xwar  # HACK
+       cd build/class/org/xwt/; ln -s ../../../mips/freetype.mips         # HACK
+       cd build/class; $(jar) cfm ../JVM/xwt.jar ../JVM/.manifest `find .`;
+       rm build/class/org/xwt/builtin.xwar
+       rm build/class/org/xwt/freetype.mips
 
 
 
@@ -176,11 +197,6 @@ build/mips/freetype.mips: build/mips/org/xwt/imp/Freetype.c.o build/mips/org/xwt
                --strip \
                -lfreetype
 
-#build/java/org/xwt/imp/Freetype.java: build/mips/freetype.mips build/class/org/xwt/imp/MIPS.class
-#      @echo -e "\n\033[1mtranslating        .mips -> .java:  $@\033[0m"
-#      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