help.m4 8.4 KB
Newer Older
1
#
2
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.  Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#

26 27
AC_DEFUN_ONCE([HELP_SETUP_DEPENDENCY_HELP],
[
28
  AC_CHECK_PROGS(PKGHANDLER, apt-get yum port pkgutil pkgadd)
29 30 31 32
])

AC_DEFUN([HELP_MSG_MISSING_DEPENDENCY],
[
33
  # Print a helpful message on how to acquire the necessary build dependency.
I
ihse 已提交
34
  # $1 is the help tag: freetype, cups, pulse, alsa etc
35 36
  MISSING_DEPENDENCY=$1

37 38 39 40 41
  if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
    cygwin_help $MISSING_DEPENDENCY
  elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
    msys_help $MISSING_DEPENDENCY
  else
42 43 44
    PKGHANDLER_COMMAND=

    case $PKGHANDLER in
45 46 47 48 49 50 51 52 53 54
      apt-get)
        apt_help     $MISSING_DEPENDENCY ;;
      yum)
        yum_help     $MISSING_DEPENDENCY ;;
      port)
        port_help    $MISSING_DEPENDENCY ;;
      pkgutil)
        pkgutil_help $MISSING_DEPENDENCY ;;
      pkgadd)
        pkgadd_help  $MISSING_DEPENDENCY ;;
55 56 57
    esac

    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

O
ohair 已提交
63
cygwin_help() {
64
  case $1 in
O
ohair 已提交
65
    unzip)
66 67 68
      PKGHANDLER_COMMAND="( cd <location of cygwin setup.exe> && cmd /c setup -q -P unzip )"
      HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'."
      ;;
O
ohair 已提交
69
    zip)
70 71 72
      PKGHANDLER_COMMAND="( cd <location of cygwin setup.exe> && cmd /c setup -q -P zip )"
      HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'."
      ;;
O
ohair 已提交
73
    make)
74 75 76
      PKGHANDLER_COMMAND="( cd <location of cygwin setup.exe> && cmd /c setup -q -P make )"
      HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'."
      ;;
I
ihse 已提交
77
    freetype)
78 79 80 81 82 83 84 85 86 87 88 89
      HELP_MSG="
The freetype library can now be build during the configure process.
Download the freetype sources and unpack them into an arbitrary directory:

wget http://download.savannah.gnu.org/releases/freetype/freetype-2.5.3.tar.gz
tar -xzf freetype-2.5.3.tar.gz

Then run configure with '--with-freetype-src=<freetype_src>'. This will
automatically build the freetype library into '<freetype_src>/lib64' for 64-bit
builds or into '<freetype_src>/lib32' for 32-bit builds.
Afterwards you can always use '--with-freetype-include=<freetype_src>/include'
and '--with-freetype-lib=<freetype_src>/lib[32|64]' for other builds."
90
      ;;
91
  esac
O
ohair 已提交
92 93
}

94 95
msys_help() {
  PKGHANDLER_COMMAND=""
O
ohair 已提交
96 97
}

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" ;;
I
ihse 已提交
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 116
      PKGHANDLER_COMMAND="sudo apt-get install ccache" ;;
  esac
117 118
}

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" ;;
I
ihse 已提交
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 137
      PKGHANDLER_COMMAND="sudo yum install ccache" ;;
  esac
138 139
}

140
port_help() {
141
  PKGHANDLER_COMMAND=""
142 143
}

144
pkgutil_help() {
145
  PKGHANDLER_COMMAND=""
146 147
}

148
pkgadd_help() {
149
  PKGHANDLER_COMMAND=""
150
}
151

152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172
# This function will check if we're called from the "configure" wrapper while
# printing --help. If so, we will print out additional information that can
# only be extracted within the autoconf script, and then exit. This must be
# called at the very beginning in configure.ac.
AC_DEFUN_ONCE([HELP_PRINT_ADDITIONAL_HELP_AND_EXIT],
[
  if test "x$CONFIGURE_PRINT_TOOLCHAIN_LIST" != x; then
    $PRINTF "The following toolchains are available as arguments to --with-toolchain-type.\n"
    $PRINTF "Which are valid to use depends on the build platform.\n"
    for toolchain in $VALID_TOOLCHAINS_all; do
      # Use indirect variable referencing
      toolchain_var_name=TOOLCHAIN_DESCRIPTION_$toolchain
      TOOLCHAIN_DESCRIPTION=${!toolchain_var_name}
      $PRINTF "  %-10s  %s\n" $toolchain "$TOOLCHAIN_DESCRIPTION"
    done

    # And now exit directly
    exit 0
  fi
])

173 174
AC_DEFUN_ONCE([HELP_PRINT_SUMMARY_AND_WARNINGS],
[
175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199
  # Finally output some useful information to the user

  printf "\n"
  printf "====================================================\n"
  printf "A new configuration has been successfully created in\n"
  printf "$OUTPUT_ROOT\n"
  if test "x$CONFIGURE_COMMAND_LINE" != x; then
    printf "using configure arguments '$CONFIGURE_COMMAND_LINE'.\n"
  else
    printf "using default settings.\n"
  fi

  printf "\n"
  printf "Configuration summary:\n"
  printf "* Debug level:    $DEBUG_LEVEL\n"
  printf "* JDK variant:    $JDK_VARIANT\n"
  printf "* JVM variants:   $with_jvm_variants\n"
  printf "* OpenJDK target: OS: $OPENJDK_TARGET_OS, CPU architecture: $OPENJDK_TARGET_CPU_ARCH, address length: $OPENJDK_TARGET_CPU_BITS\n"

  printf "\n"
  printf "Tools summary:\n"
  if test "x$OPENJDK_BUILD_OS" = "xwindows"; then
    printf "* Environment:    $WINDOWS_ENV_VENDOR version $WINDOWS_ENV_VERSION (root at $WINDOWS_ENV_ROOT_PATH)\n"
  fi
  printf "* Boot JDK:       $BOOT_JDK_VERSION (at $BOOT_JDK)\n"
200 201 202
  printf "* Toolchain:      $TOOLCHAIN_TYPE ($TOOLCHAIN_DESCRIPTION)\n"
  printf "* C Compiler:     Version $CC_VERSION_NUMBER (at $CC)\n"
  printf "* C++ Compiler:   Version $CXX_VERSION_NUMBER (at $CXX)\n"
203 204 205 206 207

  printf "\n"
  printf "Build performance summary:\n"
  printf "* Cores to use:   $JOBS\n"
  printf "* Memory limit:   $MEMORY_SIZE MB\n"
K
kevinw 已提交
208 209
  if test "x$CCACHE_STATUS" != "x"; then
    printf "* ccache status:  $CCACHE_STATUS\n"
210
  fi
K
kevinw 已提交
211
  printf "\n"
212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240

  if test "x$BUILDING_MULTIPLE_JVM_VARIANTS" = "xyes"; then
    printf "NOTE: You have requested to build more than one version of the JVM, which\n"
    printf "will result in longer build times.\n"
    printf "\n"
  fi

  if test "x$FOUND_ALT_VARIABLES" != "x"; then
    printf "WARNING: You have old-style ALT_ environment variables set.\n"
    printf "These are not respected, and will be ignored. It is recommended\n"
    printf "that you clean your environment. The following variables are set:\n"
    printf "$FOUND_ALT_VARIABLES\n"
    printf "\n"
  fi

  if test "x$OUTPUT_DIR_IS_LOCAL" != "xyes"; then
    printf "WARNING: Your build output directory is not on a local disk.\n"
    printf "This will severely degrade build performance!\n"
    printf "It is recommended that you create an output directory on a local disk,\n"
    printf "and run the configure script again from that directory.\n"
    printf "\n"
  fi

  if test "x$IS_RECONFIGURE" = "xyes"; then
    printf "WARNING: The result of this configuration has overridden an older\n"
    printf "configuration. You *should* run 'make clean' to make sure you get a\n"
    printf "proper build. Failure to do so might result in strange build problems.\n"
    printf "\n"
  fi
241
])