The information on these pages may be out of date, or may refer to
resources that have moved or have been made read-only.
For more information please refer to the Apache Attic
The Harmony Development Kit (HDK) allows a Harmony developer to rebuild any module of the Harmony Classlib or DRLVM in a standalone way by providing all the necessary supplementary binaries and header files. HDK bundles are available for download as a standard part of regular Harmony builds (nightly, stable, etc). This document describes the layout of such an HDK and its contents.
An HDK contains all the header files and binaries, both native and Java, required for a Harmony developer to build against. The directory structure for an HDK is as follows:
<hdkbase> | |---build | |---make | |---patternsets | \---test | |---jdk | |---jre | \---include | |---include | \---libThe directories laid out above are used in the following manner:
<hdkbase>/build/make- this directory contains include files used by native makefiles.
<hdkbase>/build/patternsets- this directory contains patternsets describing jar content.
<hdkbase>/build/test- this directory contains test support classes, bundled up into a jar file.
<hdkbase>/jdk/jre- this directory contains the standard jre layout, including
<hdkbase>/jdk/include- this directory contains the standard jdk header files. For example, jni.h is held here.
<hdkbase>/include- this directory contains header files that are Harmony specific and are used across multiple Harmony modules.
<hdkbase>/lib- this directory is used in HDKs on Windows for .lib files and on Linux for .a files necessary for linking during compilation of Harmony natives.
The HDK and relevant build system changes are work in progress. Not all of the Ant targets/properties described exist yet, and thus not all of what is described below currently works. This disclaimer will be removed once work on the HDK is completed.
The Harmony Class Library can be built at the global or modular level. At the modular level, there are three ways to build:
antat the command line.
ant -Dhy.hdk=path/to/HDK -DHY.TARGET=path/to/target
If you wanted to build only the luni module against an HDK, and put the resulting artifacts into a separate target directory, do the following:
ant -Dhy.hdk=path/to/hdk -DHY.TARGET=path/to/target
The luni Java and native code will be built against the HDK location specified, and all produced binaries placed under the target directory, laid out in the HDK structure described at the top of this page.