1 # 2 # Copyright (c) 2011, 2016, 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 AC_DEFUN_ONCE([HELP_SETUP_DEPENDENCY_HELP], 27 [ 28 AC_CHECK_PROGS(PKGHANDLER, apt-get yum port pkgutil pkgadd) 29 ]) 30 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, alsa etc 35 MISSING_DEPENDENCY=$1 36 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= 43 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 56 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 ]) 62 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: 81 82 wget http://download.savannah.gnu.org/releases/freetype/freetype-2.5.3.tar.gz 83 tar -xzf freetype-2.5.3.tar.gz 84 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 Alternatively you can unpack the sources like this to use the default directory: 92 93 tar --one-top-level=$HOME/freetype --strip-components=1 -xzf freetype-2.5.3.tar.gz" 94 ;; 95 esac 96 } 97 98 msys_help() { 99 PKGHANDLER_COMMAND="" 100 } 101 102 apt_help() { 103 case $1 in 104 reduced) 105 PKGHANDLER_COMMAND="sudo apt-get install gcc-multilib g++-multilib" ;; 106 devkit) 107 PKGHANDLER_COMMAND="sudo apt-get install build-essential" ;; 108 openjdk) 109 PKGHANDLER_COMMAND="sudo apt-get install openjdk-8-jdk" ;; 110 alsa) 111 PKGHANDLER_COMMAND="sudo apt-get install libasound2-dev" ;; 112 cups) 113 PKGHANDLER_COMMAND="sudo apt-get install libcups2-dev" ;; 114 freetype) 115 PKGHANDLER_COMMAND="sudo apt-get install libfreetype6-dev" ;; 116 ffi) 117 PKGHANDLER_COMMAND="sudo apt-get install libffi-dev" ;; 118 x11) 119 PKGHANDLER_COMMAND="sudo apt-get install libX11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev" ;; 120 ccache) 121 PKGHANDLER_COMMAND="sudo apt-get install ccache" ;; 122 dtrace) 123 PKGHANDLER_COMMAND="sudo apt-get install systemtap-sdt-dev" ;; 124 elf) 125 PKGHANDLER_COMMAND="sudo apt-get install libelf-dev" ;; 126 esac 127 } 128 129 yum_help() { 130 case $1 in 131 devkit) 132 PKGHANDLER_COMMAND="sudo yum groupinstall \"Development Tools\"" ;; 133 openjdk) 134 PKGHANDLER_COMMAND="sudo yum install java-1.8.0-openjdk-devel" ;; 135 alsa) 136 PKGHANDLER_COMMAND="sudo yum install alsa-lib-devel" ;; 137 cups) 138 PKGHANDLER_COMMAND="sudo yum install cups-devel" ;; 139 freetype) 140 PKGHANDLER_COMMAND="sudo yum install freetype-devel" ;; 141 x11) 142 PKGHANDLER_COMMAND="sudo yum install libXtst-devel libXt-devel libXrender-devel libXi-devel" ;; 143 ccache) 144 PKGHANDLER_COMMAND="sudo yum install ccache" ;; 145 elf) 146 PKGHANDLER_COMMAND="sudo yum install elfutils-libelf-devel" ;; 147 esac 148 } 149 150 port_help() { 151 PKGHANDLER_COMMAND="" 152 } 153 154 pkgutil_help() { 155 PKGHANDLER_COMMAND="" 156 } 157 158 pkgadd_help() { 159 PKGHANDLER_COMMAND="" 160 } 161 162 # This function will check if we're called from the "configure" wrapper while 163 # printing --help. If so, we will print out additional information that can 164 # only be extracted within the autoconf script, and then exit. This must be 165 # called at the very beginning in configure.ac. 166 AC_DEFUN_ONCE([HELP_PRINT_ADDITIONAL_HELP_AND_EXIT], 167 [ 168 if test "x$CONFIGURE_PRINT_ADDITIONAL_HELP" != x; then 169 170 # Print available toolchains 171 $PRINTF "The following toolchains are available as arguments to --with-toolchain-type.\n" 172 $PRINTF "Which are valid to use depends on the build platform.\n" 173 for toolchain in $VALID_TOOLCHAINS_all; do 174 # Use indirect variable referencing 175 toolchain_var_name=TOOLCHAIN_DESCRIPTION_$toolchain 176 TOOLCHAIN_DESCRIPTION=${!toolchain_var_name} 177 $PRINTF " %-10s %s\n" $toolchain "$TOOLCHAIN_DESCRIPTION" 178 done 179 $PRINTF "\n" 180 181 # Print available jvm features 182 $PRINTF "The following JVM features are available as arguments to --with-jvm-features.\n" 183 $PRINTF "Which are valid to use depends on the target platform.\n " 184 $PRINTF "%s " $VALID_JVM_FEATURES 185 $PRINTF "\n" 186 187 # And now exit directly 188 exit 0 189 fi 190 ]) 191 192 AC_DEFUN_ONCE([HELP_PRINT_SUMMARY_AND_WARNINGS], 193 [ 194 # Finally output some useful information to the user 195 196 printf "\n" 197 printf "====================================================\n" 198 if test "x$no_create" != "xyes"; then 199 if test "x$IS_RECONFIGURE" != "xyes"; then 200 printf "A new configuration has been successfully created in\n%s\n" "$OUTPUT_ROOT" 201 else 202 printf "The existing configuration has been successfully updated in\n%s\n" "$OUTPUT_ROOT" 203 fi 204 else 205 if test "x$IS_RECONFIGURE" != "xyes"; then 206 printf "A configuration has been successfully checked but not created\n" 207 else 208 printf "The existing configuration has been successfully checked in\n%s\n" "$OUTPUT_ROOT" 209 fi 210 fi 211 if test "x$CONFIGURE_COMMAND_LINE" != x; then 212 printf "using configure arguments '$CONFIGURE_COMMAND_LINE'.\n" 213 else 214 printf "using default settings.\n" 215 fi 216 217 printf "\n" 218 printf "Configuration summary:\n" 219 printf "* Debug level: $DEBUG_LEVEL\n" 220 printf "* HS debug level: $HOTSPOT_DEBUG_LEVEL\n" 221 printf "* JDK variant: $JDK_VARIANT\n" 222 printf "* JVM variants: $JVM_VARIANTS\n" 223 printf "* OpenJDK target: OS: $OPENJDK_TARGET_OS, CPU architecture: $OPENJDK_TARGET_CPU_ARCH, address length: $OPENJDK_TARGET_CPU_BITS\n" 224 printf "* Version string: $VERSION_STRING ($VERSION_SHORT)\n" 225 226 printf "\n" 227 printf "Tools summary:\n" 228 if test "x$OPENJDK_BUILD_OS" = "xwindows"; then 229 printf "* Environment: $WINDOWS_ENV_VENDOR version $WINDOWS_ENV_VERSION (root at $WINDOWS_ENV_ROOT_PATH)\n" 230 fi 231 printf "* Boot JDK: $BOOT_JDK_VERSION (at $BOOT_JDK)\n" 232 if test "x$TOOLCHAIN_VERSION" != "x"; then 233 print_version=" $TOOLCHAIN_VERSION" 234 fi 235 printf "* Toolchain: $TOOLCHAIN_TYPE ($TOOLCHAIN_DESCRIPTION$print_version)\n" 236 printf "* C Compiler: Version $CC_VERSION_NUMBER (at $CC)\n" 237 printf "* C++ Compiler: Version $CXX_VERSION_NUMBER (at $CXX)\n" 238 239 printf "\n" 240 printf "Build performance summary:\n" 241 printf "* Cores to use: $JOBS\n" 242 printf "* Memory limit: $MEMORY_SIZE MB\n" 243 if test "x$CCACHE_STATUS" != "x"; then 244 printf "* ccache status: $CCACHE_STATUS\n" 245 fi 246 printf "\n" 247 248 if test "x$BUILDING_MULTIPLE_JVM_VARIANTS" = "xtrue"; then 249 printf "NOTE: You have requested to build more than one version of the JVM, which\n" 250 printf "will result in longer build times.\n" 251 printf "\n" 252 fi 253 254 if test "x$FOUND_ALT_VARIABLES" != "x"; then 255 printf "WARNING: You have old-style ALT_ environment variables set.\n" 256 printf "These are not respected, and will be ignored. It is recommended\n" 257 printf "that you clean your environment. The following variables are set:\n" 258 printf "$FOUND_ALT_VARIABLES\n" 259 printf "\n" 260 fi 261 262 if test "x$OUTPUT_DIR_IS_LOCAL" != "xyes"; then 263 printf "WARNING: Your build output directory is not on a local disk.\n" 264 printf "This will severely degrade build performance!\n" 265 printf "It is recommended that you create an output directory on a local disk,\n" 266 printf "and run the configure script again from that directory.\n" 267 printf "\n" 268 fi 269 270 if test "x$IS_RECONFIGURE" = "xyes" && test "x$no_create" != "xyes"; then 271 printf "WARNING: The result of this configuration has overridden an older\n" 272 printf "configuration. You *should* run 'make clean' to make sure you get a\n" 273 printf "proper build. Failure to do so might result in strange build problems.\n" 274 printf "\n" 275 fi 276 277 if test "x$IS_RECONFIGURE" != "xyes" && test "x$no_create" = "xyes"; then 278 printf "WARNING: The result of this configuration was not saved.\n" 279 printf "You should run without '--no-create | -n' to create the configuration.\n" 280 printf "\n" 281 fi 282 ]) 283 284 AC_DEFUN_ONCE([HELP_REPEAT_WARNINGS], 285 [ 286 # Locate config.log. 287 if test -e "$CONFIGURESUPPORT_OUTPUTDIR/config.log"; then 288 CONFIG_LOG_PATH="$CONFIGURESUPPORT_OUTPUTDIR" 289 elif test -e "./config.log"; then 290 CONFIG_LOG_PATH="." 291 fi 292 293 if test -e "$CONFIG_LOG_PATH/config.log"; then 294 $GREP '^configure:.*: WARNING:' "$CONFIG_LOG_PATH/config.log" > /dev/null 2>&1 295 if test $? -eq 0; then 296 printf "The following warnings were produced. Repeated here for convenience:\n" 297 # We must quote sed expression (using []) to stop m4 from eating the []. 298 $GREP '^configure:.*: WARNING:' "$CONFIG_LOG_PATH/config.log" | $SED -e [ 's/^configure:[0-9]*: //' ] 299 printf "\n" 300 fi 301 fi 302 ])