help.m4 8.5 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
#
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
# 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 34 35 36
  # Print a helpful message on how to acquire the necessary build dependency.
  # $1 is the help tag: freetyp2, cups, pulse, alsa etc
  MISSING_DEPENDENCY=$1

37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
  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
    PKGHANDLER_COMMAND=

    case $PKGHANDLER in
      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 ;;
      * )
        break ;;
    esac
58

59 60 61
    if test "x$PKGHANDLER_COMMAND" != x; then
      HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'."
    fi
62
  fi
63
])
64

O
ohair 已提交
65
cygwin_help() {
66
  case $1 in
O
ohair 已提交
67
    unzip)
68 69 70
      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 已提交
71
    zip)
72 73 74
      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 已提交
75
    make)
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
      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'."
      ;;
    freetype2)
      if test "x$OPENJDK_TARGET_CPU_BITS" = x32; then
        HELP_MSG="To install freetype, run:
wget \"http://gnuwin32.sourceforge.net/downlinks/freetype.php\" -O /tmp/freetype-setup.exe
chmod +x /tmp/freetype-setup.exe
/tmp/freetype-setup.exe
Follow GUI prompts, and install to default directory \"C:\Program Files (x86)\GnuWin32\".
After installation, locate lib/libfreetype.dll.a and make a copy with the name freetype.dll."
      else
        HELP_MSG="You need to build a 64-bit version of freetype.
This is not readily available.
You can find source code and build instructions on
http://www.freetype.org/
If you put the resulting build in \"C:\Program Files\GnuWin32\", it will be found automatically."
      fi
      ;;
O
ohair 已提交
95
    * )
96 97
      break ;;
  esac
O
ohair 已提交
98 99
}

100 101 102 103
msys_help() {
  PKGHANDLER_COMMAND=""
}

104
apt_help() {
105
  case $1 in
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
    freetype2)
115
      PKGHANDLER_COMMAND="sudo apt-get install libfreetype6-dev" ;;
116
    pulse)
117
      PKGHANDLER_COMMAND="sudo apt-get install libpulse-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
    * )
123 124
      break ;;
  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.7.0-openjdk" ;;
133
    alsa)
134
      PKGHANDLER_COMMAND="sudo yum install alsa-lib-devel" ;;
135
    cups)
136
      PKGHANDLER_COMMAND="sudo yum install cups-devel" ;;
137
    freetype2)
138
      PKGHANDLER_COMMAND="sudo yum install freetype-devel" ;;
139
    pulse)
140
      PKGHANDLER_COMMAND="sudo yum install pulseaudio-libs-devel" ;;
141
    x11)
142
      PKGHANDLER_COMMAND="sudo yum install libXtst-devel libXt-devel libXrender-devel" ;;
143
    ccache)
144
      PKGHANDLER_COMMAND="sudo yum install ccache" ;;
145
    * )
146 147
      break ;;
  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 163

AC_DEFUN_ONCE([HELP_PRINT_SUMMARY_AND_WARNINGS],
[
164 165 166 167 168 169 170 171 172 173 174 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 200 201 202 203 204 205 206 207 208 209 210 211 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 241 242 243 244 245 246 247 248 249 250
  # Finally output some useful information to the user

  if test "x$CCACHE_FOUND" != x; then
    if  test "x$HAS_GOOD_CCACHE" = x; then
      CCACHE_STATUS="installed, but disabled (version older than 3.1.4)"
      CCACHE_HELP_MSG="You have ccache installed, but it is a version prior to 3.1.4. Try upgrading."
    else
      CCACHE_STATUS="installed and in use"
    fi
  else
    if test "x$GCC" = xyes; then
      CCACHE_STATUS="not installed (consider installing)"
      CCACHE_HELP_MSG="You do not have ccache installed. Try installing it."
    else
      CCACHE_STATUS="not available for your system"
    fi
  fi

  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"
  printf "* C Compiler:     $CC_VENDOR version $CC_VERSION (at $CC)\n"
  printf "* C++ Compiler:   $CXX_VENDOR version $CXX_VERSION (at $CXX)\n"

  printf "\n"
  printf "Build performance summary:\n"
  printf "* Cores to use:   $JOBS\n"
  printf "* Memory limit:   $MEMORY_SIZE MB\n"
  printf "* ccache status:  $CCACHE_STATUS\n"
  printf "\n"

  if test "x$CCACHE_HELP_MSG" != x && test "x$HIDE_PERFORMANCE_HINTS" = "xno"; then
    printf "Build performance tip: ccache gives a tremendous speedup for C++ recompilations.\n"
    printf "$CCACHE_HELP_MSG\n"
    HELP_MSG_MISSING_DEPENDENCY([ccache])
    printf "$HELP_MSG\n"
    printf "\n"
  fi

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