Makefile revision 579
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync#
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# Copyright 1995-2009 Sun Microsystems, Inc. All Rights Reserved.
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync#
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# This code is free software; you can redistribute it and/or modify it
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# under the terms of the GNU General Public License version 2 only, as
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# published by the Free Software Foundation.
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync#
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# This code is distributed in the hope that it will be useful, but WITHOUT
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# version 2 for more details (a copy is included in the LICENSE file that
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# accompanied this code).
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync#
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# You should have received a copy of the GNU General Public License version
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# 2 along with this work; if not, write to the Free Software Foundation,
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync#
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# CA 95054 USA or visit www.sun.com if you need additional information or
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# have any questions.
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync#
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync#
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync#
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# Makefile to run various jdk tests
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync#
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# Get OS/ARCH specifics
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncOSNAME = $(shell uname -s)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncifeq ($(OSNAME), SunOS)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync PLATFORM = solaris
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync SLASH_JAVA = /java
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync ARCH = $(shell uname -p)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync ifeq ($(ARCH), i386)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync ARCH=i586
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync endif
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncendif
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncifeq ($(OSNAME), Linux)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync PLATFORM = linux
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync SLASH_JAVA = /java
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync ARCH = $(shell uname -m)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync ifeq ($(ARCH), i386)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync ARCH = i586
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync endif
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncendif
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncifeq ($(OSNAME), Windows_NT)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync PLATFORM = windows
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync SLASH_JAVA = J:
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),ia64)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync ARCH = ia64
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync else
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),AMD64)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync ARCH = x64
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync else
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),EM64T)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync ARCH = x64
802293f690252d458abe85d83c07b2422d9b5e17vboxsync else
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync ARCH = i586
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync endif
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync endif
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync endif
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync EXESUFFIX = .exe
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncendif
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncifdef ALT_SLASH_JAVA
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync SLASH_JAVA = $(ALT_SLASH_JAVA)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncendif
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# Utilities used
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncCD = cd
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncCP = cp
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncECHO = echo
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncMKDIR = mkdir
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncZIP = zip
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# Root of this test area (important to use full paths in some places)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncTEST_ROOT := $(shell pwd)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# Root of all test results
c679f5c447cd6925763c50493cd83bd9aa032d17vboxsyncABS_BUILD_ROOT = $(TEST_ROOT)/../build/$(PLATFORM)-$(ARCH)
802293f690252d458abe85d83c07b2422d9b5e17vboxsyncABS_TEST_OUTPUT_DIR = $(ABS_BUILD_ROOT)/testoutput
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# Expect JPRT to set PRODUCT_HOME (the product or jdk in this case to test)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncifndef PRODUCT_HOME
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync # Try to use j2sdk-image if it exists
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync ABS_JDK_IMAGE = $(ABS_BUILD_ROOT)/j2sdk-image
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync PRODUCT_HOME := \
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync $(shell \
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync if [ -d $(ABS_JDK_IMAGE) ] ; then \
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync $(ECHO) "$(ABS_JDK_IMAGE)"; \
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync else \
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync $(ECHO) "$(ABS_BUILD_ROOT)" ; \
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync fi)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncendif
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# Expect JPRT to set JAVA_ARGS (e.g. -server etc.)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncJAVA_OPTIONS =
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncifdef JAVA_ARGS
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync JAVA_OPTIONS = $(JAVA_ARGS)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncendif
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# Expect JPRT to set JPRT_ARCHIVE_BUNDLE (path to zip bundle for results)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncARCHIVE_BUNDLE = $(ABS_TEST_OUTPUT_DIR)/ARCHIVE_BUNDLE.zip
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncifdef JPRT_ARCHIVE_BUNDLE
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync ARCHIVE_BUNDLE = $(JPRT_ARCHIVE_BUNDLE)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncendif
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# How to create the test bundle (pass or fail, we want to create this)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncBUNDLE_UP = ( $(MKDIR) -p `dirname $(ARCHIVE_BUNDLE)` \
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync && $(CD) $(ABS_TEST_OUTPUT_DIR) \
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync && $(ZIP) -q -r $(ARCHIVE_BUNDLE) . )
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncBUNDLE_UP_FAILED = ( exitCode=$$? && $(BUNDLE_UP) && exit $${exitCode} )
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync################################################################
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# Default make rule (runs jtreg_tests)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncall: jtreg_tests
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync @$(ECHO) "Testing completed successfully"
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# Prep for output
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncprep: clean
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync @$(MKDIR) -p $(ABS_TEST_OUTPUT_DIR)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync @$(MKDIR) -p `dirname $(ARCHIVE_BUNDLE)`
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# Cleanup
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncclean:
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync $(RM) -r $(ABS_TEST_OUTPUT_DIR)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync $(RM) $(ARCHIVE_BUNDLE)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync################################################################
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# jtreg tests
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# Expect JT_HOME to be set for jtreg tests. (home for jtreg)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncJT_HOME = $(SLASH_JAVA)/re/jtreg/4.0/promoted/latest/binaries/jtreg
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncifdef JPRT_JTREG_HOME
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync JT_HOME = $(JPRT_JTREG_HOME)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncendif
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# Expect JPRT to set TESTDIRS to the jtreg test dirs
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncJTREG_TESTDIRS = demo/jvmti/gctest demo/jvmti/hprof
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncifdef TESTDIRS
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync JTREG_TESTDIRS = $(TESTDIRS)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncendif
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# Default JTREG to run (win32 script works for everybody)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncJTREG = $(JT_HOME)/win32/bin/jtreg
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# Option to tell jtreg to not run tests marked with "ignore"
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncifeq ($(PLATFORM), windows)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync JTREG_KEY_OPTION = -k:!ignore
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncelse
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync JTREG_KEY_OPTION = -k:\!ignore
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncendif
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync#EXTRA_JTREG_OPTIONS =
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncjtreg_tests: prep $(JT_HOME) $(PRODUCT_HOME) $(JTREG)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync $(JTREG) -a -v:fail,error \
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync $(JTREG_KEY_OPTION) \
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync $(EXTRA_JTREG_OPTIONS) \
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync -r:$(ABS_TEST_OUTPUT_DIR)/JTreport \
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync -w:$(ABS_TEST_OUTPUT_DIR)/JTwork \
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync -jdk:$(PRODUCT_HOME) \
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync $(JAVA_OPTIONS:%=-vmoption:%) \
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync $(JTREG_TESTDIRS) \
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync || $(BUNDLE_UP_FAILED)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync $(BUNDLE_UP)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncPHONY_LIST += jtreg_tests
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync################################################################
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# packtest
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# Expect JPRT to set JPRT_PACKTEST_HOME.
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncPACKTEST_HOME = /net/jprt-web.sfbay.sun.com/jprt/allproducts/packtest
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncifdef JPRT_PACKTEST_HOME
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync PACKTEST_HOME = $(JPRT_PACKTEST_HOME)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncendif
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync#EXTRA_PACKTEST_OPTIONS =
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncpacktest: prep $(PACKTEST_HOME)/ptest $(PRODUCT_HOME)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync ( $(CD) $(PACKTEST_HOME) && \
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync $(PACKTEST_HOME)/ptest \
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync -t "$(PRODUCT_HOME)" \
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync $(PACKTEST_STRESS_OPTION) \
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync $(EXTRA_PACKTEST_OPTIONS) \
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync -W $(ABS_TEST_OUTPUT_DIR) \
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync $(JAVA_OPTIONS:%=-J %) \
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync ) || $(BUNDLE_UP_FAILED)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync $(BUNDLE_UP)
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncpacktest_stress: PACKTEST_STRESS_OPTION=-s
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncpacktest_stress: packtest
PHONY_LIST += packtest packtest_stress
################################################################
# Phony targets (e.g. these are not filenames)
.PHONY: all clean prep $(PHONY_LIST)
################################################################