--- a/Makefile Thu Jun 10 13:58:55 2010 -0700
+++ b/Makefile Mon Jun 21 11:00:15 2010 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1995, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1995, 2010, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -29,10 +29,6 @@
TOPDIR:=.
endif
-ifndef CONTROL_TOPDIR
- CONTROL_TOPDIR=$(TOPDIR)
-endif
-
# Openjdk sources (only used if SKIP_OPENJDK_BUILD!=true)
OPENJDK_SOURCETREE=$(TOPDIR)/openjdk
OPENJDK_BUILDDIR:=$(shell \
@@ -120,7 +116,7 @@
all_product_build::
@$(FINISH_ECHO)
-# Generis build of basic repo series
+# Generic build of basic repo series
generic_build_repo_series::
$(MKDIR) -p $(OUTPUTDIR)
$(MKDIR) -p $(OUTPUTDIR)/j2sdk-image
@@ -179,11 +175,15 @@
# The install process needs to know what the DEBUG_NAME is, so
# look for INSTALL_DEBUG_NAME in the install rules.
#
+# NOTE: On windows, do not use $(ABS_BOOTDIR_OUTPUTDIR)-$(DEBUG_NAME).
+# Due to the use of short paths in $(ABS_OUTPUTDIR), this may
+# not be the same location.
+#
# Location of fresh bootdir output
ABS_BOOTDIR_OUTPUTDIR=$(ABS_OUTPUTDIR)/bootjdk
FRESH_BOOTDIR=$(ABS_BOOTDIR_OUTPUTDIR)/j2sdk-image
-FRESH_DEBUG_BOOTDIR=$(ABS_BOOTDIR_OUTPUTDIR)-$(DEBUG_NAME)/j2sdk-image
+FRESH_DEBUG_BOOTDIR=$(ABS_BOOTDIR_OUTPUTDIR)/../$(PLATFORM)-$(ARCH)-$(DEBUG_NAME)/j2sdk-image
create_fresh_product_bootdir: FRC
@$(START_ECHO)
@@ -248,10 +248,14 @@
generic_build_repo_series
@$(FINISH_ECHO)
+# NOTE: On windows, do not use $(ABS_OUTPUTDIR)-$(DEBUG_NAME).
+# Due to the use of short paths in $(ABS_OUTPUTDIR), this may
+# not be the same location.
+
generic_debug_build:
@$(START_ECHO)
$(MAKE) \
- ALT_OUTPUTDIR=$(ABS_OUTPUTDIR)-$(DEBUG_NAME) \
+ ALT_OUTPUTDIR=$(ABS_OUTPUTDIR)/../$(PLATFORM)-$(ARCH)-$(DEBUG_NAME) \
DEBUG_NAME=$(DEBUG_NAME) \
GENERATE_DOCS=false \
$(BOOT_CYCLE_DEBUG_SETTINGS) \
@@ -348,8 +352,8 @@
clobber::
$(RM) -r $(OUTPUTDIR)/*
- $(RM) -r $(OUTPUTDIR)-debug/*
- $(RM) -r $(OUTPUTDIR)-fastdebug/*
+ $(RM) -r $(OUTPUTDIR)/../$(PLATFORM)-$(ARCH)-debug/*
+ $(RM) -r $(OUTPUTDIR)/../$(PLATFORM)-$(ARCH)-fastdebug/*
-($(RMDIR) -p $(OUTPUTDIR) > $(DEV_NULL) 2>&1; $(TRUE))
clean: clobber
@@ -551,6 +555,56 @@
endif
################################################################
+# rule to test
+################################################################
+
+.NOTPARALLEL: test
+
+test: test_clean test_start test_summary
+
+test_start:
+ @$(ECHO) "Tests started at `$(DATE)`"
+
+test_clean:
+ $(RM) $(OUTPUTDIR)/test_failures.txt $(OUTPUTDIR)/test_log.txt
+
+test_summary: $(OUTPUTDIR)/test_failures.txt
+ @$(ECHO) "#################################################"
+ @$(ECHO) "Tests completed at `$(DATE)`"
+ @( $(EGREP) '^TEST STATS:' $(OUTPUTDIR)/test_log.txt \
+ || $(ECHO) "No TEST STATS seen in log" )
+ @$(ECHO) "For complete details see: $(OUTPUTDIR)/test_log.txt"
+ @$(ECHO) "#################################################"
+ @if [ -s $< ] ; then \
+ $(ECHO) "ERROR: Test failure count: `$(CAT) $< | $(WC) -l`"; \
+ $(CAT) $<; \
+ exit 1; \
+ else \
+ $(ECHO) "Success! No failures detected"; \
+ fi
+
+# Get failure list from log
+$(OUTPUTDIR)/test_failures.txt: $(OUTPUTDIR)/test_log.txt
+ @$(RM) $@
+ @( $(EGREP) '^FAILED:' $< || $(ECHO) "" ) > $@
+
+# Get log file of all tests run
+JDK_TO_TEST := $(shell \
+ if [ -d "$(ABS_OUTPUTDIR)/j2sdk-image" ] ; then \
+ $(ECHO) "$(ABS_OUTPUTDIR)/j2sdk-image"; \
+ elif [ -d "$(ABS_OUTPUTDIR)/bin" ] ; then \
+ $(ECHO) "$(ABS_OUTPUTDIR)"; \
+ elif [ "$(PRODUCT_HOME)" != "" -a -d "$(PRODUCT_HOME)/bin" ] ; then \
+ $(ECHO) "$(PRODUCT_HOME)"; \
+ fi \
+)
+$(OUTPUTDIR)/test_log.txt:
+ $(RM) $@
+ ( $(CD) test && \
+ $(MAKE) NO_STOPPING=- PRODUCT_HOME=$(JDK_TO_TEST) \
+ ) | tee $@
+
+################################################################
# JPRT rule to build
################################################################
@@ -560,7 +614,7 @@
# PHONY
################################################################
-.PHONY: all \
+.PHONY: all test test_start test_summary test_clean \
generic_build_repo_series \
what clobber insane \
dev dev-build dev-sanity dev-clobber \