2003/09/04 07:16:50
authormegacz <megacz@xwt.org>
Fri, 30 Jan 2004 07:04:40 +0000 (07:04 +0000)
committermegacz <megacz@xwt.org>
Fri, 30 Jan 2004 07:04:40 +0000 (07:04 +0000)
darcs-hash:20040130070440-2ba56-67244bf1f02b0b9c6dca9fc55257bd37c871a36a.gz

Makefile
upstream/Makefile

index 222199b..239f18e 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -10,17 +10,18 @@ all:                   JVM Linux Win32 Java2 #Solaris
 #############################################################################
 # Configurables:
 #
 #############################################################################
 # Configurables:
 #
-target_bin             := xwt.$(shell echo $(target) | tr A-Z a-z)
+target_bin             := xwt.$(shell echo $(platform) | tr A-Z a-z)
 jikes_flags            := -verbose -nowarn -sourcepath src/
 gcc_path               := upstream/install
 gcc_optimizations      := -O2
 #gcc_optimizations      := -O9 -ffast-math -fomit-frame-pointer -foptimize-sibling-calls -finline-functions -funroll-loops -ffunction-sections -fdata-sections
 jikes_flags            := -verbose -nowarn -sourcepath src/
 gcc_path               := upstream/install
 gcc_optimizations      := -O2
 #gcc_optimizations      := -O9 -ffast-math -fomit-frame-pointer -foptimize-sibling-calls -finline-functions -funroll-loops -ffunction-sections -fdata-sections
-gcc_flags              := $(gcc_optimizations)
-gcj_flags              := -fCLASSPATH=src
+gcc_flags              := $(gcc_optimizations) -Ibuild/h
+gcj_flags              += -fCLASSPATH=build/java
 gcj                    := $(gcc_path)/bin/$(target)-gcj $(gcc_flags) $(gcj_flags)
 g++                    := $(gcc_path)/bin/$(target)-g++ $(gcc_flags)
 gcc                    := $(gcc_path)/bin/$(target)-gcc $(gcc_flags)
 gcj                    := $(gcc_path)/bin/$(target)-gcj $(gcc_flags) $(gcj_flags)
 g++                    := $(gcc_path)/bin/$(target)-g++ $(gcc_flags)
 gcc                    := $(gcc_path)/bin/$(target)-gcc $(gcc_flags)
-gcjh                   := $(gcc_path)/bin/$(target)-gcjh
+
+gcjh                   := $(gcc_path)/bin/gcjh
 as                     := $(gcc_path)/$(target)/bin/as
 ar                     := $(gcc_path)/$(target)/bin/ar
 ranlib                 := $(gcc_path)/$(target)/bin/ranlib
 as                     := $(gcc_path)/$(target)/bin/as
 ar                     := $(gcc_path)/$(target)/bin/ar
 ranlib                 := $(gcc_path)/$(target)/bin/ranlib
@@ -40,22 +41,13 @@ jar                    := $(shell ((type fastjar &>/dev/null) && echo fastjar) |
 #
 
 
 #
 
 
-# PHASE 1a: human-written inputs
-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)
-
-
-# PHASE 1b: upstream code
+# PHASE 1a: upstream code
 jpeg_c_sources    := jdapimin.c jdapistd.c jcomapi.c jcparam.c jdmaster.c jdinput.c jdmainct.c jdcoefct.c jdpostct.c jdmarker.c
 jpeg_c_sources    += jdhuff.c jdphuff.c jddctmgr.c jidctint.c jidctfst.c jidctflt.c jidctred.c jdsample.c jdcolor.c jdmerge.c
 jpeg_c_sources    += jquant1.c jquant2.c jerror.c jutils.c jmemnobs.c jmemmgr.c
 jpeg_sources      := $(jpeg_c_sources:%.c=upstream/jpeg-6b/src/%.c)
 $(jpeg_sources):
 jpeg_c_sources    := jdapimin.c jdapistd.c jcomapi.c jcparam.c jdmaster.c jdinput.c jdmainct.c jdcoefct.c jdpostct.c jdmarker.c
 jpeg_c_sources    += jdhuff.c jdphuff.c jddctmgr.c jidctint.c jidctfst.c jidctflt.c jidctred.c jdsample.c jdcolor.c jdmerge.c
 jpeg_c_sources    += jquant1.c jquant2.c jerror.c jutils.c jmemnobs.c jmemmgr.c
 jpeg_sources      := $(jpeg_c_sources:%.c=upstream/jpeg-6b/src/%.c)
 $(jpeg_sources):
-       make -sC upstream jpeg-6b/.installed
+       make -sC upstream jpeg-6b/src
 
 freetype_sources    := $(patsubst %,upstream/freetype-2.1.4/src/src/base/%,ftsystem.c ftmm.c ftbbox.c ftinit.c ftdebug.c ftbase.c ftglyph.c)
 freetype_sources    += $(patsubst %,upstream/freetype-2.1.4/src/src/%,smooth/smooth.c autohint/autohint.c sfnt/sfnt.c truetype/truetype.c)
 
 freetype_sources    := $(patsubst %,upstream/freetype-2.1.4/src/src/base/%,ftsystem.c ftmm.c ftbbox.c ftinit.c ftdebug.c ftbase.c ftglyph.c)
 freetype_sources    += $(patsubst %,upstream/freetype-2.1.4/src/src/%,smooth/smooth.c autohint/autohint.c sfnt/sfnt.c truetype/truetype.c)
@@ -69,13 +61,23 @@ $(gcc_path)/bin/$(target)-gcj:
        make -sC upstream gcc-3.3-$(target)
 
 
        make -sC upstream gcc-3.3-$(target)
 
 
+# PHASE 1b: human-written inputs
+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_sources)
+handwritten_xwar_sources      := $(shell ls src/org/xwt/builtin/*.png src/org/xwt/builtin/*.xwt src/org/xwt/builtin/*.xwf)
+
+
 # PHASE 2: ready-to-compile java files (either symlinked to phase 1a sources or else generated from them)
 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
 # PHASE 2: ready-to-compile java files (either symlinked to phase 1a sources or else generated from them)
 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
+#java_sources    += build/java/org/xwt/imp/Freetype.java
 $(handwritten_java_sources:src/%.java=build/java/%.java): build/java/%.java: src/%.java
 $(handwritten_java_sources:src/%.java=build/java/%.java): build/java/%.java: src/%.java
-       @echo "symlinking                    :     $<"
+       @echo "symlinking:                         $@"
        @mkdir -p `dirname $@`;  \
        cd `dirname $@`;                        \
        A=`echo $@ | sed 's_[^/]*/_../_g'`;     \
        @mkdir -p `dirname $@`;  \
        cd `dirname $@`;                        \
        A=`echo $@ | sed 's_[^/]*/_../_g'`;     \
@@ -86,49 +88,49 @@ $(handwritten_java_sources:src/%.java=build/java/%.java): build/java/%.java: src
 
 # PHASE 3: class files
 class_files           := $(java_sources:build/java/%.java=build/class/%.class)
 
 # PHASE 3: class files
 class_files           := $(java_sources:build/java/%.java=build/class/%.class)
-class_files           += build/class/org/xwt/imp/Freetype.class
-
 $(class_files): build/class/%.class: build/java/%.java upstream/.jikes
        @echo "compiling          .java -> .class: $<"
        @mkdir -p build/class
        @upstream/.jikes $<
 
 $(class_files): build/class/%.class: build/java/%.java upstream/.jikes
        @echo "compiling          .java -> .class: $<"
        @mkdir -p build/class
        @upstream/.jikes $<
 
-compile: $(java_sources)
+compile: .compile
+.compile: $(java_sources)
        @echo "compiling          .java -> .class: src/**/*.java"
        @mkdir -p build/class
        @upstream/.jikes $(java_sources)
        @echo "compiling          .java -> .class: src/**/*.java"
        @mkdir -p build/class
        @upstream/.jikes $(java_sources)
+       @touch .compile
 
 # PHASE 4: gcj-generated headers
 
 # PHASE 4: gcj-generated headers
-java_headers          := $(build_java_sources:build/java/%.java=build/h/%.h)
-$(java_headers): build/h/%.h: build/%.class
+java_headers          := $(java_sources:build/java/%.java=build/h/%.h)
+$(java_headers): build/h/%.h: build/class/%.class .compile
        @echo "extracting        .class -> .h:     $<"
        @echo "extracting        .class -> .h:     $<"
-       cd build; find `echo $< | sed s/.class$$// | sed s_^build/__ `*.class |\
-               sed s_/_._g | sed s/.class$$// | sed s/.java$$// |\
-                       xargs $(gcjh) --classpath .
+       @mkdir -p `dirname $@`
+       @ls `echo $< | sed s/.class\$$//`*.class |\
+                sed s_build/class/__ | sed s/.class\$$//g | sed s_/_._g | (cd build/class; xargs ../../$(gcjh) -d ../h --classpath .)
 
 # PHASE 4: object files
 
 # PHASE 4: object files
-java_object_files          := $(filter-out build/$(platform)/org/xwt/plat/%, $(java_sources:src/%.java=build/$(platform)/%.java.o))
-java_object_files          += $(pathsubst %,build/$(platform)/org/xwt/plat/%.java.o,GCJ $(platform_java_sources))
-java_object_files          += build/$(platform)/org/xwt/imp/Freetype.java.o
+java_object_files          := $(filter-out build/$(platform)/org/xwt/plat/%,$(java_sources:build/java/%=build/$(platform)/%.o))
+java_object_files          += $(patsubst %,build/$(platform)/org/xwt/plat/%.java.o,GCJ $(platform_java_sources))
 cc_object_files            := $(handwritten_cc_sources:src/%.cc=build/$(platform)/%.cc.o)
 cc_object_files            := $(handwritten_cc_sources:src/%.cc=build/$(platform)/%.cc.o)
-c_object_files             := $(handwritten_c_sources:src/%.c=build/$(platform)/%.c.o)
-$(java_objects): build/$(platform)/%.java.o: build/java/%.java
+c_object_files             := $(handwritten_c_sources:upstream/jpeg-6b/src/%.c=build/$(platform)/jpeg-6b/%.c.o)
+$(java_object_files): build/$(platform)/%.java.o: build/java/%.java
        @echo "compiling          .java -> .o:     $<"
        @mkdir -p `dirname $@`
        @echo "compiling          .java -> .o:     $<"
        @mkdir -p `dirname $@`
-       $(gcj) -c $< -o $@
-$(cc_object_files): build/$(platform)/%.cc.o: src/%.cc $(java_headers) src/org/ijg/jmorecfg.h
+       @$(gcj) -c $< -o $@
+$(cc_object_files): build/$(platform)/%.cc.o: src/%.cc $(java_headers)
        @echo "compiling            .cc -> .o:     $<"
        @mkdir -p `dirname $@`
        @echo "compiling            .cc -> .o:     $<"
        @mkdir -p `dirname $@`
-       $(g++) -I/usr/X11R6/include/ -I$(gcc_path)/include -Ibuild/h -Iupstream/$(platform)/include -Wno-multichar -c $< -o $@
-$(c_object_files): build/$(platform)/%.c.o: src/%.c src/org/ijg/jmorecfg.h
+       @$(g++) -I/usr/X11R6/include/ -I$(gcc_path)/include -Ibuild/h -Iupstream/$(platform)/include -Wno-multichar -c $< -o $@
+$(c_object_files): build/$(platform)/jpeg-6b/%.c.o: upstream/jpeg-6b/src/%.c
        @echo "compiling             .c -> .o:     $<"
        @mkdir -p `dirname $@`
        @echo "compiling             .c -> .o:     $<"
        @mkdir -p `dirname $@`
-       $(gcc) -Ibuild/h -c $< -o $@
+       @$(gcc) -Ibuild/h -c $< -o $@
 
 # PHASE 5: linking
 
 # PHASE 5: linking
-$(target_bin): $(objects)
+$(target_bin): $(java_object_files) $(cc_object_files) $(c_object_files)
        @echo "linking               .o -> $(target_bin)"
        @echo "linking               .o -> $(target_bin)"
-       $(gcj) --main=org.xwt.Main -o build/$(platform)/$(target_bin) $^ $(platform_link) 
+       @mkdir -p build/$(platform)
+       @$(gcj) --main=org.xwt.Main -o build/$(platform)/$(target_bin) $^ $(platform_link) 
 
 
 ##############################################################################
 
 
 ##############################################################################
@@ -200,15 +202,14 @@ 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"
 
 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
-       @echo -e "\\n=== JVM ========================================="
-       @echo "archiving         .class -> .jar:  build/JVM/xwt.jar"
+JVM: build/JVM/xwt.jar
+build/JVM/xwt.jar:.compile
+       @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
        @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 \
+       @cd build/class; $(jar) cfm ../JVM/xwt.jar ../JVM/.manifest \
                `find . -name \*.class | grep -v org/xwt/plat/` \
                `find . -name \*.class | grep -v org/xwt/plat/` \
-               org/xwt/plat/AWT*.class org/xwt/plat/Java2*.class | tr \\012 \\015 | \
-               sed '_$$_                                                   _'
+               org/xwt/plat/AWT*.class org/xwt/plat/Java2*.class
        @echo
 
 
        @echo
 
 
index 1003abd..46e1101 100644 (file)
@@ -56,7 +56,7 @@ $(packages):
 $(packages:%=%-$(target)): %-$(target): %
        make $</src $</build-$(target)/.installed target=$(patsubst $<-%,%,$@)
 
 $(packages:%=%-$(target)): %-$(target): %
        make $</src $</build-$(target)/.installed target=$(patsubst $<-%,%,$@)
 
-gcc-3.3-mips: binutils-2.13.2.1-mips
+gcc-3.3-$(target): binutils-2.13.2.1-$(target)
 
 # download the source code
 $(packages:%=%/src): %/src:
 
 # download the source code
 $(packages:%=%/src): %/src: