help.m4 revision 975:b18872ff5379
1254721Semaste#
2254721Semaste# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
3254721Semaste# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4254721Semaste#
5254721Semaste# This code is free software; you can redistribute it and/or modify it
6254721Semaste# under the terms of the GNU General Public License version 2 only, as
7254721Semaste# published by the Free Software Foundation.  Oracle designates this
8254721Semaste# particular file as subject to the "Classpath" exception as provided
9254721Semaste# by Oracle in the LICENSE file that accompanied this code.
10254721Semaste#
11254721Semaste# This code is distributed in the hope that it will be useful, but WITHOUT
12254721Semaste# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13254721Semaste# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14254721Semaste# version 2 for more details (a copy is included in the LICENSE file that
15254721Semaste# accompanied this code).
16254721Semaste#
17254721Semaste# You should have received a copy of the GNU General Public License version
18254721Semaste# 2 along with this work; if not, write to the Free Software Foundation,
19254721Semaste# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20254721Semaste#
21254721Semaste# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22254721Semaste# or visit www.oracle.com if you need additional information or have any
23254721Semaste# questions.
24254721Semaste#
25254721Semaste
26254721SemasteAC_DEFUN_ONCE([HELP_SETUP_DEPENDENCY_HELP],
27254721Semaste[
28254721Semaste  AC_CHECK_PROGS(PKGHANDLER, apt-get yum port pkgutil pkgadd)
29254721Semaste])
30254721Semaste
31254721SemasteAC_DEFUN([HELP_MSG_MISSING_DEPENDENCY],
32254721Semaste[
33254721Semaste  # Print a helpful message on how to acquire the necessary build dependency.
34254721Semaste  # $1 is the help tag: freetype, cups, pulse, alsa etc
35254721Semaste  MISSING_DEPENDENCY=$1
36254721Semaste
37254721Semaste  if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
38254721Semaste    cygwin_help $MISSING_DEPENDENCY
39254721Semaste  elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
40254721Semaste    msys_help $MISSING_DEPENDENCY
41254721Semaste  else
42254721Semaste    PKGHANDLER_COMMAND=
43254721Semaste
44254721Semaste    case $PKGHANDLER in
45254721Semaste      apt-get)
46254721Semaste        apt_help     $MISSING_DEPENDENCY ;;
47254721Semaste      yum)
48254721Semaste        yum_help     $MISSING_DEPENDENCY ;;
49254721Semaste      port)
50254721Semaste        port_help    $MISSING_DEPENDENCY ;;
51254721Semaste      pkgutil)
52254721Semaste        pkgutil_help $MISSING_DEPENDENCY ;;
53254721Semaste      pkgadd)
54254721Semaste        pkgadd_help  $MISSING_DEPENDENCY ;;
55254721Semaste    esac
56254721Semaste
57254721Semaste    if test "x$PKGHANDLER_COMMAND" != x; then
58254721Semaste      HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'."
59254721Semaste    fi
60254721Semaste  fi
61254721Semaste])
62254721Semaste
63254721Semastecygwin_help() {
64254721Semaste  case $1 in
65254721Semaste    unzip)
66254721Semaste      PKGHANDLER_COMMAND="( cd <location of cygwin setup.exe> && cmd /c setup -q -P unzip )"
67254721Semaste      HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'."
68254721Semaste      ;;
69254721Semaste    zip)
70254721Semaste      PKGHANDLER_COMMAND="( cd <location of cygwin setup.exe> && cmd /c setup -q -P zip )"
71254721Semaste      HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'."
72254721Semaste      ;;
73254721Semaste    make)
74254721Semaste      PKGHANDLER_COMMAND="( cd <location of cygwin setup.exe> && cmd /c setup -q -P make )"
75254721Semaste      HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'."
76254721Semaste      ;;
77254721Semaste    freetype)
78254721Semaste      if test "x$OPENJDK_TARGET_CPU_BITS" = x32; then
79254721Semaste        HELP_MSG="To install freetype, run:
80254721Semastewget \"http://gnuwin32.sourceforge.net/downlinks/freetype.php\" -O /tmp/freetype-setup.exe
81254721Semastechmod +x /tmp/freetype-setup.exe
82254721Semaste/tmp/freetype-setup.exe
83254721SemasteFollow GUI prompts, and install to default directory \"C:\Program Files (x86)\GnuWin32\".
84254721SemasteAfter installation, locate lib/libfreetype.dll.a and make a copy with the name freetype.dll."
85254721Semaste      else
86254721Semaste        HELP_MSG="You need to build a 64-bit version of freetype.
87254721SemasteThis is not readily available.
88254721SemasteYou can find source code and build instructions on
89254721Semastehttp://www.freetype.org/
90254721SemasteIf you put the resulting build in \"C:\Program Files\GnuWin32\", it will be found automatically."
91254721Semaste      fi
92254721Semaste      ;;
93254721Semaste  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
154# This function will check if we're called from the "configure" wrapper while
155# printing --help. If so, we will print out additional information that can
156# only be extracted within the autoconf script, and then exit. This must be
157# called at the very beginning in configure.ac.
158AC_DEFUN_ONCE([HELP_PRINT_ADDITIONAL_HELP_AND_EXIT],
159[
160  if test "x$CONFIGURE_PRINT_TOOLCHAIN_LIST" != x; then
161    $PRINTF "The following toolchains are available as arguments to --with-toolchain-type.\n"
162    $PRINTF "Which are valid to use depends on the build platform.\n"
163    for toolchain in $VALID_TOOLCHAINS_all; do
164      # Use indirect variable referencing
165      toolchain_var_name=TOOLCHAIN_DESCRIPTION_$toolchain
166      TOOLCHAIN_DESCRIPTION=${!toolchain_var_name}
167      $PRINTF "  %-10s  %s\n" $toolchain "$TOOLCHAIN_DESCRIPTION"
168    done
169
170    # And now exit directly
171    exit 0
172  fi
173])
174
175AC_DEFUN_ONCE([HELP_PRINT_SUMMARY_AND_WARNINGS],
176[
177  # Finally output some useful information to the user
178
179  printf "\n"
180  printf "====================================================\n"
181  if test "x$no_create" != "xyes"; then
182    if test "x$IS_RECONFIGURE" != "xyes"; then
183      printf "A new configuration has been successfully created in\n %s\n" "$OUTPUT_ROOT"
184    else
185      printf "The existing configuration has been successfully updated in\n %s\n" "$OUTPUT_ROOT"
186    fi
187  else
188    if test "x$IS_RECONFIGURE" != "xyes"; then
189      printf "A configuration has been successfully checked but not created\n"
190    else
191      printf "The existing configuration has been successfully checked in\n %s\n" "$OUTPUT_ROOT"
192    fi
193  fi
194  if test "x$CONFIGURE_COMMAND_LINE" != x; then
195    printf "using configure arguments '$CONFIGURE_COMMAND_LINE'.\n"
196  else
197    printf "using default settings.\n"
198  fi
199
200  printf "\n"
201  printf "Configuration summary:\n"
202  printf "* Debug level:    $DEBUG_LEVEL\n"
203  printf "* JDK variant:    $JDK_VARIANT\n"
204  printf "* JVM variants:   $with_jvm_variants\n"
205  printf "* OpenJDK target: OS: $OPENJDK_TARGET_OS, CPU architecture: $OPENJDK_TARGET_CPU_ARCH, address length: $OPENJDK_TARGET_CPU_BITS\n"
206
207  printf "\n"
208  printf "Tools summary:\n"
209  if test "x$OPENJDK_BUILD_OS" = "xwindows"; then
210    printf "* Environment:    $WINDOWS_ENV_VENDOR version $WINDOWS_ENV_VERSION (root at $WINDOWS_ENV_ROOT_PATH)\n"
211  fi
212  printf "* Boot JDK:       $BOOT_JDK_VERSION (at $BOOT_JDK)\n"
213  printf "* Toolchain:      $TOOLCHAIN_TYPE ($TOOLCHAIN_DESCRIPTION)\n"
214  printf "* C Compiler:     Version $CC_VERSION_NUMBER (at $CC)\n"
215  printf "* C++ Compiler:   Version $CXX_VERSION_NUMBER (at $CXX)\n"
216
217  printf "\n"
218  printf "Build performance summary:\n"
219  printf "* Cores to use:   $JOBS\n"
220  printf "* Memory limit:   $MEMORY_SIZE MB\n"
221  if test "x$CCACHE_STATUS" != "x"; then
222    printf "* ccache status:  $CCACHE_STATUS\n"
223  fi
224  printf "\n"
225
226  if test "x$BUILDING_MULTIPLE_JVM_VARIANTS" = "xyes"; then
227    printf "NOTE: You have requested to build more than one version of the JVM, which\n"
228    printf "will result in longer build times.\n"
229    printf "\n"
230  fi
231
232  if test "x$FOUND_ALT_VARIABLES" != "x"; then
233    printf "WARNING: You have old-style ALT_ environment variables set.\n"
234    printf "These are not respected, and will be ignored. It is recommended\n"
235    printf "that you clean your environment. The following variables are set:\n"
236    printf "$FOUND_ALT_VARIABLES\n"
237    printf "\n"
238  fi
239
240  if test "x$OUTPUT_DIR_IS_LOCAL" != "xyes"; then
241    printf "WARNING: Your build output directory is not on a local disk.\n"
242    printf "This will severely degrade build performance!\n"
243    printf "It is recommended that you create an output directory on a local disk,\n"
244    printf "and run the configure script again from that directory.\n"
245    printf "\n"
246  fi
247
248  if test "x$IS_RECONFIGURE" = "xyes" && test "x$no_create" != "xyes"; then
249    printf "WARNING: The result of this configuration has overridden an older\n"
250    printf "configuration. You *should* run 'make clean' to make sure you get a\n"
251    printf "proper build. Failure to do so might result in strange build problems.\n"
252    printf "\n"
253  fi
254
255  if test "x$IS_RECONFIGURE" != "xyes" && test "x$no_create" = "xyes"; then
256    printf "WARNING: The result of this configuration was not saved.\n"
257    printf "You should run without '--no-create | -n' to create the configuration.\n"
258    printf "\n"
259  fi
260])
261