blob: a4ae86f47bdf232b53bc5f649fe75d40ced6072b [file] [log] [blame]
J. Duke319a3b92007-12-01 00:00:00 +00001#
2# Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved.
3# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4#
5# This code is free software; you can redistribute it and/or modify it
6# under the terms of the GNU General Public License version 2 only, as
7# published by the Free Software Foundation. Sun designates this
8# particular file as subject to the "Classpath" exception as provided
9# by Sun in the LICENSE file that accompanied this code.
10#
11# This code is distributed in the hope that it will be useful, but WITHOUT
12# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14# version 2 for more details (a copy is included in the LICENSE file that
15# accompanied this code).
16#
17# You should have received a copy of the GNU General Public License version
18# 2 along with this work; if not, write to the Free Software Foundation,
19# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20#
21# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
22# CA 95054 USA or visit www.sun.com if you need additional information or
23# have any questions.
24#
25
26# Settings and rules to validate the JDK build environment.
27
28.PHONY: \
29 pre-sanity \
30 sanity \
31 sanity-base \
32 sanity-docs \
33 sanity-images \
34 post-sanity-all \
35 post-sanity-docs \
36 post-sanity-images \
37 sanity-all
38
39# Bring in common sanity check rules
40include $(JDK_MAKE_SHARED_DIR)/Sanity.gmk
41
42# EXTERNALSANITYCONTROL means that this workspace build is being controlled by
43# the control workspace, and that workspace is managing what is done to the sanity
44# check files, and this sanity check run is only appending to those files.
45
46pre-sanity: $(SANITY_FILES)
47ifndef EXTERNALSANITYCONTROL
48 @$(RM) $(SANITY_FILES)
49endif
50
51sanity-base: pre-sanity \
52 sane-settings \
53 sane-insane \
54 sane-make \
55 sane-build_number \
56 sane-os_version \
57 sane-makeflags \
58 sane-alt_outputdir \
59 sane-outputdir \
60 sane-devtools_path \
61 sane-compiler_path \
62 sane-unixcommand_path \
63 sane-usrbin_path \
64 sane-math_iso \
65 sane-libCrun \
66 sane-unixccs_path \
67 sane-odbcdir \
68 sane-msdevtools_path \
69 sane-dxsdk \
70 sane-compiler \
71 sane-cacerts \
72 sane-ant_version \
73 sane-findbugs_version \
74 sane-zip_version \
75 sane-msvcrt_path
76
77# The rules sanity-* have a one-to-one correspondence with the major targets
78# Each sanity-* rule should have no body to ensure that the post-sanity-* is the
79# last rule executed. The pre-sanity rule should be the first dependency. This design
80# expects the execution of pre-sanity only once per gnumake command invocation,
81# thus, info written to ERROR_FILE and/or WARNING_FILE will not be removed by subsequent
82# targets in the same 'gnumake' command line.
83
84sanity-all:: sanity-base \
85 sane-classpath \
86 sane-java_home \
87 sane-fonts \
88 sane-binary-plugs \
89 sane-variant \
90 sane-ld_library_path \
91 sane-ld_library_path_64 \
92 sane-ld_options \
93 sane-ld_run_path \
94 sane-alt_bootdir \
95 sane-bootdir \
96 sane-alsa-headers
97
98ifdef OPENJDK
99sanity-all:: sane-freetype
100endif
101
102
103# Always check cups header paths on solaris & linux
104ifneq ($(PLATFORM), windows)
105sanity-all:: \
106 sane-cups
107endif
108
109# Always check hotspot binary paths even if we are building them from scratch
110HOTSPOT_IMPORT_CHECK=true
111ifeq ($(HOTSPOT_IMPORT_CHECK),true)
112sanity-all:: \
113 sane-hotspot_binaries \
114 sane-hotspot_import
115endif
116
117sanity-docs: sanity-base sane-docs_import
118
119sanity-images:: sanity-base
120
121sanity:: sanity-all post-sanity
122
123# this should be the last rule in any target's sanity rule.
124post-sanity post-sanity-all post-sanity-docs post-sanity-images: sane-lastrule