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