Mon, 15 Oct 2018 15:33:48 +0100
Merge
1 #
2 # Copyright (c) 2011, 2018, 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 #
26 AC_DEFUN_ONCE([HELP_SETUP_DEPENDENCY_HELP],
27 [
28 AC_CHECK_PROGS(PKGHANDLER, apt-get yum port pkgutil pkgadd)
29 ])
31 AC_DEFUN([HELP_MSG_MISSING_DEPENDENCY],
32 [
33 # Print a helpful message on how to acquire the necessary build dependency.
34 # $1 is the help tag: freetype, cups, pulse, alsa etc
35 MISSING_DEPENDENCY=$1
37 if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
38 cygwin_help $MISSING_DEPENDENCY
39 elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
40 msys_help $MISSING_DEPENDENCY
41 else
42 PKGHANDLER_COMMAND=
44 case $PKGHANDLER in
45 apt-get)
46 apt_help $MISSING_DEPENDENCY ;;
47 yum)
48 yum_help $MISSING_DEPENDENCY ;;
49 port)
50 port_help $MISSING_DEPENDENCY ;;
51 pkgutil)
52 pkgutil_help $MISSING_DEPENDENCY ;;
53 pkgadd)
54 pkgadd_help $MISSING_DEPENDENCY ;;
55 esac
57 if test "x$PKGHANDLER_COMMAND" != x; then
58 HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'."
59 fi
60 fi
61 ])
63 cygwin_help() {
64 case $1 in
65 unzip)
66 PKGHANDLER_COMMAND="( cd <location of cygwin setup.exe> && cmd /c setup -q -P unzip )"
67 HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'."
68 ;;
69 zip)
70 PKGHANDLER_COMMAND="( cd <location of cygwin setup.exe> && cmd /c setup -q -P zip )"
71 HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'."
72 ;;
73 make)
74 PKGHANDLER_COMMAND="( cd <location of cygwin setup.exe> && cmd /c setup -q -P make )"
75 HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'."
76 ;;
77 freetype)
78 HELP_MSG="
79 The freetype library can now be build during the configure process.
80 Download the freetype sources and unpack them into an arbitrary directory:
82 wget http://download.savannah.gnu.org/releases/freetype/freetype-2.5.3.tar.gz
83 tar -xzf freetype-2.5.3.tar.gz
85 Then run configure with '--with-freetype-src=<freetype_src>'. This will
86 automatically build the freetype library into '<freetype_src>/lib64' for 64-bit
87 builds or into '<freetype_src>/lib32' for 32-bit builds.
88 Afterwards you can always use '--with-freetype-include=<freetype_src>/include'
89 and '--with-freetype-lib=<freetype_src>/lib[32|64]' for other builds."
90 ;;
91 esac
92 }
94 msys_help() {
95 PKGHANDLER_COMMAND=""
96 }
98 apt_help() {
99 case $1 in
100 devkit)
101 PKGHANDLER_COMMAND="sudo apt-get install build-essential" ;;
102 openjdk)
103 PKGHANDLER_COMMAND="sudo apt-get install openjdk-7-jdk" ;;
104 alsa)
105 PKGHANDLER_COMMAND="sudo apt-get install libasound2-dev" ;;
106 cups)
107 PKGHANDLER_COMMAND="sudo apt-get install libcups2-dev" ;;
108 freetype)
109 PKGHANDLER_COMMAND="sudo apt-get install libfreetype6-dev" ;;
110 pulse)
111 PKGHANDLER_COMMAND="sudo apt-get install libpulse-dev" ;;
112 x11)
113 PKGHANDLER_COMMAND="sudo apt-get install libX11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev" ;;
114 ccache)
115 PKGHANDLER_COMMAND="sudo apt-get install ccache" ;;
116 esac
117 }
119 yum_help() {
120 case $1 in
121 devkit)
122 PKGHANDLER_COMMAND="sudo yum groupinstall \"Development Tools\"" ;;
123 openjdk)
124 PKGHANDLER_COMMAND="sudo yum install java-1.7.0-openjdk" ;;
125 alsa)
126 PKGHANDLER_COMMAND="sudo yum install alsa-lib-devel" ;;
127 cups)
128 PKGHANDLER_COMMAND="sudo yum install cups-devel" ;;
129 freetype)
130 PKGHANDLER_COMMAND="sudo yum install freetype-devel" ;;
131 pulse)
132 PKGHANDLER_COMMAND="sudo yum install pulseaudio-libs-devel" ;;
133 x11)
134 PKGHANDLER_COMMAND="sudo yum install libXtst-devel libXt-devel libXrender-devel" ;;
135 ccache)
136 PKGHANDLER_COMMAND="sudo yum install ccache" ;;
137 esac
138 }
140 port_help() {
141 PKGHANDLER_COMMAND=""
142 }
144 pkgutil_help() {
145 PKGHANDLER_COMMAND=""
146 }
148 pkgadd_help() {
149 PKGHANDLER_COMMAND=""
150 }
152 # This function will check if we're called from the "configure" wrapper while
153 # printing --help. If so, we will print out additional information that can
154 # only be extracted within the autoconf script, and then exit. This must be
155 # called at the very beginning in configure.ac.
156 AC_DEFUN_ONCE([HELP_PRINT_ADDITIONAL_HELP_AND_EXIT],
157 [
158 if test "x$CONFIGURE_PRINT_TOOLCHAIN_LIST" != x; then
159 $PRINTF "The following toolchains are available as arguments to --with-toolchain-type.\n"
160 $PRINTF "Which are valid to use depends on the build platform.\n"
161 for toolchain in $VALID_TOOLCHAINS_all; do
162 # Use indirect variable referencing
163 toolchain_var_name=TOOLCHAIN_DESCRIPTION_$toolchain
164 TOOLCHAIN_DESCRIPTION=${!toolchain_var_name}
165 $PRINTF " %-10s %s\n" $toolchain "$TOOLCHAIN_DESCRIPTION"
166 done
168 # And now exit directly
169 exit 0
170 fi
171 ])
173 AC_DEFUN_ONCE([HELP_PRINT_SUMMARY_AND_WARNINGS],
174 [
175 # Finally output some useful information to the user
177 printf "\n"
178 printf "====================================================\n"
179 printf "A new configuration has been successfully created in\n"
180 printf "$OUTPUT_ROOT\n"
181 if test "x$CONFIGURE_COMMAND_LINE" != x; then
182 printf "using configure arguments '$CONFIGURE_COMMAND_LINE'.\n"
183 else
184 printf "using default settings.\n"
185 fi
187 printf "\n"
188 printf "Configuration summary:\n"
189 printf "* Debug level: $DEBUG_LEVEL\n"
190 printf "* JDK variant: $JDK_VARIANT\n"
191 printf "* JVM variants: $with_jvm_variants\n"
192 printf "* OpenJDK target: OS: $OPENJDK_TARGET_OS, CPU architecture: $OPENJDK_TARGET_CPU_ARCH, address length: $OPENJDK_TARGET_CPU_BITS\n"
194 printf "\n"
195 printf "Tools summary:\n"
196 if test "x$OPENJDK_BUILD_OS" = "xwindows"; then
197 printf "* Environment: $WINDOWS_ENV_VENDOR version $WINDOWS_ENV_VERSION (root at $WINDOWS_ENV_ROOT_PATH)\n"
198 fi
199 printf "* Boot JDK: $BOOT_JDK_VERSION (at $BOOT_JDK)\n"
200 printf "* Toolchain: $TOOLCHAIN_TYPE ($TOOLCHAIN_DESCRIPTION)\n"
201 printf "* C Compiler: Version $CC_VERSION_NUMBER (at $CC)\n"
202 printf "* C++ Compiler: Version $CXX_VERSION_NUMBER (at $CXX)\n"
204 printf "\n"
205 printf "Build performance summary:\n"
206 printf "* Cores to use: $JOBS\n"
207 printf "* Memory limit: $MEMORY_SIZE MB\n"
208 if test "x$CCACHE_STATUS" != "x"; then
209 printf "* ccache status: $CCACHE_STATUS\n"
210 fi
211 printf "\n"
213 if test "x$BUILDING_MULTIPLE_JVM_VARIANTS" = "xyes"; then
214 printf "NOTE: You have requested to build more than one version of the JVM, which\n"
215 printf "will result in longer build times.\n"
216 printf "\n"
217 fi
219 if test "x$FOUND_ALT_VARIABLES" != "x"; then
220 printf "WARNING: You have old-style ALT_ environment variables set.\n"
221 printf "These are not respected, and will be ignored. It is recommended\n"
222 printf "that you clean your environment. The following variables are set:\n"
223 printf "$FOUND_ALT_VARIABLES\n"
224 printf "\n"
225 fi
227 if test "x$OUTPUT_DIR_IS_LOCAL" != "xyes"; then
228 printf "WARNING: Your build output directory is not on a local disk.\n"
229 printf "This will severely degrade build performance!\n"
230 printf "It is recommended that you create an output directory on a local disk,\n"
231 printf "and run the configure script again from that directory.\n"
232 printf "\n"
233 fi
235 if test "x$IS_RECONFIGURE" = "xyes"; then
236 printf "WARNING: The result of this configuration has overridden an older\n"
237 printf "configuration. You *should* run 'make clean' to make sure you get a\n"
238 printf "proper build. Failure to do so might result in strange build problems.\n"
239 printf "\n"
240 fi
242 if test "x$UNSUPPORTED_TOOLCHAIN_VERSION" = "xyes"; then
243 printf "WARNING: The toolchain version used is known to have issues. Please\n"
244 printf "consider using a supported version unless you know what you are doing.\n"
245 printf "\n"
246 fi
247 ])