if BR2_PACKAGE_OPENJDK
+config BR2_PACKAGE_OPENJDK_FULL_JDK
+ bool "Build the full JDK"
+ help
+ Install the full JDK instead of just the run time.
+ The full JDK includes several packages used for debugging and
+ development. Some useful tools included with the JDK are:
+ - javaws
+ Command line tool for launching Java Web Start and setting
+ various options.
+
+ - jcmd:
+ JVM Diagnostic Commands tool: Sends diagnostic command
+ requests to a running Java Virtual Machine.
+
+ - jinfo
+ Configuration Info for Java: Prints configuration
+ information for a given process or core file or a remote
+ debug server.
+
+ - jmap
+ Memory Map for Java: Prints shared object memory maps or
+ heap memory details of a given process or core file or a
+ remote debug server.
+
+ - jsadebugd
+ Serviceability Agent Debug Daemon for Java: Attaches to a
+ process or core file and acts as a debug server.
+
+ - jstack
+ Stack Trace for Java - Prints a stack trace of threads for
+ a given process or core file or remote debug server.
+
+ - jstat
+ JVM Statistics Monitoring Tool: Attaches to an
+ instrumented HotSpot Java virtual machine and collects and
+ logs performance statistics as specified by the command
+ line options.
+
+ - jstatd
+ JVM jstat Daemon - Launches an RMI server application that
+ monitors for the creation and termination of instrumented
+ HotSpot Java virtual machines and provides an interface to
+ allow remote monitoring tools to attach to Java virtual
+ machines running on the local system.
+
+ Note:
+ While the JDK also comes with several tools which can be used
+ for developing java applications on a target, Buildroot does
+ not support development on a target. Building the full JDK is
+ supported for debugging purposes only.
+
+ Selecting this option increases the file system by
+ approximately 110M.
+
choice
prompt "openjdk variant"
default BR2_PACKAGE_OPENJDK_JVM_VARIANT_SERVER if !BR2_powerpc
OPENJDK_DEPENDENCIES += libffi
endif
+ifeq ($(BR2_PACKAGE_OPENJDK_FULL_JDK),y)
+OPENJDK_VARIANT = jdk
+OPENJDK_MAKE_TARGET = jdk-image
+else
+OPENJDK_VARIANT = jre
+OPENJDK_MAKE_TARGET = legacy-jre-image
+endif
+
# OpenJDK installs a file named 'modules' in jre/lib, which gets installed as
# /usr/lib/modules. However, with a merged /usr, this conflicts with the
# directory named 'modules' installed by the kernel. If OpenJDK gets built
# Make -jn is unsupported. Instead, set the "--with-jobs=" configure option,
# and use $(MAKE1).
define OPENJDK_BUILD_CMDS
- $(TARGET_MAKE_ENV) $(MAKE1) -C $(@D) legacy-jre-image
+ $(TARGET_MAKE_ENV) $(OPENJDK_CONF_ENV) $(MAKE1) -C $(@D) $(OPENJDK_MAKE_TARGET)
endef
# Calling make install always builds and installs the JDK instead of the JRE,
# which makes manual installation necessary.
define OPENJDK_INSTALL_TARGET_CMDS
mkdir -p $(TARGET_DIR)$(OPENJDK_INSTALL_BASE)
- cp -dpfr $(@D)/build/linux-*-release/images/jre/* \
+ cp -dpfr $(@D)/build/linux-*-release/images/$(OPENJDK_VARIANT)/* \
$(TARGET_DIR)$(OPENJDK_INSTALL_BASE)/
cd $(TARGET_DIR)/usr/bin && ln -snf ../..$(OPENJDK_INSTALL_BASE)/bin/* .
endef
+# Demos and includes are not needed on the target
+ifeq ($(BR2_PACKAGE_OPENJDK_FULL_JDK),y)
+define OPENJDK_REMOVE_UNEEDED_JDK_DIRECTORIES
+ $(RM) -r $(TARGET_DIR)$(OPENJDK_INSTALL_BASE)/include/
+ $(RM) -r $(TARGET_DIR)$(OPENJDK_INSTALL_BASE)/demo/
+endef
+OPENJDK_TARGET_FINALIZE_HOOKS += OPENJDK_REMOVE_UNEEDED_JDK_DIRECTORIES
+endif
+
$(eval $(generic-package))