# inputs
jikes_java_sources := $(shell find src -name *.java)
gcj_java_sources := $(shell find src -name *.java -not -path src/org/xwt/plat/\*) src/org/xwt/plat/GCJ.java $(platform_java_sources)
-xwar_sources := $(ls src/org/xwt/builtin/*.png src/org/xwt/builtin/*.xwt src/org/xwt/builtin/*.xwf)
+xwar_sources := $(shell ls src/org/xwt/builtin/*.png src/org/xwt/builtin/*.xwt src/org/xwt/builtin/*.xwf)
cc_sources := src/org/xwt/plat/$(platform).cc
# outputs
gcc := $(gcc_path)/bin/$(target)-g++ $(gcc_flags)
gcjh := $(gcc_path)/bin/$(target)-gcjh
ar := $(gcc_path)/$(target)/bin/ar
+strip := $(gcc_path)/$(target)/bin/strip
jikes := jikes -extdirs ${JAVA_HOME}/jre/lib -nowarn
# platforms
## Platform-Neutral ###########################################################################
ifneq ($(verbose),true)
-.SILENT: dist update-build $(jikes_java_objects) .headers $(gcj_java_objects) $(all_platforms) PalmOS bin/org/xwt/builtin.xwar nohup-dist
+.SILENT: $(jikes_java_objects) .headers $(gcj_java_objects) $(all_platforms) bin/org/xwt/builtin.xwar
silent := --silent
endif
all: $(all_platforms)
$(jikes_java_objects): $(jikes_java_sources)
- echo -ne "compiling .java -> .class:\\r"
+ test "$(JAVA_HOME)"x != x || (echo "you forgot to set your $$JAVA_HOME environment variable"; false)
+ echo "compiling .java -> .class:"
mkdir -p bin
$(jikes) -sourcepath src/ -classpath lib/libgcj-minimal.jar $(jikes_java_sources) -d bin/
echo "compiling .java -> .class: done"
gcj: compile $(gcc_path)/bin/$(target)-gcj .headers link
-link: $(gcj_java_objects) $(cc_objects)
+link: $(gcj_java_objects) $(cc_objects) bin-$(platform)/org/xwt/builtin.o
echo "linking .o -> $(target_bin)"
$(ar) r bin-$(platform)/org/xwt/plat/platform.ar bin-$(platform)/org/xwt/plat/*.o
$(gcj) --main=org.xwt.Main -o bin-$(platform)/$(target_bin) $^ $(platform_link) bin-$(platform)/org/xwt/plat/platform.ar
.headers: $(jikes_java_objects)
cd bin; for A in `find * -name \*.class`; do \
- echo -ne "\033[K\\rextracting .class -> .h: $$A\\r"; \
+ echo "extracting .class -> .h: $$A"; \
$(gcjh) --classpath . `echo $$A | sed s_/_._g | sed s/.class$$//`; \
done
- echo -e "\033[K\\rextracting .class -> .h: done"
+ echo "extracting .class -> .h: done"
touch .headers
# turn off optimization of Trap.java due to a compiler bug
bin-$(platform)/org/xwt/Trap.o: gcj_flags := -O0 -g
$(gcj_java_objects): bin-$(platform)/%.o: src/%.java $(jikes_java_objects)
- echo -ne "\033[K\\rcompiling .java -> .o: $<\\r"
+ echo -ne "compiling .java -> .o: $<"
mkdir -p `dirname $@`
$(gcj) -c $< -o $@
$(cc_objects): bin-$(platform)/%-nat.o: src/%.cc
- echo -ne "\033[K\\rcompiling .cc -> .o: $$A\\r"
+ echo -ne "compiling .cc -> .o: $$A"
$(gcc) -Ibin -c $< -o $@
-bin-$(platform)/org/xwt/builtin.xwar: $(xwar_sources)
- echo "archiving .xwt -> .xwar"
+bin-$(platform)/org/xwt/builtin.o: bin/org/xwt/builtin.xwar
+ echo "wrapping .xwar -> .o"
$(gcj) --resource org/xwt/builtin.xwar -c $< -o $@
false
-## dist.xwt.org ############################################################################
+## master.dist.xwt.org ############################################################################
current_build := $(shell cat next.build)
dist:
# this will fail if we haven't checked-in since the comment is null; we want this.
- cvs commit -m ''
+ cvs commit -m '' > /dev/null
echo "***********************************************************"
echo "* This build is $(current_build)"
echo "***********************************************************"
- (test `uname -n` = gosset.megacz.com) || \
- ssh xwt@xwt.org /home/xwt/dist | grep -v "make...:.\(Entering\|Leaving\).directory"
+ ifeq ($(shell uname -n),gosset.megacz.com)
+ (make $(silent) dist-private 2>&1) >> .make-dist.out || \
+ (tail -n 200 .make-dist.out | mail -s "Build $(current_build) FAILED" cvs@xwt.org; false)
+ tail -n 200 .make-dist.out | \
+ mail -s "Unsigned binaries of $(current_build) are now available" cvs@xwt.org
+ else
+ ssh xwt@xwt.org verbose=$(verbose) /home/xwt/dist \
+ | grep -v "make...:.\(Entering\|Leaving\).directory"
+ endif
- (test `uname -n` = gosset.megacz.com) && \
- make $(silent) dist-private &> .make-dist.out || \
- (cat .make-dist.out | mail -s "Build $(current_build) FAILED" cvs@xwt.org; false)
-
- (test `uname -n` = gosset.megacz.com) && \
- cat .make-dist.out | \
- mail -s "Unsigned binaries of $(current_build) are now available" cvs@xwt.org < /dev/null
dist-private:
make $(silent) update-build
nice -n 19 make all
echo
- echo === dist.xwt.org ==================================
+ echo === master.dist.xwt.org ==================================
echo "copying xwt.jar to distribution area..."
- cp bin-Java2/xwt.jar /var/www/dist.xwt.org/xwt-$(current_build).jar.unsigned
+ cp bin-Java2/xwt.jar /var/www/master.dist.xwt.org/xwt-$(current_build).jar.unsigned
- echo "copying xwt.exe to distribution area..."
- cp bin-Win32/xwt.exe /var/www/dist.xwt.org/xwt-$(current_build).exe.unsigned
+ echo "stripping xwt.exe and copying it to the distribution area..."
+ $(strip) bin-Win32/xwt.exe -o /var/www/master.dist.xwt.org/xwt-$(current_build).exe.unsigned
echo "copying xwt.linux to distribution area..."
- cp bin-Linux/xwt.linux /var/www/dist.xwt.org/xwt-$(current_build).linux.unsigned
+ $(strip) bin-Linux/xwt.linux -o /var/www/master.dist.xwt.org/xwt-$(current_build).linux.unsigned
echo
echo "*** DONE ******************************************"