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" != x; then
 134   CCACHE_STATUS="installed and in use"
 135 else
 136   if test "x$GCC" = xyes; then
 137     CCACHE_STATUS="not installed (consider installing)"
 138     CCACHE_HELP_MSG="You do not have ccache installed. Try installing it."
 139   else
 140     CCACHE_STATUS="not available for your system"
 141   fi
 142 fi
 143 
 144 printf "\n"
 145 printf "====================================================\n"
 146 printf "A new configuration has been successfully created in\n"
 147 printf "$OUTPUT_ROOT\n"
 148 if test "x$CONFIGURE_COMMAND_LINE" != x; then
 149         printf "using configure arguments '$CONFIGURE_COMMAND_LINE'.\n"
 150 else
 151         printf "using default settings.\n"
 152 fi
 153 
 154 printf "\n"
 155 printf "Configuration summary:\n"
 156 printf "* Debug level:    $DEBUG_LEVEL\n"
 157 printf "* JDK variant:    $JDK_VARIANT\n"
 158 printf "* JVM variants:   $with_jvm_variants\n"
 159 printf "* OpenJDK target: OS: $OPENJDK_TARGET_OS, CPU architecture: $OPENJDK_TARGET_CPU_ARCH, address length: $OPENJDK_TARGET_CPU_BITS\n"
 160 
 161 printf "\n"
 162 printf "Tools summary:\n"
 163 if test "x$OPENJDK_BUILD_OS" = "xwindows"; then
 164   printf "* Environment:    $WINDOWS_ENV_VENDOR version $WINDOWS_ENV_VERSION (root at $WINDOWS_ENV_ROOT_PATH)\n"
 165 fi
 166 printf "* Boot JDK:       $BOOT_JDK_VERSION (at $BOOT_JDK)\n"
 167 printf "* C Compiler:     $CC_VENDOR version $CC_VERSION (at $CC)\n"
 168 printf "* C++ Compiler:   $CXX_VENDOR version $CXX_VERSION (at $CXX)\n"
 169 
 170 printf "\n"
 171 printf "Build performance summary:\n"
 172 printf "* Cores to use:   $JOBS\n"
 173 printf "* Memory limit:   $MEMORY_SIZE MB\n"
 174 printf "* ccache status:  $CCACHE_STATUS\n"
 175 printf "\n"
 176 
 177 if test "x$CCACHE_HELP_MSG" != x && test "x$HIDE_PERFORMANCE_HINTS" = "xno"; then
 178         printf "Build performance tip: ccache gives a tremendous speedup for C++ recompilations.\n"
 179         printf "$CCACHE_HELP_MSG\n"
 180         HELP_MSG_MISSING_DEPENDENCY([ccache])
 181         printf "$HELP_MSG\n"
 182         printf "\n"
 183 fi
 184 
 185 if test "x$BUILDING_MULTIPLE_JVM_VARIANTS" = "xyes"; then
 186         printf "NOTE: You have requested to build more than one version of the JVM, which\n"
 187         printf "will result in longer build times.\n"
 188         printf "\n"
 189 fi
 190 
 191 if test "x$FOUND_ALT_VARIABLES" != "x"; then
 192         printf "WARNING: You have old-style ALT_ environment variables set.\n"
 193         printf "These are not respected, and will be ignored. It is recommended\n"
 194         printf "that you clean your environment. The following variables are set:\n"
 195         printf "$FOUND_ALT_VARIABLES\n"
 196         printf "\n"
 197 fi
 198 
 199 if test "x$OUTPUT_DIR_IS_LOCAL" != "xyes"; then
 200         printf "WARNING: Your build output directory is not on a local disk.\n"
 201         printf "This will severely degrade build performance!\n"
 202         printf "It is recommended that you create an output directory on a local disk,\n"
 203         printf "and run the configure script again from that directory.\n"
 204         printf "\n"
 205 fi
 206 
 207 if test "x$IS_RECONFIGURE" = "xyes"; then
 208         printf "WARNING: The result of this configuration has overridden an older\n"
 209         printf "configuration. You *should* run 'make clean' to make sure you get a\n"
 210         printf "proper build. Failure to do so might result in strange build problems.\n"
 211         printf "\n"
 212 fi
 213 ])