jdk/make/common/Sanity.gmk
author ohair
Tue, 25 May 2010 15:58:33 -0700
changeset 5506 202f599c92aa
parent 4917 c98da2209f8c
child 7666 7b994e3dd41d
permissions -rw-r--r--
6943119: Rebrand source copyright notices Reviewed-by: darcy, weijun

#
# Copyright (c) 2001, 2008, 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
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.  Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#

# Settings and rules to validate the JDK build environment.

.PHONY: \
	pre-sanity \
	sanity \
	sanity-base \
	sanity-docs \
	sanity-images \
	post-sanity-all \
	post-sanity-docs \
	post-sanity-images \
	sanity-all

# Bring in common sanity check rules
include $(JDK_MAKE_SHARED_DIR)/Sanity.gmk

# EXTERNALSANITYCONTROL means that this workspace build is being controlled by
# the control workspace, and that workspace is managing what is done to the sanity
# check files, and this sanity check run is only appending to those files.

pre-sanity:  $(SANITY_FILES)
ifndef EXTERNALSANITYCONTROL
	@$(RM) $(SANITY_FILES)
endif

sanity-base: pre-sanity \
    sane-settings \
    sane-insane \
    sane-make \
    sane-build_number \
    sane-os_version \
    sane-makeflags \
    sane-alt_outputdir \
    sane-outputdir \
    sane-devtools_path \
    sane-compiler_path \
    sane-unixcommand_path \
    sane-usrbin_path \
    sane-math_iso \
    sane-libCrun \
    sane-unixccs_path \
    sane-odbcdir \
    sane-msdevtools_path \
    sane-dxsdk \
    sane-compiler \
    sane-cacerts \
    sane-ant_version \
    sane-zip_version \
    sane-msvcrt_path \
    sane-build_modules

# The rules sanity-* have a one-to-one correspondence with the major targets
# Each sanity-* rule should have no body to ensure that the post-sanity-* is the
# last rule executed. The pre-sanity rule should be the first dependency. This design 
# expects the execution of pre-sanity only once per gnumake command invocation, 
# thus, info written to ERROR_FILE and/or WARNING_FILE will not be removed by subsequent
# targets in the same 'gnumake' command line.

sanity-all:: sanity-base \
    sane-classpath \
    sane-java_home \
    sane-fonts \
    sane-binary-plugs \
    sane-variant \
    sane-ld_library_path \
    sane-ld_library_path_64 \
    sane-ld_options \
    sane-ld_run_path \
    sane-alt_bootdir \
    sane-bootdir \
    sane-local-bootdir \
    sane-alsa-headers

ifdef OPENJDK
sanity-all:: sane-freetype 
endif


# Always check cups header paths on solaris & linux
ifneq ($(PLATFORM), windows)
sanity-all:: \
    sane-cups
endif

# Always check hotspot binary paths even if we are building them from scratch
HOTSPOT_IMPORT_CHECK=true
ifeq ($(HOTSPOT_IMPORT_CHECK),true)
sanity-all:: \
    sane-hotspot_binaries \
    sane-hotspot_import
endif

sanity-docs: sanity-base sane-docs_import

sanity-images:: sanity-base

sanity:: sanity-all post-sanity

# this should be the last rule in any target's sanity rule.
post-sanity post-sanity-all post-sanity-docs post-sanity-images: sane-lastrule