Makefile revision 2362
fd896e2068ad7e50aed66ac18c3720ea7ff2619fChristian Maeder#
fd896e2068ad7e50aed66ac18c3720ea7ff2619fChristian Maeder# Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved.
81d182b21020b815887e9057959228546cf61b6bChristian Maeder# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
fd896e2068ad7e50aed66ac18c3720ea7ff2619fChristian Maeder#
97018cf5fa25b494adffd7e9b4e87320dae6bf47Christian Maeder# This code is free software; you can redistribute it and/or modify it
fd896e2068ad7e50aed66ac18c3720ea7ff2619fChristian Maeder# under the terms of the GNU General Public License version 2 only, as
3f69b6948966979163bdfe8331c38833d5d90ecdChristian Maeder# published by the Free Software Foundation. Oracle designates this
fd896e2068ad7e50aed66ac18c3720ea7ff2619fChristian Maeder# particular file as subject to the "Classpath" exception as provided
fd896e2068ad7e50aed66ac18c3720ea7ff2619fChristian Maeder# by Oracle in the LICENSE file that accompanied this code.
fd896e2068ad7e50aed66ac18c3720ea7ff2619fChristian Maeder#
f3a94a197960e548ecd6520bb768cb0d547457bbChristian Maeder# This code is distributed in the hope that it will be useful, but WITHOUT
fd896e2068ad7e50aed66ac18c3720ea7ff2619fChristian Maeder# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
fd896e2068ad7e50aed66ac18c3720ea7ff2619fChristian Maeder# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
fd896e2068ad7e50aed66ac18c3720ea7ff2619fChristian Maeder# version 2 for more details (a copy is included in the LICENSE file that
fd896e2068ad7e50aed66ac18c3720ea7ff2619fChristian Maeder# accompanied this code).
dea4c92f0c061d589c542d0640a18dab36dfbb46Christian Maeder#
842eedc62639561781b6c33533d1949693ef6cc5Christian Maeder# You should have received a copy of the GNU General Public License version
fd896e2068ad7e50aed66ac18c3720ea7ff2619fChristian Maeder# 2 along with this work; if not, write to the Free Software Foundation,
d48085f765fca838c1d972d2123601997174583dChristian Maeder# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
c14773c3d0fc73a474c8d86be4b3cd12ffe4d99cChristian Maeder#
01d38aaf894bf138dd9678b16119baf7aec28fc5Christian Maeder# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
dea4c92f0c061d589c542d0640a18dab36dfbb46Christian Maeder# or visit www.oracle.com if you need additional information or have any
dea4c92f0c061d589c542d0640a18dab36dfbb46Christian Maeder# questions.
ad270004874ce1d0697fb30d7309f180553bb315Christian Maeder#
ad270004874ce1d0697fb30d7309f180553bb315Christian Maeder
dea4c92f0c061d589c542d0640a18dab36dfbb46Christian Maeder# WARNING: Make sure the OPENJDK plugs are up-to-date, see make/common/internal/BinaryPlugs.gmk
90c174bac60a72ffd81bc3bf5ae2dd9a61943b8bChristian Maeder
81d182b21020b815887e9057959228546cf61b6bChristian MaederBUILDDIR = ../..
842eedc62639561781b6c33533d1949693ef6cc5Christian MaederMODULE = sound
81d182b21020b815887e9057959228546cf61b6bChristian MaederPACKAGE = javax.sound
81d182b21020b815887e9057959228546cf61b6bChristian MaederLIBRARY = jsound
81d182b21020b815887e9057959228546cf61b6bChristian MaederPRODUCT = sun
01d38aaf894bf138dd9678b16119baf7aec28fc5Christian Maederinclude $(BUILDDIR)/common/Defs.gmk
01d38aaf894bf138dd9678b16119baf7aec28fc5Christian Maeder
88ece6e49930670e8fd3ee79c89a2e918d2fbd0cChristian Maeder# include defines for sound
842eedc62639561781b6c33533d1949693ef6cc5Christian Maederinclude SoundDefs.gmk
dea4c92f0c061d589c542d0640a18dab36dfbb46Christian Maeder
e817ea5134dced9e0bcce1a9d6b8fe4f81d36e56Christian Maeder# support for different mixer provider files on different platforms
81d182b21020b815887e9057959228546cf61b6bChristian Maeder#MXSP = javax.sound.sampled.spi.MixerProvider
81d182b21020b815887e9057959228546cf61b6bChristian Maeder# Mixer Service Provider Additional path
d2a7d862bdfd22777c74f52363eee3067510827cChristian Maeder#MXSPP_ADD =
d2a7d862bdfd22777c74f52363eee3067510827cChristian Maeder
e817ea5134dced9e0bcce1a9d6b8fe4f81d36e56Christian Maeder#
e817ea5134dced9e0bcce1a9d6b8fe4f81d36e56Christian Maeder# Add use of mapfile
81d182b21020b815887e9057959228546cf61b6bChristian Maeder#
86564787e243a211b2051c62f6e9080a7be9dc7aChristian MaederFILES_m = mapfile-vers
e817ea5134dced9e0bcce1a9d6b8fe4f81d36e56Christian Maederinclude $(BUILDDIR)/common/Mapfile-vers.gmk
e817ea5134dced9e0bcce1a9d6b8fe4f81d36e56Christian Maeder
dea4c92f0c061d589c542d0640a18dab36dfbb46Christian Maeder#
81d182b21020b815887e9057959228546cf61b6bChristian Maeder# Files
dea4c92f0c061d589c542d0640a18dab36dfbb46Christian Maeder#
d2a7d862bdfd22777c74f52363eee3067510827cChristian Maederinclude FILES_c.gmk
d2a7d862bdfd22777c74f52363eee3067510827cChristian Maeder
81d182b21020b815887e9057959228546cf61b6bChristian Maeder# add java files
dea4c92f0c061d589c542d0640a18dab36dfbb46Christian MaederAUTO_FILES_JAVA_DIRS = javax/sound com/sun/media/sound
81d182b21020b815887e9057959228546cf61b6bChristian Maeder
d2a7d862bdfd22777c74f52363eee3067510827cChristian Maeder#
81d182b21020b815887e9057959228546cf61b6bChristian Maeder# Files that just need cp.
ad187062b0009820118c1b773a232e29b879a2faChristian Maeder#
ad187062b0009820118c1b773a232e29b879a2faChristian MaederSERVICEDIR = $(CLASSBINDIR)/META-INF/services
ad187062b0009820118c1b773a232e29b879a2faChristian Maeder
ad187062b0009820118c1b773a232e29b879a2faChristian MaederFILES_copy = \
dea4c92f0c061d589c542d0640a18dab36dfbb46Christian Maeder $(SERVICEDIR)/javax.sound.midi.spi.MidiDeviceProvider \
dea4c92f0c061d589c542d0640a18dab36dfbb46Christian Maeder $(SERVICEDIR)/javax.sound.midi.spi.MidiFileWriter \
81d182b21020b815887e9057959228546cf61b6bChristian Maeder $(SERVICEDIR)/javax.sound.midi.spi.MidiFileReader \
dea4c92f0c061d589c542d0640a18dab36dfbb46Christian Maeder $(SERVICEDIR)/javax.sound.midi.spi.SoundbankReader \
d2a7d862bdfd22777c74f52363eee3067510827cChristian Maeder $(SERVICEDIR)/javax.sound.sampled.spi.AudioFileWriter \
d2a7d862bdfd22777c74f52363eee3067510827cChristian Maeder $(SERVICEDIR)/javax.sound.sampled.spi.AudioFileReader \
81d182b21020b815887e9057959228546cf61b6bChristian Maeder $(SERVICEDIR)/javax.sound.sampled.spi.FormatConversionProvider \
dea4c92f0c061d589c542d0640a18dab36dfbb46Christian Maeder $(SERVICEDIR)/javax.sound.sampled.spi.MixerProvider \
dea4c92f0c061d589c542d0640a18dab36dfbb46Christian Maeder $(LIBDIR)/sound.properties
97ee7048e63953c5617342ce38c30cbcb35cc0beChristian Maeder
97ee7048e63953c5617342ce38c30cbcb35cc0beChristian MaederFILES_mkdirs = \
d2a7d862bdfd22777c74f52363eee3067510827cChristian Maeder $(CLASSBINDIR)/META-INF \
81d182b21020b815887e9057959228546cf61b6bChristian Maeder $(CLASSBINDIR)/META-INF/services
81d182b21020b815887e9057959228546cf61b6bChristian Maeder
88ece6e49930670e8fd3ee79c89a2e918d2fbd0cChristian MaederFILES_copydirs = \
d2a7d862bdfd22777c74f52363eee3067510827cChristian Maeder $(CLASSBINDIR) \
d2a7d862bdfd22777c74f52363eee3067510827cChristian Maeder $(LIBDIR) \
d2a7d862bdfd22777c74f52363eee3067510827cChristian Maeder $(FILES_mkdirs)
d2a7d862bdfd22777c74f52363eee3067510827cChristian Maeder
0f0aa53f11a0d1ab08c76428b9de73db5b17c977Christian MaederFILES_c += $(FILES_$(PLATFORM))
d2a7d862bdfd22777c74f52363eee3067510827cChristian Maeder
dea4c92f0c061d589c542d0640a18dab36dfbb46Christian Maeder
dea4c92f0c061d589c542d0640a18dab36dfbb46Christian Maeder#
dea4c92f0c061d589c542d0640a18dab36dfbb46Christian Maeder# system dependent flags
d17834302eaa101395b4b806cd73670fd864445fChristian Maeder#
dea4c92f0c061d589c542d0640a18dab36dfbb46Christian Maederifeq ($(PLATFORM), windows)
dea4c92f0c061d589c542d0640a18dab36dfbb46Christian Maeder CPPFLAGS += -DUSE_PLATFORM_MIDI_OUT=TRUE \
dea4c92f0c061d589c542d0640a18dab36dfbb46Christian Maeder -DUSE_PLATFORM_MIDI_IN=TRUE \
81d182b21020b815887e9057959228546cf61b6bChristian Maeder -DUSE_PORTS=TRUE
dea4c92f0c061d589c542d0640a18dab36dfbb46Christian Maeder LDLIBS += winmm.lib
dea4c92f0c061d589c542d0640a18dab36dfbb46Christian Maeder
81d182b21020b815887e9057959228546cf61b6bChristian Maeder # Windows always provides MIDI and ports
81d182b21020b815887e9057959228546cf61b6bChristian Maeder INCLUDE_MIDI = TRUE
81946e2b3f6dde6167f48769bd02c7a634736856Christian Maeder INCLUDE_PORTS = TRUE
d2a7d862bdfd22777c74f52363eee3067510827cChristian Maeder
81d182b21020b815887e9057959228546cf61b6bChristian Maeder # DirectSound handles directaudio (both i586 and amd64)
c14773c3d0fc73a474c8d86be4b3cd12ffe4d99cChristian Maeder SUBDIRS += jsoundds
81d182b21020b815887e9057959228546cf61b6bChristian Maeder EXTRA_SOUND_JNI_LIBS += jsoundds
d2a7d862bdfd22777c74f52363eee3067510827cChristian Maeder #MXSPP_ADD = $(PLATFORM)-$(ARCH)/
81946e2b3f6dde6167f48769bd02c7a634736856Christian Maederendif # PLATFORM win32
c14773c3d0fc73a474c8d86be4b3cd12ffe4d99cChristian Maeder
ad187062b0009820118c1b773a232e29b879a2faChristian Maederifeq ($(PLATFORM), linux)
c14773c3d0fc73a474c8d86be4b3cd12ffe4d99cChristian Maeder # ALSA handles directaudio, ports, and MIDI
d2a7d862bdfd22777c74f52363eee3067510827cChristian Maeder SUBDIRS += jsoundalsa
d2a7d862bdfd22777c74f52363eee3067510827cChristian Maeder EXTRA_SOUND_JNI_LIBS += jsoundalsa
dea4c92f0c061d589c542d0640a18dab36dfbb46Christian Maeder #MXSPP_ADD = $(PLATFORM)-$(ARCH)/
endif # PLATFORM linux
ifeq ($(PLATFORM), solaris)
# build with ports and direct audio
CPPFLAGS += -DUSE_PORTS=TRUE \
-DUSE_DAUDIO=TRUE
INCLUDE_PORTS = TRUE
INCLUDE_DAUDIO = TRUE
# build with empty MIDI i/o
INCLUDE_MIDI = TRUE
endif # PLATFORM solaris
# for dynamic inclusion of extra sound libs: these
# JNI libs will be loaded from Platform.java
CPPFLAGS += -DEXTRA_SOUND_JNI_LIBS='"$(EXTRA_SOUND_JNI_LIBS)"'
# integrate MIDI i/o in jsound lib
ifeq ($(INCLUDE_MIDI),TRUE)
FILES_c += $(MIDIFILES_c)
FILES_export += $(MIDIFILES_export)
endif
# integrate port files in jsound lib
ifeq ($(INCLUDE_PORTS),TRUE)
FILES_c += $(PORTFILES_c)
FILES_export += $(PORTFILES_export)
endif
# integrate port files in jsound lib
ifeq ($(INCLUDE_DAUDIO),TRUE)
FILES_c += $(DAUDIOFILES_c)
FILES_export += $(DAUDIOFILES_export)
endif
#
# Extra cc/linker flags.
#
CPPFLAGS += \
-I$(SHARE_SRC)/native/com/sun/media/sound
#
# Add to the ambient VPATH.
#
vpath %.c $(SHARE_SRC)/native/com/sun/media/sound
vpath %.c $(PLATFORM_SRC)/native/com/sun/media/sound
vpath %.cpp $(PLATFORM_SRC)/native/com/sun/media/sound
#
# Include rules
#
include $(BUILDDIR)/common/Library.gmk
include $(BUILDDIR)/common/Subdirs.gmk
#
# Rules that copy files.
#
build: copy-files
$(SUBDIRS-loop)
copy-files: $(FILES_copy)
#$(SERVICEDIR)/$(MXSP): $(SHARE_SRC)/classes/com/sun/media/sound/services/$(MXSPP_ADD)$(MXSP)
# $(install-file)
$(SERVICEDIR)/%: $(SHARE_SRC)/classes/com/sun/media/sound/services/%
$(install-file)
$(LIBDIR)/audio/%: $(SHARE_SRC)/lib/audio/%
$(install-file)
$(LIBDIR)/%: $(SHARE_SRC)/lib/%
$(install-file)
#
# Since we build more than the javax.sound (as stated in the
# PACKAGE variable), we need to nuke the extra packages explicitly.
#
clean clobber::
$(SUBDIRS-loop)
clean clobber::
$(RM) -r $(CLASSBINDIR)/com/sun/media/sound $(LIBDIR)/audio
$(RM) $(FILES_copy)
#
# Declare extra phony targets.
#
.PHONY: copy-files