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