From: megacz Date: Fri, 30 Jan 2004 07:04:51 +0000 (+0000) Subject: 2003/09/07 00:10:51 X-Git-Tag: RC3~707 X-Git-Url: http://git.megacz.com/?p=org.ibex.core.git;a=commitdiff_plain;h=6f6a7fea7232c364a46839b5a189bcc53a8b2865 2003/09/07 00:10:51 darcs-hash:20040130070451-2ba56-ee0246888db6f29277e9d6a4f05199eb403021a7.gz --- diff --git a/Makefile b/Makefile index bdc2c4e..862e1f3 100644 --- a/Makefile +++ b/Makefile @@ -6,10 +6,10 @@ all: JVM Linux Win32 Carbon Java2 #Solaris JVM: build/JVM/xwt.jar -Linux: ; @make gcj platform=Linux target=i686-pc-linux-gnu platform_link="-lX11 -lXext --static" -Solaris: ; @make gcj platform=Solaris target=sparc-sun-solaris2.7 platform_link="-lX11 -lXext" -Win32: ; @make gcj platform=Win32 target=i686-pc-mingw32 target_bin=xwt.exe platform_link="-Wl,--subsystem,windows -lcomdlg32" -Carbon: ; @make gcj platform=Carbon target=powerpc-apple-darwin \ +Linux: ; make gcj platform=Linux target=i686-pc-linux-gnu platform_link="-lX11 -lXext --static" +Solaris: ; make gcj platform=Solaris target=sparc-sun-solaris2.7 platform_link="-lX11 -lXext" +Win32: ; make gcj platform=Win32 target=i686-pc-mingw32 target_bin=xwt.exe platform_link="-Wl,--subsystem,windows -lcomdlg32" +Carbon: ; make gcj platform=Carbon target=powerpc-apple-darwin \ platform_link=-Wl,-framework,Carbon,-framework,OpenGL,-framework,AGL,-framework,SystemConfiguration @@ -17,7 +17,7 @@ Carbon: ; @make gcj platform=Carbon target=powerpc-apple-darwin \ # Configurables: # target_bin := xwt.$(shell echo $(platform) | tr A-Z a-z) -jikes_flags := -verbose -nowarn -sourcepath src/ +jikes_flags := -nowarn -sourcepath src/ gcc_path := upstream/install gcc_optimizations := -O2 #gcc_optimizations := -O9 -ffast-math -fomit-frame-pointer -foptimize-sibling-calls @@ -69,58 +69,58 @@ build/c/freetype/%.c: upstream/freetype-2.1.4/src/%/%.c @echo linking $@; mkdir -p $(@D); ln -s `echo $(@D) | sed 's_[^/]*\(/\|$$\)_../_g'`/$< $@ build/java/%.java: src/%.java.pp build/class/org/xwt/util/Preprocessor.class - @echo "preprocessing .java.pp -> .java: $<" - @mkdir -p `dirname $@` - @rm -f $@ - @java -cp build/class org.xwt.util.Preprocessor < $< > $@ + @echo -e "\n\033[1mpreprocessing .java.pp -> .java: $<\033[0m" + mkdir -p `dirname $@` + rm -f $@ + java -cp build/class org.xwt.util.Preprocessor < $< > $@ # PHASE 3: class files build/class/%.class: build/java/%.java .jikes - @echo "compiling .java -> .class: $<" - @mkdir -p build/class + @echo -e "\n\033[1mcompiling .java -> .class: $<\033[0m" + mkdir -p build/class @./.jikes $< compile: .compile .compile: $(java_sources) - @echo "compiling .java -> .class: src/**/*.java" - @mkdir -p build/class + @echo -e "\n\033[1mcompiling .java -> .class: src/**/*.java\033[0m" + mkdir -p build/class @./.jikes $(java_sources) - @touch .compile + touch .compile # PHASE 4: gcj-generated headers java_headers := $(java_sources:build/java/%.java=build/h/%.h) build/h/%.h: build/class/%.class .compile - @echo "extracting .class -> .h: $<" - @mkdir -p `dirname $@` - @ls `echo $< | sed s/.class\$$//`*.class |\ + @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 ../../$(gcc_path)/bin/gcjh -d ../h --classpath .) # PHASE 4: object files build/$(platform)/%.java.o: build/java/%.java - @echo "compiling .java -> .o: $<" - @mkdir -p `dirname $@` - @$(gcj) -c $< -o $@ + @echo -e "\n\033[1mcompiling .java -> .o: $<\033[0m" + mkdir -p `dirname $@` + $(gcj) -c $< -o $@ build/$(platform)/org/xwt/plat/$(platform).cc.o: src/org/xwt/plat/*.cc $(java_headers) - @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 $@ + @echo -e "\n\033[1mcompiling .cc -> .o: $<\033[0m" + mkdir -p `dirname $@` + $(g++) -I/usr/X11R6/include/ -I$(gcc_path)/include -Ibuild/h -Iupstream/$(platform)/include -Wno-multichar -c $< -o $@ build/$(platform)/jpeg-6b/%.c.o: upstream/jpeg-6b/src/%.c - @echo "compiling .c -> .o: $<" - @mkdir -p `dirname $@` - @$(gcc) -Ibuild/h -c $< -o $@ + @echo -e "\n\033[1mcompiling .c -> .o: $<\033[0m" + mkdir -p `dirname $@` + $(gcc) -Ibuild/h -c $< -o $@ # PHASE 5: linking $(target_bin).ar: $(java_object_files) build/$(platform)/org/xwt/plat/$(platform).cc.o $(jpeg_object_files) - @echo "archiving .o -> $(target_bin).ar" - @rm -f $(target_bin).ar - @$(ar) -c $(target_bin).ar $^ + @echo -e "\n\033[1marchiving .o -> $(target_bin).ar\033[0m" + rm -f $(target_bin).ar + $(ar) -c $(target_bin).ar $^ $(target_bin): $(target_bin).ar - @echo "linking .o -> $(target_bin)" - @mkdir -p build/$(platform) - @$(gcj) --main=org.xwt.Main -o build/$(platform)/$(target_bin) $(target_bin).ar -L$(gcc_path)/lib $(platform_link) + @echo -e "\n\033[1mlinking .o -> $(target_bin)\033[0m" + mkdir -p build/$(platform) + $(gcj) --main=org.xwt.Main -o build/$(platform)/$(target_bin) $(target_bin).ar -L$(gcc_path)/lib $(platform_link) ############################################################################## @@ -129,33 +129,33 @@ $(target_bin): $(target_bin).ar 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 "zipping/uuencoding .xwt -> .java: build/java/org/xwt/Builtin.java" - @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 - $(<:src/%=%) | \ + 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 - $(<:src/%=%) | \ uuencode foo | tail -n +2 | grep -v '^end$$' | grep -v '^`$$' | \ sed 's_\(.+\)_"\1" +_' >> ../build/java/org/xwt/Builtin.java - @echo "\"\"; }" >> build/java/org/xwt/Builtin.java + echo "\"\"; }" >> build/java/org/xwt/Builtin.java build/java/org/xwt/imp/Freetype.java:: build/mips/freetype.mips build/class/org/xwt/imp/MIPS.class - @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 + @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 build/mips/%.o: src/org/xwt/imp/%.c $(gcc_path)/bin/mips-gcc upstream/.freetype @mkdir -p build/mips - @echo "compiling $< -> $@ (mips)" - @$(gcc_path)/bin/mips-gcc \ + echo -e "\n\033[1mcompiling $< -> $@ (mips)\033[0m" + $(gcc_path)/bin/mips-gcc \ -march=mips1 \ -I upstream/freetype-2.1.4/include \ -c -o $@ $< build/mips/freetype.mips: $(gcc_path)/bin/mips-gcc build/mips/crt0.o build/mips/syscalls.o build/mips/Freetype.o upstream/.freetype-mips - @echo "compiling .c -> .mips: $@" - @mkdir -p build/mips - @make -sC upstream newlib-1.11.0/src newlib-1.11.0/build-mips/.installed freetype-2.1.4/src target=mips + @echo -e "\n\033[1mcompiling .c -> .mips: $@\033[0m" + mkdir -p build/mips + make -sC upstream newlib-1.11.0/src newlib-1.11.0/build-mips/.installed freetype-2.1.4/src target=mips $(gcc_path)/bin/mips-gcc \ -nostdlib \ --static \ @@ -176,23 +176,14 @@ build/mips/freetype.mips: $(gcc_path)/bin/mips-gcc build/mips/crt0.o build/mips/ # having the individual .o's depend on the .java's (otherwise every .o gets recompiled when one .java changes) gcj: $(gcc_path)/bin/$(target)-gcj compile $(target_bin) 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 - @cd build/class; $(jar) cfm ../JVM/xwt.jar ../JVM/.manifest \ + @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 | grep -v org/xwt/plat/` \ org/xwt/plat/AWT*.class org/xwt/plat/Java2*.class - @echo - - - -############################################################################## -# Misc -# + echo -clean: - find . -name \*~ | xargs rm -f - find . -name \#\*\# | xargs rm -f diff --git a/Makefile.upstream b/Makefile.upstream index cab5198..26f505a 100644 --- a/Makefile.upstream +++ b/Makefile.upstream @@ -32,6 +32,7 @@ configure_gcc-3.3-mips := --enable-languages=c --nfp --with-new # vendor-supplied binaries and headers; this is stuff that comes with various OSes vendor: .vendor .vendor: + @echo -e "\n\033[1mdownloading vendor-supplied headers and libraries...\033[0m" curl http://www.megacz.com/vendor.tgz | tar xzf - -C upstream/install curl $(url_w32api-2.3) | tar xzf - -C upstream/install/i686-pc-mingw32 curl $(url_mingw-runtime-3.0) | tar xzf - -C upstream/install/i686-pc-mingw32 @@ -39,7 +40,7 @@ vendor: .vendor download_%: .download_% .download_%: - echo -e "\ndownloading %..." + @echo -e "\n\033[1mdownloading $*...\033[0m" mkdir -p upstream/$* curl $(url_$*) | tar xzf - -C upstream/$* mv upstream/$*/$* upstream/$*/src; true @@ -48,7 +49,7 @@ download_%: .download_% configure_%: .configure_% .configure_%: download_% - echo -e "\nconfiguring %..." + @echo -e "\n\033[1mconfiguring $*...\033[0m" mkdir -p $*/build-$(target) cd -p $*/build-$(target); \ $(setcc) ../src/configure \ @@ -60,19 +61,21 @@ configure_%: .configure_% install_%: .install_% .install_%: configure_% - echo -e "\nbuilding $*..." + @echo -e "\n\033[1mbuilding $*...\033[0m" cd upstream/$*/build-$(target); $(setcc) PATH=$$PATH:`pwd`/../../install/bin make - echo -e "\ninstalling $*..." + @echo -e "\n\033[1minstalling $*...\033[0m" cd upstream/$*/build-$(target); $(setcc) PATH=$$PATH:`pwd`/../../install/bin make install touch $@ .install_freetype-2.1.4: download_freetype-2.1.4 install_binutils-2.13.2.1 install_gcc-3.3 + @echo -e "\n\033[1mbuilding freetype $*...\033[0m" cd upstream/freetype-2.1.4/src; make setup ansi; PATH=$$PATH:`pwd`/../install/bin make CC=mips-gcc AR=mips-ar ../install/bin/mips-ranlib freetype-2.1.4/objs/libfreetype.a touch $@ # jikes has a special target to autodetect a pre-installed jikes, and to autodetect the JVM's $CLASSPATH .jikes: + @echo -e "\n\033[1mdetecting your jikes installation...\033[0m" 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