blob: 25f5fa7bfe8b079e12ebf2c5b3c006873a67805d [file] [log] [blame]
#
# Copyright (c) 2001, 2012, 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-msdevtools_path \
sane-dxsdk \
sane-compiler \
sane-cacerts \
sane-ant_version \
sane-zip_version \
sane-msvcrt_path
# 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-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