1 #
  2 # Copyright (c) 2012, 2020, Oracle and/or its affiliates. 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.  Oracle designates this
  8 # particular file as subject to the "Classpath" exception as provided
  9 # by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 22 # or visit www.oracle.com if you need additional information or have any
 23 # questions.
 24 #
 25 
 26 ###
 27 ### Global targets for printing help etc.
 28 ###
 29 
 30 # Helper macro to allow $(info) to properly print strings beginning with spaces.
 31 _:=
 32 
 33 help:
 34 	$(info )
 35 	$(info OpenJDK Makefile help)
 36 	$(info =====================)
 37 	$(info )
 38 	$(info Common make targets)
 39 	$(info $(_) make [default]         # Compile all modules and create a runnable "exploded")
 40 	$(info $(_)                        # image (alias for jdk or exploded-image))
 41 	$(info $(_) make all               # Create all images: product, test, docs)
 42 	$(info $(_)                        # (alias for all-images))
 43 	$(info $(_) make images            # Create a complete jdk image)
 44 	$(info $(_)                        # (alias for product-images))
 45 	$(info $(_) make <name>-image      # Build just the image for any of: )
 46 	$(info $(_)                        # jdk, test, docs, symbols, legacy-jre, static-libs)
 47 	$(info $(_) make <phase>           # Build the specified phase and everything it depends on)
 48 	$(info $(_)                        # (gensrc, java, copy, libs, launchers, gendata, rmic))
 49 	$(info $(_) make *-only            # Applies to most targets and disables building the)
 50 	$(info $(_)                        # dependencies for that target. This is faster but may)
 51 	$(info $(_)                        # result in incorrect build results!)
 52 	$(info $(_) make docs              # Create all docs)
 53 	$(info $(_) make docs-jdk-api      # Create just JDK javadocs)
 54 	$(info $(_) make bootcycle-images  # Build images twice, second time with newly built JDK)
 55 	$(info $(_) make install           # Install the generated images locally)
 56 	$(info $(_) make reconfigure       # Rerun configure with the same arguments as last time)
 57 	$(info $(_) make help              # Give some help on using make)
 58 	$(info $(_) make check             # Run basic testing (currently tier1))
 59 	$(info $(_) make test-<test>       # Run test, e.g. test-tier1)
 60 	$(info $(_) make test TEST=<t>     # Run test(s) given by TEST specification)
 61 	$(info $(_) make exploded-test TEST=<t> # Run test(s) on the exploded image instead of)
 62 	$(info $(_)                        # the full jdk image)
 63 	$(info )
 64 	$(info Targets for cleaning)
 65 	$(info $(_) make clean             # Remove all files generated by make, but not those)
 66 	$(info $(_)                        # generated by configure)
 67 	$(info $(_) make dist-clean        # Remove all files, including configuration)
 68 	$(info $(_) make clean-<outputdir> # Remove the subdir in the output dir with the name)
 69 	$(info $(_) make clean-<phase>     # Remove all build results related to a certain build)
 70 	$(info $(_)                        # phase (gensrc, java, libs, launchers))
 71 	$(info $(_) make clean-<module>    # Remove all build results related to a certain module)
 72 	$(info $(_) make clean-<module>-<phase> # Remove all build results related to a certain)
 73 	$(info $(_)                        # module and phase)
 74 	$(info )
 75 	$(info Targets for Hotspot)
 76 	$(info $(_) make hotspot           # Build all of hotspot)
 77 	$(info $(_) make hotspot-<variant> # Build just the specified jvm variant)
 78 	$(info $(_) make hotspot-gensrc    # Only build the gensrc part of hotspot)
 79 	$(info $(_) make hotspot-<variant>-<phase> # Build the specified phase for the variant)
 80 	$(info )
 81 	$(info Targets for specific modules)
 82 	$(info $(_) make <module>          # Build <module> and everything it depends on)
 83 	$(info $(_) make <module>-<phase>  # Compile the specified phase for the specified module)
 84 	$(info $(_)                        # and everything it depends on)
 85 	$(info $(_)                        # (gensrc, java, copy, libs, launchers, gendata, rmic))
 86 	$(info )
 87 	$(info Make control variables)
 88 	$(info $(_) CONF=                  # Build all configurations (note, assignment is empty))
 89 	$(info $(_) CONF=<substring>       # Build the configuration(s) with a name matching)
 90 	$(info $(_)                        # <substring>)
 91 	$(info $(_) CONF_NAME=<string>     # Build the configuration with exactly the <string>)
 92 	$(info $(_) SPEC=<spec file>       # Build the configuration given by the spec file)
 93 	$(info $(_) LOG=<loglevel>         # Change the log level from warn to <loglevel>)
 94 	$(info $(_)                        # Available log levels are:)
 95 	$(info $(_)                        # 'warn' (default), 'info', 'debug' and 'trace')
 96 	$(info $(_)                        # To see executed command lines, use LOG=debug)
 97 	$(info $(_) JOBS=<n>               # Run <n> parallel make jobs)
 98 	$(info $(_)                        # Note that -jN does not work as expected!)
 99 	$(info $(_) TEST_JOBS=<n>          # Run <n> parallel test jobs)
100 	$(info $(_) CONF_CHECK=<method>    # What to do if spec file is out of date)
101 	$(info $(_)                        # method is 'auto', 'ignore' or 'fail' (default))
102 	$(info $(_) TEST="test1 ..."       # Use the given test descriptor(s) for testing, e.g.)
103 	$(info $(_)                        # make test TEST="jdk_lang gtest:all")
104 	$(info $(_) JTREG="OPT1=x;OPT2=y"  # Control the JTREG test harness)
105 	$(info $(_) GTEST="OPT1=x;OPT2=y"  # Control the GTEST test harness)
106 	$(info $(_) MICRO="OPT1=x;OPT2=y"  # Control the MICRO test harness)
107 	$(info $(_) TEST_OPTS="OPT1=x;..." # Generic control of all test harnesses)
108 	$(info $(_) TEST_VM_OPTS="ARG ..." # Same as setting TEST_OPTS to VM_OPTIONS="ARG ...")
109 	$(info )
110 	$(if $(all_confs), $(info Available configurations in $(build_dir):) $(foreach var,$(all_confs),$(info * $(var))),\
111 	    $(info No configurations were found in $(build_dir).) $(info Run 'bash configure' to create a configuration.))
112         # We need a dummy rule otherwise make will complain
113 	@true
114 
115 print-configurations:
116 	$(foreach var, $(all_confs), $(info $(var)))
117         # We need a dummy rule otherwise make will complain
118 	@true
119 
120 test-prebuilt:
121 	@( cd $(topdir) && \
122 	    $(MAKE) --no-print-directory -r -R -I make/common/ -f make/RunTestsPrebuilt.gmk \
123 	    test-prebuilt CUSTOM_MAKE_DIR=$(CUSTOM_MAKE_DIR) TEST="$(TEST)" )
124 
125 # Alias for backwards compatibility
126 run-test-prebuilt: test-prebuilt
127 
128 ALL_GLOBAL_TARGETS := help print-configurations test-prebuilt run-test-prebuilt
129 
130 .PHONY: $(ALL_GLOBAL_TARGETS)