1 #
   2 # Copyright (c) 2011, 2012, 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: freetyp2, cups, pulse, alsa etc
  35     MISSING_DEPENDENCY=$1
  36     PKGHANDLER_COMMAND=
  37 
  38     case $PKGHANDLER in
  39         apt-get)
  40                 apt_help     $MISSING_DEPENDENCY ;;
  41     yum)
  42                 yum_help     $MISSING_DEPENDENCY ;;
  43         port)
  44                 port_help    $MISSING_DEPENDENCY ;;
  45         pkgutil)
  46                 pkgutil_help $MISSING_DEPENDENCY ;;
  47         pkgadd)
  48                 pkgadd_help  $MISSING_DEPENDENCY ;;
  49     * )
  50       break ;;
  51     esac
  52 
  53     if test "x$PKGHANDLER_COMMAND" != x; then
  54         HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'."
  55     fi
  56 ])
  57 
  58 cygwin_help() {
  59     case $1 in
  60     unzip)
  61         PKGHANDLER_COMMAND="cd <location of cygwin setup.exe> && cmd /c setup -q -P unzip" ;;
  62     zip)
  63         PKGHANDLER_COMMAND="cd <location of cygwin setup.exe> && cmd /c setup -q -P zip" ;;
  64     make)
  65         PKGHANDLER_COMMAND="cd <location of cygwin setup.exe> && cmd /c setup -q -P make" ;;
  66     * )
  67        break ;;
  68     esac
  69 }
  70 
  71 apt_help() {
  72     case $1 in
  73     devkit)
  74         PKGHANDLER_COMMAND="sudo apt-get install build-essential" ;;
  75     openjdk)
  76         PKGHANDLER_COMMAND="sudo apt-get install openjdk-7-jdk" ;;
  77     alsa)
  78         PKGHANDLER_COMMAND="sudo apt-get install libasound2-dev" ;;
  79     cups)
  80         PKGHANDLER_COMMAND="sudo apt-get install libcups2-dev" ;;
  81     freetype2)
  82         PKGHANDLER_COMMAND="sudo apt-get install libfreetype6-dev" ;;
  83     pulse)
  84         PKGHANDLER_COMMAND="sudo apt-get install libpulse-dev" ;;
  85     x11)
  86         PKGHANDLER_COMMAND="sudo apt-get install libX11-dev libxext-dev libxrender-dev libxtst-dev" ;;
  87     ccache)
  88         PKGHANDLER_COMMAND="sudo apt-get install ccache" ;;
  89     * )
  90        break ;;
  91     esac
  92 }
  93 
  94 yum_help() {
  95     case $1 in
  96     devkit)
  97         PKGHANDLER_COMMAND="sudo yum groupinstall \"Development Tools\"" ;;
  98     openjdk)
  99         PKGHANDLER_COMMAND="sudo yum install java-1.7.0-openjdk" ;;
 100     alsa)
 101         PKGHANDLER_COMMAND="sudo yum install alsa-lib-devel" ;;
 102     cups)
 103         PKGHANDLER_COMMAND="sudo yum install cups-devel" ;;
 104     freetype2)
 105         PKGHANDLER_COMMAND="sudo yum install freetype2-devel" ;;
 106     pulse)
 107         PKGHANDLER_COMMAND="sudo yum install pulseaudio-libs-devel" ;;
 108     x11)
 109         PKGHANDLER_COMMAND="sudo yum install libXtst-devel" ;;
 110     ccache)
 111         PKGHANDLER_COMMAND="sudo yum install ccache" ;;
 112     * )
 113        break ;;
 114     esac
 115 }
 116 
 117 port_help() {
 118     PKGHANDLER_COMMAND=""
 119 }
 120 
 121 pkgutil_help() {
 122     PKGHANDLER_COMMAND=""
 123 }
 124 
 125 pkgadd_help() {
 126     PKGHANDLER_COMMAND=""
 127 }
 128 
 129 AC_DEFUN_ONCE([HELP_PRINT_SUMMARY_AND_WARNINGS],
 130 [
 131 # Finally output some useful information to the user
 132 
 133 if test "x$CCACHE_FOUND" != x; then
 134         if  test "x$HAS_GOOD_CCACHE" = x; then
 135                 CCACHE_STATUS="installed, but disabled (version older than 3.1.4)"
 136                 CCACHE_HELP_MSG="You have ccache installed, but it is a version prior to 3.1.4. Try upgrading."
 137         else
 138                 CCACHE_STATUS="installed and in use"
 139         fi
 140 else
 141         if test "x$GCC" = xyes; then
 142                 CCACHE_STATUS="not installed (consider installing)"
 143                 CCACHE_HELP_MSG="You do not have ccache installed. Try installing it."
 144         else
 145                 CCACHE_STATUS="not available for your system"
 146         fi
 147 fi
 148 
 149 printf "\n"
 150 printf "====================================================\n"
 151 printf "A new configuration has been successfully created in\n"
 152 printf "$OUTPUT_ROOT\n"
 153 if test "x$CONFIGURE_COMMAND_LINE" != x; then
 154         printf "using configure arguments '$CONFIGURE_COMMAND_LINE'.\n"
 155 else
 156         printf "using default settings.\n"
 157 fi
 158 
 159 printf "\n"
 160 printf "Configuration summary:\n"
 161 printf "* Debug level:    $DEBUG_LEVEL\n"
 162 printf "* JDK variant:    $JDK_VARIANT\n"
 163 printf "* JVM variants:   $with_jvm_variants\n"
 164 printf "* OpenJDK target: OS: $OPENJDK_TARGET_OS, CPU architecture: $OPENJDK_TARGET_CPU_ARCH, address length: $OPENJDK_TARGET_CPU_BITS\n"
 165 
 166 printf "\n"
 167 printf "Tools summary:\n"
 168 if test "x$OPENJDK_BUILD_OS" = "xwindows"; then
 169   printf "* Environment:    $WINDOWS_ENV_VENDOR version $WINDOWS_ENV_VERSION (root at $WINDOWS_ENV_ROOT_PATH)\n"
 170 fi
 171 printf "* Boot JDK:       $BOOT_JDK_VERSION (at $BOOT_JDK)\n"
 172 printf "* C Compiler:     $CC_VENDOR version $CC_VERSION (at $CC)\n"
 173 printf "* C++ Compiler:   $CXX_VENDOR version $CXX_VERSION (at $CXX)\n"
 174 
 175 printf "\n"
 176 printf "Build performance summary:\n"
 177 printf "* Cores to use:   $JOBS\n"
 178 printf "* Memory limit:   $MEMORY_SIZE MB\n"
 179 printf "* ccache status:  $CCACHE_STATUS\n"
 180 printf "\n"
 181 
 182 if test "x$CCACHE_HELP_MSG" != x && test "x$HIDE_PERFORMANCE_HINTS" = "xno"; then
 183         printf "Build performance tip: ccache gives a tremendous speedup for C++ recompilations.\n"
 184         printf "$CCACHE_HELP_MSG\n"
 185         HELP_MSG_MISSING_DEPENDENCY([ccache])
 186         printf "$HELP_MSG\n"
 187         printf "\n"
 188 fi
 189 
 190 if test "x$BUILDING_MULTIPLE_JVM_VARIANTS" = "xyes"; then
 191         printf "NOTE: You have requested to build more than one version of the JVM, which\n"
 192         printf "will result in longer build times.\n"
 193         printf "\n"
 194 fi
 195 
 196 if test "x$FOUND_ALT_VARIABLES" != "x"; then
 197         printf "WARNING: You have old-style ALT_ environment variables set.\n"
 198         printf "These are not respected, and will be ignored. It is recommended\n"
 199         printf "that you clean your environment. The following variables are set:\n"
 200         printf "$FOUND_ALT_VARIABLES\n"
 201         printf "\n"
 202 fi
 203 
 204 if test "x$OUTPUT_DIR_IS_LOCAL" != "xyes"; then
 205         printf "WARNING: Your build output directory is not on a local disk.\n"
 206         printf "This will severely degrade build performance!\n"
 207         printf "It is recommended that you create an output directory on a local disk,\n"
 208         printf "and run the configure script again from that directory.\n"
 209         printf "\n"
 210 fi
 211 
 212 if test "x$IS_RECONFIGURE" = "xyes"; then
 213         printf "WARNING: The result of this configuration has overridden an older\n"
 214         printf "configuration. You *should* run 'make clean' to make sure you get a\n"
 215         printf "proper build. Failure to do so might result in strange build problems.\n"
 216         printf "\n"
 217 fi
 218 ])