Makefile revision 1988
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved.
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# This code is free software; you can redistribute it and/or modify it
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# under the terms of the GNU General Public License version 2 only, as
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# published by the Free Software Foundation. Sun designates this
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# particular file as subject to the "Classpath" exception as provided
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# by Sun in the LICENSE file that accompanied this code.
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# This code is distributed in the hope that it will be useful, but WITHOUT
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# version 2 for more details (a copy is included in the LICENSE file that
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# accompanied this code).
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# You should have received a copy of the GNU General Public License version
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# 2 along with this work; if not, write to the Free Software Foundation,
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# CA 95054 USA or visit www.sun.com if you need additional information or
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# have any questions.
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# WARNING: Make sure the OPENJDK plugs are up-to-date, see make/common/internal/BinaryPlugs.gmk
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox UserBUILDDIR = ../..
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox UserPACKAGE = javax.sound
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox UserLIBRARY = jsound
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox UserPRODUCT = sun
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Userinclude $(BUILDDIR)/common/Defs.gmk
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# include defines for sound
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Userinclude SoundDefs.gmk
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# support for different mixer provider files on different platforms
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#MXSP = javax.sound.sampled.spi.MixerProvider
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# Mixer Service Provider Additional path
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#MXSPP_ADD =
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# Add use of mapfile
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox UserFILES_m = mapfile-vers
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Userinclude $(BUILDDIR)/common/Mapfile-vers.gmk
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# Files
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Userinclude FILES_c.gmk
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# add java files
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox UserAUTO_FILES_JAVA_DIRS = javax/sound com/sun/media/sound
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# Files that just need cp.
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox UserSERVICEDIR = $(CLASSBINDIR)/META-INF/services
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox UserFILES_copy = \
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User $(SERVICEDIR)/javax.sound.midi.spi.MidiDeviceProvider \
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User $(SERVICEDIR)/javax.sound.midi.spi.MidiFileWriter \
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User $(SERVICEDIR)/javax.sound.midi.spi.MidiFileReader \
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User $(SERVICEDIR)/javax.sound.midi.spi.SoundbankReader \
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User $(SERVICEDIR)/javax.sound.sampled.spi.AudioFileWriter \
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User $(SERVICEDIR)/javax.sound.sampled.spi.AudioFileReader \
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User $(SERVICEDIR)/javax.sound.sampled.spi.FormatConversionProvider \
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User $(SERVICEDIR)/javax.sound.sampled.spi.MixerProvider \
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User $(LIBDIR)/sound.properties
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox UserFILES_mkdirs = \
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User $(CLASSBINDIR)/META-INF \
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User $(CLASSBINDIR)/META-INF/services
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox UserFILES_copydirs = \
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User $(CLASSBINDIR) \
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User $(LIBDIR) \
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User $(FILES_mkdirs)
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox UserFILES_c += $(FILES_$(PLATFORM))
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# system dependent flags
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Userifeq ($(PLATFORM), windows)
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User CPPFLAGS += -DUSE_PLATFORM_MIDI_OUT=TRUE \
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User -DUSE_PLATFORM_MIDI_IN=TRUE \
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User -DUSE_PORTS=TRUE
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User LDLIBS += winmm.lib
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User # Windows always provides MIDI and ports
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User INCLUDE_MIDI = TRUE
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User INCLUDE_PORTS = TRUE
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User # DirectSound handles directaudio (both i586 and amd64)
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User SUBDIRS += jsoundds
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User EXTRA_SOUND_JNI_LIBS += jsoundds
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox User #MXSPP_ADD = $(PLATFORM)-$(ARCH)/
ad8f23aed6c75f94f238c1f23f4e17515d28eb55Tinderbox Userendif # PLATFORM win32
ad8f23aed6c75f94f238c1f23f4e17515d28eb55Tinderbox User
9a5087bf58f651bfff841192aba5afd06760d6ceTinderbox Userifeq ($(PLATFORM), linux)
ad8f23aed6c75f94f238c1f23f4e17515d28eb55Tinderbox User # ALSA handles directaudio, ports, and MIDI
ad8f23aed6c75f94f238c1f23f4e17515d28eb55Tinderbox User SUBDIRS += jsoundalsa
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User EXTRA_SOUND_JNI_LIBS += jsoundalsa
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User #MXSPP_ADD = $(PLATFORM)-$(ARCH)/
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Userendif # PLATFORM linux
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Userifeq ($(PLATFORM), solaris)
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User # build with ports and direct audio
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User CPPFLAGS += -DUSE_PORTS=TRUE \
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User -DUSE_DAUDIO=TRUE
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User INCLUDE_PORTS = TRUE
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User INCLUDE_DAUDIO = TRUE
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User # build with empty MIDI i/o
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User INCLUDE_MIDI = TRUE
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Userendif # PLATFORM solaris
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# for dynamic inclusion of extra sound libs: these
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# JNI libs will be loaded from Platform.java
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox UserCPPFLAGS += -DEXTRA_SOUND_JNI_LIBS="\"$(EXTRA_SOUND_JNI_LIBS)\""
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# integrate MIDI i/o in jsound lib
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Userifeq ($(INCLUDE_MIDI),TRUE)
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User FILES_c += $(MIDIFILES_c)
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User FILES_export += $(MIDIFILES_export)
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Userendif
10b865e9187fc77cae02f106ddcc9e03eecdfe06Tinderbox User
10b865e9187fc77cae02f106ddcc9e03eecdfe06Tinderbox User# integrate port files in jsound lib
10b865e9187fc77cae02f106ddcc9e03eecdfe06Tinderbox Userifeq ($(INCLUDE_PORTS),TRUE)
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User FILES_c += $(PORTFILES_c)
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User FILES_export += $(PORTFILES_export)
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Userendif
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# integrate port files in jsound lib
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Userifeq ($(INCLUDE_DAUDIO),TRUE)
10b865e9187fc77cae02f106ddcc9e03eecdfe06Tinderbox User FILES_c += $(DAUDIOFILES_c)
10b865e9187fc77cae02f106ddcc9e03eecdfe06Tinderbox User FILES_export += $(DAUDIOFILES_export)
10b865e9187fc77cae02f106ddcc9e03eecdfe06Tinderbox Userendif
10b865e9187fc77cae02f106ddcc9e03eecdfe06Tinderbox User
10b865e9187fc77cae02f106ddcc9e03eecdfe06Tinderbox User#
10b865e9187fc77cae02f106ddcc9e03eecdfe06Tinderbox User# Extra cc/linker flags.
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox UserCPPFLAGS += \
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User -I$(SHARE_SRC)/native/com/sun/media/sound
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# Add to the ambient VPATH.
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Uservpath %.c $(SHARE_SRC)/native/com/sun/media/sound
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Uservpath %.c $(PLATFORM_SRC)/native/com/sun/media/sound
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Uservpath %.cpp $(PLATFORM_SRC)/native/com/sun/media/sound
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# Include rules
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Userinclude $(BUILDDIR)/common/Library.gmk
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# Rules that copy files.
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Userbuild: copy-files
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User $(SUBDIRS-loop)
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Usercopy-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