common/autoconf/help.m4

Fri, 08 Jun 2018 14:06:17 -0700

author
kevinw
date
Fri, 08 Jun 2018 14:06:17 -0700
changeset 2228
1a5c98aae346
parent 2223
01cc48ed67f3
child 2316
64a3eeabf6e5
child 2400
9da665f87c4b
permissions
-rw-r--r--

8196108: Add build support for VS 2015/2017
Reviewed-by: ihse, tbell

     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 ])

mercurial