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