help.m4 revision 860:dffe654ab24c
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
37  if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
38    cygwin_help $MISSING_DEPENDENCY
39  elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
40    msys_help $MISSING_DEPENDENCY
41  else
42    PKGHANDLER_COMMAND=
43
44    case $PKGHANDLER in
45      apt-get)
46        apt_help     $MISSING_DEPENDENCY ;;
47      yum)
48        yum_help     $MISSING_DEPENDENCY ;;
49      port)
50        port_help    $MISSING_DEPENDENCY ;;
51      pkgutil)
52        pkgutil_help $MISSING_DEPENDENCY ;;
53      pkgadd)
54        pkgadd_help  $MISSING_DEPENDENCY ;;
55      * )
56        break ;;
57    esac
58
59    if test "x$PKGHANDLER_COMMAND" != x; then
60      HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'."
61    fi
62  fi
63])
64
65cygwin_help() {
66  case $1 in
67    unzip)
68      PKGHANDLER_COMMAND="( cd <location of cygwin setup.exe> && cmd /c setup -q -P unzip )"
69      HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'."
70      ;;
71    zip)
72      PKGHANDLER_COMMAND="( cd <location of cygwin setup.exe> && cmd /c setup -q -P zip )"
73      HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'."
74      ;;
75    make)
76      PKGHANDLER_COMMAND="( cd <location of cygwin setup.exe> && cmd /c setup -q -P make )"
77      HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'."
78      ;;
79    freetype2)
80      if test "x$OPENJDK_TARGET_CPU_BITS" = x32; then
81        HELP_MSG="To install freetype, run:
82wget \"http://gnuwin32.sourceforge.net/downlinks/freetype.php\" -O /tmp/freetype-setup.exe
83chmod +x /tmp/freetype-setup.exe
84/tmp/freetype-setup.exe
85Follow GUI prompts, and install to default directory \"C:\Program Files (x86)\GnuWin32\".
86After installation, locate lib/libfreetype.dll.a and make a copy with the name freetype.dll."
87      else
88        HELP_MSG="You need to build a 64-bit version of freetype.
89This is not readily available.
90You can find source code and build instructions on
91http://www.freetype.org/
92If you put the resulting build in \"C:\Program Files\GnuWin32\", it will be found automatically."
93      fi
94      ;;
95    * )
96      break ;;
97  esac
98}
99
100msys_help() {
101  PKGHANDLER_COMMAND=""
102}
103
104apt_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      break ;;
124  esac
125}
126
127yum_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      break ;;
147  esac
148}
149
150port_help() {
151  PKGHANDLER_COMMAND=""
152}
153
154pkgutil_help() {
155  PKGHANDLER_COMMAND=""
156}
157
158pkgadd_help() {
159  PKGHANDLER_COMMAND=""
160}
161
162AC_DEFUN_ONCE([HELP_PRINT_SUMMARY_AND_WARNINGS],
163[
164  # Finally output some useful information to the user
165
166  if test "x$CCACHE_FOUND" != x; then
167    if  test "x$HAS_GOOD_CCACHE" = x; then
168      CCACHE_STATUS="installed, but disabled (version older than 3.1.4)"
169      CCACHE_HELP_MSG="You have ccache installed, but it is a version prior to 3.1.4. Try upgrading."
170    else
171      CCACHE_STATUS="installed and in use"
172    fi
173  else
174    if test "x$GCC" = xyes; then
175      CCACHE_STATUS="not installed (consider installing)"
176      CCACHE_HELP_MSG="You do not have ccache installed. Try installing it."
177    else
178      CCACHE_STATUS="not available for your system"
179    fi
180  fi
181
182  printf "\n"
183  printf "====================================================\n"
184  printf "A new configuration has been successfully created in\n"
185  printf "$OUTPUT_ROOT\n"
186  if test "x$CONFIGURE_COMMAND_LINE" != x; then
187    printf "using configure arguments '$CONFIGURE_COMMAND_LINE'.\n"
188  else
189    printf "using default settings.\n"
190  fi
191
192  printf "\n"
193  printf "Configuration summary:\n"
194  printf "* Debug level:    $DEBUG_LEVEL\n"
195  printf "* JDK variant:    $JDK_VARIANT\n"
196  printf "* JVM variants:   $with_jvm_variants\n"
197  printf "* OpenJDK target: OS: $OPENJDK_TARGET_OS, CPU architecture: $OPENJDK_TARGET_CPU_ARCH, address length: $OPENJDK_TARGET_CPU_BITS\n"
198
199  printf "\n"
200  printf "Tools summary:\n"
201  if test "x$OPENJDK_BUILD_OS" = "xwindows"; then
202    printf "* Environment:    $WINDOWS_ENV_VENDOR version $WINDOWS_ENV_VERSION (root at $WINDOWS_ENV_ROOT_PATH)\n"
203  fi
204  printf "* Boot JDK:       $BOOT_JDK_VERSION (at $BOOT_JDK)\n"
205  printf "* C Compiler:     $CC_VENDOR version $CC_VERSION (at $CC)\n"
206  printf "* C++ Compiler:   $CXX_VENDOR version $CXX_VERSION (at $CXX)\n"
207
208  printf "\n"
209  printf "Build performance summary:\n"
210  printf "* Cores to use:   $JOBS\n"
211  printf "* Memory limit:   $MEMORY_SIZE MB\n"
212  printf "* ccache status:  $CCACHE_STATUS\n"
213  printf "\n"
214
215  if test "x$CCACHE_HELP_MSG" != x && test "x$HIDE_PERFORMANCE_HINTS" = "xno"; then
216    printf "Build performance tip: ccache gives a tremendous speedup for C++ recompilations.\n"
217    printf "$CCACHE_HELP_MSG\n"
218    HELP_MSG_MISSING_DEPENDENCY([ccache])
219    printf "$HELP_MSG\n"
220    printf "\n"
221  fi
222
223  if test "x$BUILDING_MULTIPLE_JVM_VARIANTS" = "xyes"; then
224    printf "NOTE: You have requested to build more than one version of the JVM, which\n"
225    printf "will result in longer build times.\n"
226    printf "\n"
227  fi
228
229  if test "x$FOUND_ALT_VARIABLES" != "x"; then
230    printf "WARNING: You have old-style ALT_ environment variables set.\n"
231    printf "These are not respected, and will be ignored. It is recommended\n"
232    printf "that you clean your environment. The following variables are set:\n"
233    printf "$FOUND_ALT_VARIABLES\n"
234    printf "\n"
235  fi
236
237  if test "x$OUTPUT_DIR_IS_LOCAL" != "xyes"; then
238    printf "WARNING: Your build output directory is not on a local disk.\n"
239    printf "This will severely degrade build performance!\n"
240    printf "It is recommended that you create an output directory on a local disk,\n"
241    printf "and run the configure script again from that directory.\n"
242    printf "\n"
243  fi
244
245  if test "x$IS_RECONFIGURE" = "xyes"; then
246    printf "WARNING: The result of this configuration has overridden an older\n"
247    printf "configuration. You *should* run 'make clean' to make sure you get a\n"
248    printf "proper build. Failure to do so might result in strange build problems.\n"
249    printf "\n"
250  fi
251])
252