diff --git a/make/autoconf/jdk-options.m4 b/make/autoconf/jdk-options.m4 index 465e06ab39d..5b57a4a1869 100644 --- a/make/autoconf/jdk-options.m4 +++ b/make/autoconf/jdk-options.m4 @@ -95,6 +95,13 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_OPEN_OR_CUSTOM], AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_OPTIONS], [ + # Should we build a JDK with/without sound ? + UTIL_ARG_ENABLE(NAME: jsound, DEFAULT: true, + RESULT: ENABLE_JSOUND, + DESC: [build with sound support], + CHECKING_MSG: [if we should build with sound support]) + AC_SUBST(ENABLE_JSOUND) + # Should we build a JDK without a graphical UI? UTIL_ARG_ENABLE(NAME: headless-only, DEFAULT: false, RESULT: ENABLE_HEADLESS_ONLY, diff --git a/make/autoconf/spec.gmk.template b/make/autoconf/spec.gmk.template index ecfd5dd0a92..25211a25dc9 100644 --- a/make/autoconf/spec.gmk.template +++ b/make/autoconf/spec.gmk.template @@ -329,6 +329,8 @@ HOTSPOT_OVERRIDE_LIBPATH := @HOTSPOT_OVERRIDE_LIBPATH@ # Control use of precompiled header in hotspot libjvm build USE_PRECOMPILED_HEADER := @USE_PRECOMPILED_HEADER@ +ENABLE_JSOUND := @ENABLE_JSOUND@ + # Only build headless support or not ENABLE_HEADLESS_ONLY := @ENABLE_HEADLESS_ONLY@ diff --git a/make/modules/java.desktop/Lib.gmk b/make/modules/java.desktop/Lib.gmk index 830e0553c39..1c43950480c 100644 --- a/make/modules/java.desktop/Lib.gmk +++ b/make/modules/java.desktop/Lib.gmk @@ -1,5 +1,5 @@ # -# Copyright (c) 2011, 2025, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2011, 2026, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -37,49 +37,51 @@ $(call FillFindCache, $(wildcard $(TOPDIR)/src/java.desktop/*/native)) include lib/AwtLibraries.gmk include lib/ClientLibraries.gmk -ifeq ($(call isTargetOs, aix), false) - ############################################################################## - # Build libjsound - ############################################################################## +ifeq ($(ENABLE_JSOUND), true) + ifeq ($(call isTargetOs, aix), false) + ############################################################################## + # Build libjsound + ############################################################################## - LIBJSOUND_CFLAGS := \ - $(ALSA_CFLAGS) \ - -DX_PLATFORM=X_$(OPENJDK_TARGET_OS_UPPERCASE) \ - -DUSE_PORTS=TRUE \ - -DUSE_DAUDIO=TRUE \ - -DUSE_PLATFORM_MIDI_OUT=TRUE \ - -DUSE_PLATFORM_MIDI_IN=TRUE \ - # + LIBJSOUND_CFLAGS := \ + $(ALSA_CFLAGS) \ + -DX_PLATFORM=X_$(OPENJDK_TARGET_OS_UPPERCASE) \ + -DUSE_PORTS=TRUE \ + -DUSE_DAUDIO=TRUE \ + -DUSE_PLATFORM_MIDI_OUT=TRUE \ + -DUSE_PLATFORM_MIDI_IN=TRUE \ + # - LIBJSOUND_LINK_TYPE := C - ifeq ($(call isTargetOs, macosx), true) - LIBJSOUND_LINK_TYPE := C++ + LIBJSOUND_LINK_TYPE := C + ifeq ($(call isTargetOs, macosx), true) + LIBJSOUND_LINK_TYPE := C++ + endif + + $(eval $(call SetupJdkLibrary, BUILD_LIBJSOUND, \ + NAME := jsound, \ + LINK_TYPE := $(LIBJSOUND_LINK_TYPE), \ + OPTIMIZATION := LOW, \ + EXTRA_HEADER_DIRS := java.base:libjava, \ + CFLAGS := $(LIBJSOUND_CFLAGS), \ + CXXFLAGS := $(LIBJSOUND_CFLAGS), \ + DISABLED_WARNINGS_gcc := undef unused-variable, \ + DISABLED_WARNINGS_clang := undef unused-variable, \ + DISABLED_WARNINGS_clang_PLATFORM_API_MacOSX_MidiUtils.c := \ + unused-but-set-variable, \ + DISABLED_WARNINGS_clang_DirectAudioDevice.c := unused-function, \ + LIBS_linux := $(ALSA_LIBS), \ + LIBS_macosx := \ + -framework AudioToolbox \ + -framework AudioUnit \ + -framework CoreAudio \ + -framework CoreFoundation \ + -framework CoreMIDI \ + -framework CoreServices, \ + LIBS_windows := advapi32.lib dsound.lib ole32.lib user32.lib winmm.lib, \ + )) + + TARGETS += $(BUILD_LIBJSOUND) endif - - $(eval $(call SetupJdkLibrary, BUILD_LIBJSOUND, \ - NAME := jsound, \ - LINK_TYPE := $(LIBJSOUND_LINK_TYPE), \ - OPTIMIZATION := LOW, \ - EXTRA_HEADER_DIRS := java.base:libjava, \ - CFLAGS := $(LIBJSOUND_CFLAGS), \ - CXXFLAGS := $(LIBJSOUND_CFLAGS), \ - DISABLED_WARNINGS_gcc := undef unused-variable, \ - DISABLED_WARNINGS_clang := undef unused-variable, \ - DISABLED_WARNINGS_clang_PLATFORM_API_MacOSX_MidiUtils.c := \ - unused-but-set-variable, \ - DISABLED_WARNINGS_clang_DirectAudioDevice.c := unused-function, \ - LIBS_linux := $(ALSA_LIBS), \ - LIBS_macosx := \ - -framework AudioToolbox \ - -framework AudioUnit \ - -framework CoreAudio \ - -framework CoreFoundation \ - -framework CoreMIDI \ - -framework CoreServices, \ - LIBS_windows := advapi32.lib dsound.lib ole32.lib user32.lib winmm.lib, \ - )) - - TARGETS += $(BUILD_LIBJSOUND) endif ifeq ($(call isTargetOs, macosx), true)