X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=sidebyside;f=Makefile;h=006be2e3c7c9de6ddaaaca822c76c34e9252d746;hb=a31ea439cbb4e49894d8384c6c69e5fe8fae5619;hp=8a9f8f7018c74c6e55ce683cd0706aeb50396e4b;hpb=9811ccc24ed671deaa204ad487634f2f32f322c5;p=org.ibex.core.git diff --git a/Makefile b/Makefile index 8a9f8f7..006be2e 100644 --- a/Makefile +++ b/Makefile @@ -9,7 +9,7 @@ JVM: build/JVM/xwt.jar Linux: ; make gcj platform=Linux target=i686-pc-linux-gnu link_flags="-lX11 -lXext --static" Solaris: ; make gcj platform=Solaris target=sparc-sun-solaris2.7 link_flags="-lX11 -lXext" Win32: ; make gcj platform=Win32 target=i686-pc-mingw32 link_flags="-Wl,--subsystem,windows -lcomdlg32" target_bin=xwt.exe -Darwin: ; make gcj platform=Darwin target=powerpc-apple-darwin link_flags="-lSystem -lmathCommon.A" +Darwin: ; make gcj platform=Darwin target=powerpc-apple-darwin link_flags="-lSystem -lmathCommon.A -Wl,-framework,Carbon,-framework,OpenGL,-framework,AGL,-framework,SystemConfiguration,-dylib_file,/usr/lib/libz.1.1.3.dylib:upstream/install/powerpc-apple-darwin/lib/libz.1.1.3.dylib,-dylib_file,/usr/lib/libcups.2.dylib:upstream/install/powerpc-apple-darwin/lib/libcups.2.dylib,-dylib_file,/usr/lib/libssl.0.9.dylib:upstream/install/powerpc-apple-darwin/lib/libssl.0.9.dylib,-dylib_file,/usr/lib/libcrypto.0.9.dylib:upstream/install/powerpc-apple-darwin/lib/libcrypto.0.9.dylib,-flat_namespace" ############################################################################# @@ -29,15 +29,17 @@ jar := $(shell ((type fastjar &>/dev/null) && echo fastjar) | include Makefile.upstream -# FIXME this should be done with -ljpeg -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 -upstream/jpeg-6b/src/%.c: .download_jpeg-6b +# figure out what stuff in org.xwt.plat.* this platform requires (its superclasses) +superclass_org.xwt.plat.Platform:; echo org.xwt.plat.OpenGL +superclass_%: + @echo $* + @make -s superclass_org.xwt.plat.$(shell grep extends src/`echo $* | sed s_\\\\._/_g`.java | head -n 1 | sed s_.\*extends\ __ | sed s_\ .\*__) -java_sources := $(patsubst src/%.java, build/java/%.java, $(shell find src -name \*.java)) -java_sources += $(patsubst src/%.java.pp, build/java/%.java, $(shell find src -name \*.java.pp)) +plat_deps := $(shell test "$(platform)" = "" || make -s superclass_org.xwt.plat.$(platform) platform= ) +java_sources := $(patsubst org.xwt.plat.%, build/java/org/xwt/plat/%.java, $(plat_deps)) +java_sources += $(patsubst src/%.java.pp, build/java/%.java, $(shell find src -name \*.java.pp)) java_sources += build/java/org/xwt/Builtin.java +java_sources += $(patsubst src/%.java, build/java/%.java, $(shell find src -name '*.java' \! -path 'src/org/xwt/plat/*')) build/java/%.java: src/%.java ; @echo linking $@; mkdir -p $(@D); ln -s `echo $(@D) | sed 's_[^/]*\(/\|$$\)_../_g'`/$< $@ build/cc/%.cc: src/%.c ; @echo linking $@; mkdir -p $(@D); ln -s `echo $(@D) | sed 's_[^/]*\(/\|$$\)_../_g'`/$< $@ @@ -54,10 +56,10 @@ build/java/%.java: src/%.java.pp build/class/%.class: build/java/%.java .jikes @echo -e "\n\033[1mcompiling .java -> .class: $<\033[0m" mkdir -p build/class - @./.jikes $< +# @./.jikes $< compile: .compile -.compile: $(java_sources:build/java/%.c=build/class/%.class) +.compile: $(java_sources) @echo -e "\n\033[1mcompiling .java -> .class: src/**/*.java\033[0m" mkdir -p build/class @./.jikes $(java_sources) @@ -93,16 +95,15 @@ build/$(platform)/jpeg-6b/%.c.o: upstream/jpeg-6b/src/%.c $(gcc) -Ibuild/h -c $< -o $@ # PHASE 5: linking -build/$(target)/$(target_bin).ar: $(java_sources:build/java/%.java=build/$(platform)/%.java.o) build/$(platform)/org/xwt/plat/$(platform).cc.o $(jpeg_object_files) - @echo -e "\n\033[1marchiving .o -> $(target_bin).ar\033[0m" - rm -f build/$(target)/$(target_bin).ar - upstream/install/$(target)/bin/ar -cq build/$(target)/$(target_bin).ar $^ - upstream/install/$(target)/bin/ranlib build/$(target)/$(target_bin).ar +jpeg_sources := jdapimin.c jdapistd.c jcomapi.c jcparam.c jdmaster.c jdinput.c jdmainct.c jdcoefct.c jdpostct.c jdmarker.c +jpeg_sources += jdhuff.c jdphuff.c jddctmgr.c jidctint.c jidctfst.c jidctflt.c jidctred.c jdsample.c jdcolor.c jdmerge.c +jpeg_sources += jquant1.c jquant2.c jerror.c jutils.c jmemnobs.c jmemmgr.c -$(target_bin): build/$(target)/$(target_bin).ar +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 @echo -e "\n\033[1mlinking .o -> $(target_bin)\033[0m" mkdir -p build/$(platform) - PATH=upstream/install/bin:$$PATH $(gcj) --main=org.xwt.Main -o build/$(platform)/$(target_bin) build/$(target)/$(target_bin).ar -Lupstream/install/$(target)/lib $(link_flags) + PATH=upstream/install/bin:$$PATH $(gcj) --main=org.xwt.Main -o build/$(platform)/$(target_bin) $^ $(jpeg_sources:%.c=upstream/jpeg-6b/build-$(target)/%.o) -Lupstream/install/$(target)/lib $(link_flags) ############################################################################## @@ -123,7 +124,7 @@ build/java/org/xwt/Builtin.java: $(shell ls src/org/xwt/builtin/*.png src/org/xw # 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: .vendor .install_gcc-3.3_$(target) .compile $(target_bin) +gcj: .compile .vendor .install_gcc-3.3_$(target) $(target_bin) build/JVM/xwt.jar: .compile @echo -e "\n\033[1marchiving .class -> .jar: build/JVM/xwt.jar\033[0m" mkdir -p build/JVM