common/doc/building.md
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File jdk10hs Sdiff common/doc

common/doc/building.md

Print this page




 631   * To install on an rpm-based Linux, try running `sudo yum install
 632     alsa-lib-devel`.
 633 
 634 Use `--with-alsa=<path>` if `configure` does not properly locate your ALSA
 635 files.
 636 
 637 ### libffi
 638 
 639 libffi, the [Portable Foreign Function Interface Library](
 640 http://sourceware.org/libffi) is required when building the Zero version of
 641 Hotspot.
 642 
 643   * To install on an apt-based Linux, try running `sudo apt-get install
 644     libffi-dev`.
 645   * To install on an rpm-based Linux, try running `sudo yum install
 646     libffi-devel`.
 647 
 648 Use `--with-libffi=<path>` if `configure` does not properly locate your libffi
 649 files.
 650 
 651 ### libelf
 652 
 653 libelf from the [elfutils project](http://sourceware.org/elfutils) is required
 654 when building the AOT feature of Hotspot.
 655 
 656   * To install on an apt-based Linux, try running `sudo apt-get install
 657     libelf-dev`.
 658   * To install on an rpm-based Linux, try running `sudo yum install
 659     elfutils-libelf-devel`.
 660 
 661 Use `--with-libelf=<path>` if `configure` does not properly locate your libelf
 662 files.
 663 
 664 ## Other Tooling Requirements
 665 
 666 ### GNU Make
 667 
 668 OpenJDK requires [GNU Make](http://www.gnu.org/software/make). No other flavors
 669 of make are supported.
 670 
 671 At least version 3.81 of GNU Make must be used. For distributions supporting
 672 GNU Make 4.0 or above, we strongly recommend it. GNU Make 4.0 contains useful
 673 functionality to handle parallel building (supported by `--with-output-sync`)
 674 and speed and stability improvements.
 675 
 676 Note that `configure` locates and verifies a properly functioning version of
 677 `make` and stores the path to this `make` binary in the configuration. If you
 678 start a build using `make` on the command line, you will be using the version
 679 of make found first in your `PATH`, and not necessarily the one stored in the
 680 configuration. This initial make will be used as "bootstrap make", and in a
 681 second stage, the make located by `configure` will be called. Normally, this
 682 will present no issues, but if you have a very old `make`, or a non-GNU Make
 683 `make` in your path, this might cause issues.


 796   * `--with-extra-path=<path>[;<path>]` - Prepend these directories to the
 797     default path when searching for all kinds of binaries
 798   * `--with-toolchain-path=<path>[;<path>]` - Prepend these directories when
 799     searching for toolchain binaries (compilers etc)
 800   * `--with-extra-cflags=<flags>` - Append these flags when compiling JDK C
 801     files
 802   * `--with-extra-cxxflags=<flags>` - Append these flags when compiling JDK C++
 803     files
 804   * `--with-extra-ldflags=<flags>` - Append these flags when linking JDK
 805     libraries
 806 
 807 #### Configure Arguments for External Dependencies
 808 
 809   * `--with-boot-jdk=<path>` - Set the path to the [Boot JDK](
 810     #boot-jdk-requirements)
 811   * `--with-freetype=<path>` - Set the path to [FreeType](#freetype)
 812   * `--with-cups=<path>` - Set the path to [CUPS](#cups)
 813   * `--with-x=<path>` - Set the path to [X11](#x11)
 814   * `--with-alsa=<path>` - Set the path to [ALSA](#alsa)
 815   * `--with-libffi=<path>` - Set the path to [libffi](#libffi)
 816   * `--with-libelf=<path>` - Set the path to [libelf](#libelf)
 817   * `--with-jtreg=<path>` - Set the path to JTReg. See [Running Tests](
 818     #running-tests)
 819 
 820 Certain third-party libraries used by OpenJDK (libjpeg, giflib, libpng, lcms
 821 and zlib) are included in the OpenJDK repository. The default behavior of the
 822 OpenJDK build is to use this version of these libraries, but they might be
 823 replaced by an external version. To do so, specify `system` as the `<source>`
 824 option in these arguments. (The default is `bundled`).
 825 
 826   * `--with-libjpeg=<source>` - Use the specified source for libjpeg
 827   * `--with-giflib=<source>` - Use the specified source for giflib
 828   * `--with-libpng=<source>` - Use the specified source for libpng
 829   * `--with-lcms=<source>` - Use the specified source for lcms
 830   * `--with-zlib=<source>` - Use the specified source for zlib
 831 
 832 On Linux, it is possible to select either static or dynamic linking of the C++
 833 runtime. The default is static linking, with dynamic linking as fallback if the
 834 static library is not found.
 835 
 836   * `--with-stdc++lib=<method>` - Use the specified method (`static`, `dynamic`




 631   * To install on an rpm-based Linux, try running `sudo yum install
 632     alsa-lib-devel`.
 633 
 634 Use `--with-alsa=<path>` if `configure` does not properly locate your ALSA
 635 files.
 636 
 637 ### libffi
 638 
 639 libffi, the [Portable Foreign Function Interface Library](
 640 http://sourceware.org/libffi) is required when building the Zero version of
 641 Hotspot.
 642 
 643   * To install on an apt-based Linux, try running `sudo apt-get install
 644     libffi-dev`.
 645   * To install on an rpm-based Linux, try running `sudo yum install
 646     libffi-devel`.
 647 
 648 Use `--with-libffi=<path>` if `configure` does not properly locate your libffi
 649 files.
 650 













 651 ## Other Tooling Requirements
 652 
 653 ### GNU Make
 654 
 655 OpenJDK requires [GNU Make](http://www.gnu.org/software/make). No other flavors
 656 of make are supported.
 657 
 658 At least version 3.81 of GNU Make must be used. For distributions supporting
 659 GNU Make 4.0 or above, we strongly recommend it. GNU Make 4.0 contains useful
 660 functionality to handle parallel building (supported by `--with-output-sync`)
 661 and speed and stability improvements.
 662 
 663 Note that `configure` locates and verifies a properly functioning version of
 664 `make` and stores the path to this `make` binary in the configuration. If you
 665 start a build using `make` on the command line, you will be using the version
 666 of make found first in your `PATH`, and not necessarily the one stored in the
 667 configuration. This initial make will be used as "bootstrap make", and in a
 668 second stage, the make located by `configure` will be called. Normally, this
 669 will present no issues, but if you have a very old `make`, or a non-GNU Make
 670 `make` in your path, this might cause issues.


 783   * `--with-extra-path=<path>[;<path>]` - Prepend these directories to the
 784     default path when searching for all kinds of binaries
 785   * `--with-toolchain-path=<path>[;<path>]` - Prepend these directories when
 786     searching for toolchain binaries (compilers etc)
 787   * `--with-extra-cflags=<flags>` - Append these flags when compiling JDK C
 788     files
 789   * `--with-extra-cxxflags=<flags>` - Append these flags when compiling JDK C++
 790     files
 791   * `--with-extra-ldflags=<flags>` - Append these flags when linking JDK
 792     libraries
 793 
 794 #### Configure Arguments for External Dependencies
 795 
 796   * `--with-boot-jdk=<path>` - Set the path to the [Boot JDK](
 797     #boot-jdk-requirements)
 798   * `--with-freetype=<path>` - Set the path to [FreeType](#freetype)
 799   * `--with-cups=<path>` - Set the path to [CUPS](#cups)
 800   * `--with-x=<path>` - Set the path to [X11](#x11)
 801   * `--with-alsa=<path>` - Set the path to [ALSA](#alsa)
 802   * `--with-libffi=<path>` - Set the path to [libffi](#libffi)

 803   * `--with-jtreg=<path>` - Set the path to JTReg. See [Running Tests](
 804     #running-tests)
 805 
 806 Certain third-party libraries used by OpenJDK (libjpeg, giflib, libpng, lcms
 807 and zlib) are included in the OpenJDK repository. The default behavior of the
 808 OpenJDK build is to use this version of these libraries, but they might be
 809 replaced by an external version. To do so, specify `system` as the `<source>`
 810 option in these arguments. (The default is `bundled`).
 811 
 812   * `--with-libjpeg=<source>` - Use the specified source for libjpeg
 813   * `--with-giflib=<source>` - Use the specified source for giflib
 814   * `--with-libpng=<source>` - Use the specified source for libpng
 815   * `--with-lcms=<source>` - Use the specified source for lcms
 816   * `--with-zlib=<source>` - Use the specified source for zlib
 817 
 818 On Linux, it is possible to select either static or dynamic linking of the C++
 819 runtime. The default is static linking, with dynamic linking as fallback if the
 820 static library is not found.
 821 
 822   * `--with-stdc++lib=<method>` - Use the specified method (`static`, `dynamic`


common/doc/building.md
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File