help.m4 revision 456:c8d320b48626
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
58apt_help() {
59    case $1 in
60    devkit)
61        PKGHANDLER_COMMAND="sudo apt-get install build-essential" ;;
62    openjdk)
63        PKGHANDLER_COMMAND="sudo apt-get install openjdk-7-jdk" ;;
64    alsa)
65        PKGHANDLER_COMMAND="sudo apt-get install libasound2-dev" ;;
66    cups)
67        PKGHANDLER_COMMAND="sudo apt-get install libcups2-dev" ;;
68    freetype2)
69        PKGHANDLER_COMMAND="sudo apt-get install libfreetype6-dev" ;;
70    pulse)
71        PKGHANDLER_COMMAND="sudo apt-get install libpulse-dev" ;;
72    x11)
73        PKGHANDLER_COMMAND="sudo apt-get install libX11-dev libxext-dev libxrender-dev libxtst-dev" ;;
74    ccache)
75        PKGHANDLER_COMMAND="sudo apt-get install ccache" ;;
76    * )
77       break ;;
78    esac
79}
80
81yum_help() {
82    case $1 in
83    devkit)
84        PKGHANDLER_COMMAND="sudo yum groupinstall \"Development Tools\"" ;;
85    openjdk)
86        PKGHANDLER_COMMAND="sudo yum install java-1.7.0-openjdk" ;;
87    alsa)
88        PKGHANDLER_COMMAND="sudo yum install alsa-lib-devel" ;;
89    cups)
90        PKGHANDLER_COMMAND="sudo yum install cups-devel" ;;
91    freetype2)
92        PKGHANDLER_COMMAND="sudo yum install freetype2-devel" ;;
93    pulse)
94        PKGHANDLER_COMMAND="sudo yum install pulseaudio-libs-devel" ;;
95    x11)
96        PKGHANDLER_COMMAND="sudo yum install libXtst-devel" ;;
97    ccache)
98        PKGHANDLER_COMMAND="sudo yum install ccache" ;;
99    * )
100       break ;;
101    esac
102}
103
104port_help() {
105    PKGHANDLER_COMMAND=""
106}
107
108pkgutil_help() {
109    PKGHANDLER_COMMAND=""
110}
111
112pkgadd_help() {
113    PKGHANDLER_COMMAND=""
114}
115
116AC_DEFUN_ONCE([HELP_PRINT_SUMMARY_AND_WARNINGS],
117[
118# Finally output some useful information to the user
119
120if test "x$CCACHE_FOUND" != x; then
121	if  test "x$HAS_GOOD_CCACHE" = x; then
122		CCACHE_STATUS="installed, but disabled (version older than 3.1.4)"
123		CCACHE_HELP_MSG="You have ccache installed, but it is a version prior to 3.1.4. Try upgrading."
124	else
125		CCACHE_STATUS="installed and in use"
126	fi
127else
128	if test "x$GCC" = xyes; then
129		CCACHE_STATUS="not installed (consider installing)"
130		CCACHE_HELP_MSG="You do not have ccache installed. Try installing it."
131	else
132		CCACHE_STATUS="not available for your system"
133	fi
134fi
135
136printf "\n"
137printf "====================================================\n"
138printf "A new configuration has been successfully created in\n"
139printf "$OUTPUT_ROOT\n"
140if test "x$CONFIGURE_COMMAND_LINE" != x; then
141	printf "using configure arguments '$CONFIGURE_COMMAND_LINE'.\n"
142else
143	printf "using default settings.\n"
144fi
145
146printf "\n"
147printf "Configuration summary:\n"
148printf "* Debug level:    $DEBUG_LEVEL\n"
149printf "* JDK variant:    $JDK_VARIANT\n"
150printf "* JVM variants:   $with_jvm_variants\n"
151printf "* OpenJDK target: OS: $OPENJDK_TARGET_OS, CPU architecture: $OPENJDK_TARGET_CPU_ARCH, address length: $OPENJDK_TARGET_CPU_BITS\n"
152printf "* Boot JDK:       $BOOT_JDK\n"
153
154printf "\n"
155printf "Build performance summary:\n"
156printf "* Cores to use:   $NUM_CORES\n"
157printf "* Memory limit:   $MEMORY_SIZE MB\n"
158printf "* ccache status:  $CCACHE_STATUS\n"
159printf "\n"
160
161if test "x$CCACHE_HELP_MSG" != x && test "x$HIDE_PERFORMANCE_HINTS" = "xno"; then
162	printf "Build performance tip: ccache gives a tremendous speedup for C++ recompilations.\n"
163	printf "$CCACHE_HELP_MSG\n"
164	HELP_MSG_MISSING_DEPENDENCY([ccache])
165	printf "$HELP_MSG\n"
166	printf "\n"
167fi
168
169if test "x$BUILDING_MULTIPLE_JVM_VARIANTS" = "xyes"; then
170	printf "NOTE: You have requested to build more than one version of the JVM, which\n"
171	printf "will result in longer build times.\n"
172	printf "\n"
173fi
174
175if test "x$FOUND_ALT_VARIABLES" != "x"; then
176	printf "WARNING: You have old-style ALT_ environment variables set.\n"
177	printf "These are not respected, and will be ignored. It is recommended\n"
178	printf "that you clean your environment. The following variables are set:\n"
179	printf "$FOUND_ALT_VARIABLES\n"
180	printf "\n"
181fi
182
183if test "x$OUTPUT_DIR_IS_LOCAL" != "xyes"; then
184	printf "WARNING: Your build output directory is not on a local disk.\n"
185	printf "This will severely degrade build performance!\n"
186	printf "It is recommended that you create an output directory on a local disk,\n"
187	printf "and run the configure script again from that directory.\n"
188	printf "\n"
189fi
190
191if test "x$IS_RECONFIGURE" = "xyes"; then
192	printf "WARNING: The result of this configuration has overridden an older\n"
193	printf "configuration. You *should* run 'make clean' to make sure you get a\n"
194	printf "proper build. Failure to do so might result in strange build problems.\n"
195	printf "\n"
196fi
197])
198