Review Request: Build-infra M1 (original) (raw)
Fredrik Öhrström fredrik.ohrstrom at oracle.com
Mon Mar 26 11:09:58 UTC 2012
- Previous message (by thread): Review Request: Build-infra M1
- Next message (by thread): Review Request: Build-infra M1
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
2012-03-26 12:05, Michael McMahon skrev:
Thanks. It looks like the first of the three options above is most similar to the verbosity level of the old build. Is all of this documented anywhere?
Well, I have so far really tried to comment in the makefiles. So the "make VERBOSE=" trick is the first thing that is written in the root Makefile. :-)
However, I agree that reading the makefiles really, is not an option for most people. Thus here is a first cheat sheet of the options that are of OpenJDK builder interest. (The list will change and also be expanded with more configuration options.) It is in fact the output from "configure --help" where I have removed options of more generic interest and that are not really used yet. For example detailed install locations and such.
The configure script tries to figure everything out for you. The goal is that you should not have to configure the number of cores, where the boot jdk is etc etc.
For example, the configure script does try to find your boot jdk on Windows by looking in the default installation locations. It does so only partially on the Mac. (Please add that code to configure.ac if you like!) So you specify --with-boot-jdk=....jdk7 only when want to override, or if you have a special installation.
The same is true for most other options, number of cores, amount of memory etc etc.
On Windows, you have to specify the path to the freetype dlls and header files. Since they have no default location. But the configure script will find your visual studio installation!
Typical configure examples:
Plain and simple, build a release version.
../autoconf/configure
You want to debug?
../autoconf/configure --enable-debug
A windows build.
../autoconf/configure --with-freetype=/cygdrive/c/downloads/myfreetype --with-boot-jdk=/cygdrive/c/javas/jdk7
Build using incremental build for java. Ie rebuild only the package
and its dependent packages when a single
Java source file is changed.
../autoconf/configure --enable-javac-server --enable-javac-deps --enable-javac-multi-core
Cross compiling to 32 bit, and build only the server jvm.
../autoconf/configure --host=i686-unknown-linux-gnu --with-sys-root=/home/sysroots/for32bitlinux --with-jvm-variants=server
Plain and simple.
make
Debug the build process.
make VERBOSE=
If you have run configure twice from the makefiles directory.
(For example you have normal configure and a cross configure)
This make command will build all configurations.
make ALL
--build=BUILD configure for building on BUILD [guessed] But it is recommended that you set it.
--host=HOST cross-compile to build programs to run on HOST [BUILD]
--disable-head Should support for a head (graphical UI support) be compiled into the jdk/jvm? [default=enabled]
--enable-debug Enable the debug level=fastdebug, ie asserts, -g and optimizations.
--disable-ccache Should ccache be used to speed up recompilations? [default=enabled]
--disable-precompiled-headers Should precompiled headers be used by the C++ compiler [default=enabled]
--enable-javac-server Disable the shared javac server during the build process, which is enabled by default.
--enable-javac-deps Enable the dependency tracking between Java packages.
--enable-javac-multi-core Compile Java packages concurrently instead of doing a batch compile of each source root.
--disable-macosx-runtime-support Disable use of the MacOSX Java runtime support framework.
--disable-docs Disable generation of documentation [default=disabled] (Should be enabled, but we really need to fix the speed of javadoc!)
--disable-nimbus Disable nimbus L&F [default=enabled]
--disable-static-link-stdc++ Use only dynamic linking to the c++ runtime on Linux. The default is to static link.
--enable-hotspot-test-in-build Enable running of Queens test after Hotspot build. Automatically disabled when cross compiling.
--with-num-cores=32 specify the number of cores in the build system.
--with-memorysize=1024 specify the number MB of memory in the build system. Used to limit number of concurrent javacs.
--with-jdk-variant Choose jdk variant to build: normal,embedded. [default=normal]
--with-jvm-variants Choose jvm variants, separated by commas, to build: server,client,kernel,zero,zeroshark. [default=server] (only client,server and kernel works right now)
--with-debug-level Set the debug level: release, fastdebug, slowdebug.
--with-msvcr100dll= copy this msvcr100.dll into the built jdk, instead of the automatically found one.
--with-builddeps-conf use this configuration file for the builddeps and no other!
--with-builddeps-server download and use build dependencies from this server url, eg ftp://aserver.atld/adir
--with-builddeps-dir store downloaded build dependencies here [default=/localhome/builddeps]
--with-builddeps-group chgrp the downloaded build dependencies to this group
--with-sys-root pass --sys-root=the_sys_root to the compilers and linker.
--with-ccache-dir Store ccache files here. Defaults to your .ccache in your home directory.
--with-boot-jdk specify which boot jdk to use to build.
--with-add-source-root For each and every source directory, look in this additional source root for the same directory, if it exists and have files in it, include them in the build.
--with-override-source-root For each and every source directory, look in this override source root for the same directory, if it exists, use that directory instead and ignore the directory in the original source root.
--with-override-langtools Use this langtools dir for the build.
--with-override-corba Use this corba dir for the build.
--with-override-jaxp Use this jaxp dir for the build.
--with-override-jaxws Use this jaxws dir for the build.
--with-override-hotspot Use this hotspot dir for the build.
--with-override-jdk Use this jdk dir for the build. (Though is is probably better to clone a new forest instead.)
--with-boot-jdk-jvmargs specify a standard set of jvmargs to passed to all invocations of the boot jdk, ie -Xmx8G -enableassertions. This overrides the default values.
--with-server-java Use this java binary for running the javac background server and other long running java tasks in the build process, ie --with-server-java="/jrockit/bin/java -server"
--with-javac-server-cores Use at most this number of concurrent threads on the javac server. Defaults to the number of cores in your build system.
--with-x use the X Window System
--with-cups=PATH specify prefix directory for installed cups package. Equivalent to --with-cups-include=PATH/include plus --with-cups-lib=PATH/lib
--with-freetype=PATH specify prefix directory for installed freetype2 package. Expects the libraries under PATH/lib and the headers under PATH/include
--with-alsa=PATH specify prefix directory for installed alsa. Equivalent to --with-alsa-include=PATH/include plus --with-alsa-lib=PATH/lib
--with-pulse=PATH specify prefix directory for installed pulse. Equivalent to --with-pulse-include=PATH/include plus --with-pulse-lib=PATH/lib
- Previous message (by thread): Review Request: Build-infra M1
- Next message (by thread): Review Request: Build-infra M1
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]