common/autoconf/help.m4

Wed, 18 Apr 2018 02:21:14 -0700

author
kevinw
date
Wed, 18 Apr 2018 02:21:14 -0700
changeset 2220
47fda751abb6
parent 2206
7ba4e17574e0
child 2223
01cc48ed67f3
permissions
-rw-r--r--

8057538: Build the freetype library during configure on Windows
Reviewed-by: simonis, erikj, ihse

     1 #
     2 # Copyright (c) 2011, 2018, 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 #
    26 AC_DEFUN_ONCE([HELP_SETUP_DEPENDENCY_HELP],
    27 [
    28   AC_CHECK_PROGS(PKGHANDLER, apt-get yum port pkgutil pkgadd)
    29 ])
    31 AC_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
    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=
    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
    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 ])
    63 cygwin_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       HELP_MSG="
    79 The freetype library can now be build during the configure process.
    80 Download the freetype sources and unpack them into an arbitrary directory:
    82 wget http://download.savannah.gnu.org/releases/freetype/freetype-2.5.3.tar.gz
    83 tar -xzf freetype-2.5.3.tar.gz
    85 Then run configure with '--with-freetype-src=<freetype_src>'. This will
    86 automatically build the freetype library into '<freetype_src>/lib64' for 64-bit
    87 builds or into '<freetype_src>/lib32' for 32-bit builds.
    88 Afterwards you can always use '--with-freetype-include=<freetype_src>/include'
    89 and '--with-freetype-lib=<freetype_src>/lib[32|64]' for other builds."
    90       ;;
    91   esac
    92 }
    94 msys_help() {
    95   PKGHANDLER_COMMAND=""
    96 }
    98 apt_help() {
    99   case $1 in
   100     devkit)
   101       PKGHANDLER_COMMAND="sudo apt-get install build-essential" ;;
   102     openjdk)
   103       PKGHANDLER_COMMAND="sudo apt-get install openjdk-7-jdk" ;;
   104     alsa)
   105       PKGHANDLER_COMMAND="sudo apt-get install libasound2-dev" ;;
   106     cups)
   107       PKGHANDLER_COMMAND="sudo apt-get install libcups2-dev" ;;
   108     freetype)
   109       PKGHANDLER_COMMAND="sudo apt-get install libfreetype6-dev" ;;
   110     pulse)
   111       PKGHANDLER_COMMAND="sudo apt-get install libpulse-dev" ;;
   112     x11)
   113       PKGHANDLER_COMMAND="sudo apt-get install libX11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev" ;;
   114     ccache)
   115       PKGHANDLER_COMMAND="sudo apt-get install ccache" ;;
   116   esac
   117 }
   119 yum_help() {
   120   case $1 in
   121     devkit)
   122       PKGHANDLER_COMMAND="sudo yum groupinstall \"Development Tools\"" ;;
   123     openjdk)
   124       PKGHANDLER_COMMAND="sudo yum install java-1.7.0-openjdk" ;;
   125     alsa)
   126       PKGHANDLER_COMMAND="sudo yum install alsa-lib-devel" ;;
   127     cups)
   128       PKGHANDLER_COMMAND="sudo yum install cups-devel" ;;
   129     freetype)
   130       PKGHANDLER_COMMAND="sudo yum install freetype-devel" ;;
   131     pulse)
   132       PKGHANDLER_COMMAND="sudo yum install pulseaudio-libs-devel" ;;
   133     x11)
   134       PKGHANDLER_COMMAND="sudo yum install libXtst-devel libXt-devel libXrender-devel" ;;
   135     ccache)
   136       PKGHANDLER_COMMAND="sudo yum install ccache" ;;
   137   esac
   138 }
   140 port_help() {
   141   PKGHANDLER_COMMAND=""
   142 }
   144 pkgutil_help() {
   145   PKGHANDLER_COMMAND=""
   146 }
   148 pkgadd_help() {
   149   PKGHANDLER_COMMAND=""
   150 }
   152 # This function will check if we're called from the "configure" wrapper while
   153 # printing --help. If so, we will print out additional information that can
   154 # only be extracted within the autoconf script, and then exit. This must be
   155 # called at the very beginning in configure.ac.
   156 AC_DEFUN_ONCE([HELP_PRINT_ADDITIONAL_HELP_AND_EXIT],
   157 [
   158   if test "x$CONFIGURE_PRINT_TOOLCHAIN_LIST" != x; then
   159     $PRINTF "The following toolchains are available as arguments to --with-toolchain-type.\n"
   160     $PRINTF "Which are valid to use depends on the build platform.\n"
   161     for toolchain in $VALID_TOOLCHAINS_all; do
   162       # Use indirect variable referencing
   163       toolchain_var_name=TOOLCHAIN_DESCRIPTION_$toolchain
   164       TOOLCHAIN_DESCRIPTION=${!toolchain_var_name}
   165       $PRINTF "  %-10s  %s\n" $toolchain "$TOOLCHAIN_DESCRIPTION"
   166     done
   168     # And now exit directly
   169     exit 0
   170   fi
   171 ])
   173 AC_DEFUN_ONCE([HELP_PRINT_SUMMARY_AND_WARNINGS],
   174 [
   175   # Finally output some useful information to the user
   177   printf "\n"
   178   printf "====================================================\n"
   179   printf "A new configuration has been successfully created in\n"
   180   printf "$OUTPUT_ROOT\n"
   181   if test "x$CONFIGURE_COMMAND_LINE" != x; then
   182     printf "using configure arguments '$CONFIGURE_COMMAND_LINE'.\n"
   183   else
   184     printf "using default settings.\n"
   185   fi
   187   printf "\n"
   188   printf "Configuration summary:\n"
   189   printf "* Debug level:    $DEBUG_LEVEL\n"
   190   printf "* JDK variant:    $JDK_VARIANT\n"
   191   printf "* JVM variants:   $with_jvm_variants\n"
   192   printf "* OpenJDK target: OS: $OPENJDK_TARGET_OS, CPU architecture: $OPENJDK_TARGET_CPU_ARCH, address length: $OPENJDK_TARGET_CPU_BITS\n"
   194   printf "\n"
   195   printf "Tools summary:\n"
   196   if test "x$OPENJDK_BUILD_OS" = "xwindows"; then
   197     printf "* Environment:    $WINDOWS_ENV_VENDOR version $WINDOWS_ENV_VERSION (root at $WINDOWS_ENV_ROOT_PATH)\n"
   198   fi
   199   printf "* Boot JDK:       $BOOT_JDK_VERSION (at $BOOT_JDK)\n"
   200   printf "* Toolchain:      $TOOLCHAIN_TYPE ($TOOLCHAIN_DESCRIPTION)\n"
   201   printf "* C Compiler:     Version $CC_VERSION_NUMBER (at $CC)\n"
   202   printf "* C++ Compiler:   Version $CXX_VERSION_NUMBER (at $CXX)\n"
   204   printf "\n"
   205   printf "Build performance summary:\n"
   206   printf "* Cores to use:   $JOBS\n"
   207   printf "* Memory limit:   $MEMORY_SIZE MB\n"
   208   if test "x$CCACHE_STATUS" != "x"; then
   209     printf "* ccache status:  $CCACHE_STATUS\n"
   210   fi
   211   printf "\n"
   213   if test "x$BUILDING_MULTIPLE_JVM_VARIANTS" = "xyes"; then
   214     printf "NOTE: You have requested to build more than one version of the JVM, which\n"
   215     printf "will result in longer build times.\n"
   216     printf "\n"
   217   fi
   219   if test "x$FOUND_ALT_VARIABLES" != "x"; then
   220     printf "WARNING: You have old-style ALT_ environment variables set.\n"
   221     printf "These are not respected, and will be ignored. It is recommended\n"
   222     printf "that you clean your environment. The following variables are set:\n"
   223     printf "$FOUND_ALT_VARIABLES\n"
   224     printf "\n"
   225   fi
   227   if test "x$OUTPUT_DIR_IS_LOCAL" != "xyes"; then
   228     printf "WARNING: Your build output directory is not on a local disk.\n"
   229     printf "This will severely degrade build performance!\n"
   230     printf "It is recommended that you create an output directory on a local disk,\n"
   231     printf "and run the configure script again from that directory.\n"
   232     printf "\n"
   233   fi
   235   if test "x$IS_RECONFIGURE" = "xyes"; then
   236     printf "WARNING: The result of this configuration has overridden an older\n"
   237     printf "configuration. You *should* run 'make clean' to make sure you get a\n"
   238     printf "proper build. Failure to do so might result in strange build problems.\n"
   239     printf "\n"
   240   fi
   241 ])

mercurial