help.m4 revision 837:174a54ce39c4
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
26AC_DEFUN_ONCE([HELP_SETUP_DEPENDENCY_HELP],
27[
28  AC_CHECK_PROGS(PKGHANDLER, apt-get yum port pkgutil pkgadd)
29])
30
31AC_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
58cygwin_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
71apt_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 libxt-dev" ;;
87    ccache)
88      PKGHANDLER_COMMAND="sudo apt-get install ccache" ;;
89    * )
90      break ;;
91  esac
92}
93
94yum_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 freetype-devel" ;;
106    pulse)
107      PKGHANDLER_COMMAND="sudo yum install pulseaudio-libs-devel" ;;
108    x11)
109      PKGHANDLER_COMMAND="sudo yum install libXtst-devel libXt-devel libXrender-devel" ;;
110    ccache)
111      PKGHANDLER_COMMAND="sudo yum install ccache" ;;
112    * )
113      break ;;
114  esac
115}
116
117port_help() {
118  PKGHANDLER_COMMAND=""
119}
120
121pkgutil_help() {
122  PKGHANDLER_COMMAND=""
123}
124
125pkgadd_help() {
126  PKGHANDLER_COMMAND=""
127}
128
129AC_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])
219