jdk/make/common/Sanity.gmk
changeset 2 90ce3da70b43
child 1162 0eb72b6aea56
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/common/Sanity.gmk	Sat Dec 01 00:00:00 2007 +0000
@@ -0,0 +1,124 @@
+#
+# Copyright 2001-2007 Sun Microsystems, Inc.  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.  Sun designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+# CA 95054 USA or visit www.sun.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-findbugs_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-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-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