< prev index next >

doc/building.md

Print this page




 510   * To install on an rpm-based Linux, try running `sudo yum install
 511     alsa-lib-devel`.
 512 
 513 Use `--with-alsa=<path>` if `configure` does not properly locate your ALSA
 514 files.
 515 
 516 ### libffi
 517 
 518 libffi, the [Portable Foreign Function Interface Library](
 519 http://sourceware.org/libffi) is required when building the Zero version of
 520 Hotspot.
 521 
 522   * To install on an apt-based Linux, try running `sudo apt-get install
 523     libffi-dev`.
 524   * To install on an rpm-based Linux, try running `sudo yum install
 525     libffi-devel`.
 526 
 527 Use `--with-libffi=<path>` if `configure` does not properly locate your libffi
 528 files.
 529 


























 530 ## Build Tools Requirements
 531 
 532 ### Autoconf
 533 
 534 The JDK requires [Autoconf](http://www.gnu.org/software/autoconf) on all
 535 platforms. At least version 2.69 is required.
 536 
 537   * To install on an apt-based Linux, try running `sudo apt-get install
 538     autoconf`.
 539   * To install on an rpm-based Linux, try running `sudo yum install
 540     autoconf`.
 541   * To install on macOS, try running `brew install autoconf`.
 542   * To install on Windows, try running `<path to Cygwin setup>/setup-x86_64 -q
 543     -P autoconf`.
 544 
 545 If `configure` has problems locating your installation of autoconf, you can
 546 specify it using the `AUTOCONF` environment variable, like this:
 547 
 548 ```
 549 AUTOCONF=<path to autoconf> configure ...


 677   * `--with-extra-path=<path>[;<path>]` - Prepend these directories to the
 678     default path when searching for all kinds of binaries
 679   * `--with-toolchain-path=<path>[;<path>]` - Prepend these directories when
 680     searching for toolchain binaries (compilers etc)
 681   * `--with-extra-cflags=<flags>` - Append these flags when compiling JDK C
 682     files
 683   * `--with-extra-cxxflags=<flags>` - Append these flags when compiling JDK C++
 684     files
 685   * `--with-extra-ldflags=<flags>` - Append these flags when linking JDK
 686     libraries
 687 
 688 #### Configure Arguments for External Dependencies
 689 
 690   * `--with-boot-jdk=<path>` - Set the path to the [Boot JDK](
 691     #boot-jdk-requirements)
 692   * `--with-freetype=<path>` - Set the path to [FreeType](#freetype)
 693   * `--with-cups=<path>` - Set the path to [CUPS](#cups)
 694   * `--with-x=<path>` - Set the path to [X11](#x11)
 695   * `--with-alsa=<path>` - Set the path to [ALSA](#alsa)
 696   * `--with-libffi=<path>` - Set the path to [libffi](#libffi)


 697   * `--with-jtreg=<path>` - Set the path to JTReg. See [Running Tests](
 698     #running-tests)
 699 
 700 Certain third-party libraries used by the JDK (libjpeg, giflib, libpng, lcms
 701 and zlib) are included in the JDK repository. The default behavior of the
 702 JDK build is to use this version of these libraries, but they might be
 703 replaced by an external version. To do so, specify `system` as the `<source>`
 704 option in these arguments. (The default is `bundled`).
 705 
 706   * `--with-libjpeg=<source>` - Use the specified source for libjpeg
 707   * `--with-giflib=<source>` - Use the specified source for giflib
 708   * `--with-libpng=<source>` - Use the specified source for libpng
 709   * `--with-lcms=<source>` - Use the specified source for lcms
 710   * `--with-zlib=<source>` - Use the specified source for zlib
 711 
 712 On Linux, it is possible to select either static or dynamic linking of the C++
 713 runtime. The default is static linking, with dynamic linking as fallback if the
 714 static library is not found.
 715 
 716   * `--with-stdc++lib=<method>` - Use the specified method (`static`, `dynamic`




 510   * To install on an rpm-based Linux, try running `sudo yum install
 511     alsa-lib-devel`.
 512 
 513 Use `--with-alsa=<path>` if `configure` does not properly locate your ALSA
 514 files.
 515 
 516 ### libffi
 517 
 518 libffi, the [Portable Foreign Function Interface Library](
 519 http://sourceware.org/libffi) is required when building the Zero version of
 520 Hotspot.
 521 
 522   * To install on an apt-based Linux, try running `sudo apt-get install
 523     libffi-dev`.
 524   * To install on an rpm-based Linux, try running `sudo yum install
 525     libffi-devel`.
 526 
 527 Use `--with-libffi=<path>` if `configure` does not properly locate your libffi
 528 files.
 529 
 530 ### SoftFloat
 531 
 532 [Berkeley SoftFloat-3](http://www.jhauser.us/arithmetic/SoftFloat.html)
 533 can be used on ARM processors without FPU to slightly enhance
 534 the arithmetic precision of some floating point operations. It is not
 535 required, system softfp routines can be used without any problems.
 536 The precision loss is extremely small, but [the JCK detects it](
 537 http://mail.openjdk.java.net/pipermail/aarch32-port-dev/2016-November/000611.html).
 538 
 539   * To build the library, you will have to download its source and build it
 540     for the target platform. To do so, take a look in its
 541     `build/Linux-ARM-VFPv2-GCC` subdirectory.
 542 
 543 You can enable this library by specifying a library prefix
 544 via `--with-sflt=<path>` or by specifying path to softfloat.a
 545 via `--with-sflt-lib=<path>` and path to directory
 546 containing softfloat.h via `--with-sflt-include=<path>`. You
 547 will also need to specify path to the SoftFloat license file with
 548 `--with-sflt-license=<path>`. If you want to use the prefix option, ensure that
 549 `<prefix>/lib/softfloat.a`, `<prefix>/include/softfloat.h` and
 550 `<prefix>/share/softfloat/softfloat.md` exist. However you can override
 551 the defaults by using the options above.
 552 
 553 If you do not enable this library, standard system libraries
 554 will be used instead.
 555 
 556 ## Build Tools Requirements
 557 
 558 ### Autoconf
 559 
 560 The JDK requires [Autoconf](http://www.gnu.org/software/autoconf) on all
 561 platforms. At least version 2.69 is required.
 562 
 563   * To install on an apt-based Linux, try running `sudo apt-get install
 564     autoconf`.
 565   * To install on an rpm-based Linux, try running `sudo yum install
 566     autoconf`.
 567   * To install on macOS, try running `brew install autoconf`.
 568   * To install on Windows, try running `<path to Cygwin setup>/setup-x86_64 -q
 569     -P autoconf`.
 570 
 571 If `configure` has problems locating your installation of autoconf, you can
 572 specify it using the `AUTOCONF` environment variable, like this:
 573 
 574 ```
 575 AUTOCONF=<path to autoconf> configure ...


 703   * `--with-extra-path=<path>[;<path>]` - Prepend these directories to the
 704     default path when searching for all kinds of binaries
 705   * `--with-toolchain-path=<path>[;<path>]` - Prepend these directories when
 706     searching for toolchain binaries (compilers etc)
 707   * `--with-extra-cflags=<flags>` - Append these flags when compiling JDK C
 708     files
 709   * `--with-extra-cxxflags=<flags>` - Append these flags when compiling JDK C++
 710     files
 711   * `--with-extra-ldflags=<flags>` - Append these flags when linking JDK
 712     libraries
 713 
 714 #### Configure Arguments for External Dependencies
 715 
 716   * `--with-boot-jdk=<path>` - Set the path to the [Boot JDK](
 717     #boot-jdk-requirements)
 718   * `--with-freetype=<path>` - Set the path to [FreeType](#freetype)
 719   * `--with-cups=<path>` - Set the path to [CUPS](#cups)
 720   * `--with-x=<path>` - Set the path to [X11](#x11)
 721   * `--with-alsa=<path>` - Set the path to [ALSA](#alsa)
 722   * `--with-libffi=<path>` - Set the path to [libffi](#libffi)
 723   * `--with-sflt=<path>` - Enable and set the path to [SoftFloat](#softfloat)
 724     library.
 725   * `--with-jtreg=<path>` - Set the path to JTReg. See [Running Tests](
 726     #running-tests)
 727 
 728 Certain third-party libraries used by the JDK (libjpeg, giflib, libpng, lcms
 729 and zlib) are included in the JDK repository. The default behavior of the
 730 JDK build is to use this version of these libraries, but they might be
 731 replaced by an external version. To do so, specify `system` as the `<source>`
 732 option in these arguments. (The default is `bundled`).
 733 
 734   * `--with-libjpeg=<source>` - Use the specified source for libjpeg
 735   * `--with-giflib=<source>` - Use the specified source for giflib
 736   * `--with-libpng=<source>` - Use the specified source for libpng
 737   * `--with-lcms=<source>` - Use the specified source for lcms
 738   * `--with-zlib=<source>` - Use the specified source for zlib
 739 
 740 On Linux, it is possible to select either static or dynamic linking of the C++
 741 runtime. The default is static linking, with dynamic linking as fallback if the
 742 static library is not found.
 743 
 744   * `--with-stdc++lib=<method>` - Use the specified method (`static`, `dynamic`


< prev index next >