Makefile revision 1777
d14c2683625c5db500ab93fb7176a9570798ca1eMukund Sivaraman#
d14c2683625c5db500ab93fb7176a9570798ca1eMukund Sivaraman# Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved.
d14c2683625c5db500ab93fb7176a9570798ca1eMukund Sivaraman# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
6a3249533aab706c30f8cd65956f2f963e857f8fWitold Krecicki#
6a3249533aab706c30f8cd65956f2f963e857f8fWitold Krecicki# This code is free software; you can redistribute it and/or modify it
9869bfeed4fab59c5730065cd7cce1f7c60b741fMark Andrews# under the terms of the GNU General Public License version 2 only, as
9869bfeed4fab59c5730065cd7cce1f7c60b741fMark Andrews# published by the Free Software Foundation. Sun designates this
a85c6b35affa7179434c41b277109dca2cbe01ecMark Andrews# particular file as subject to the "Classpath" exception as provided
b7603c3c036dc9d39c163b79e01d41591f508352Witold Krecicki# by Sun in the LICENSE file that accompanied this code.
af3770ed93e519d07a4696739d477764c8d5c4b8Witold Krecicki#
af3770ed93e519d07a4696739d477764c8d5c4b8Witold Krecicki# This code is distributed in the hope that it will be useful, but WITHOUT
59a9cb54c112fd979b772e832b819d8efc83b85dMukund Sivaraman# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
59a9cb54c112fd979b772e832b819d8efc83b85dMukund Sivaraman# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
59a9cb54c112fd979b772e832b819d8efc83b85dMukund Sivaraman# version 2 for more details (a copy is included in the LICENSE file that
59a9cb54c112fd979b772e832b819d8efc83b85dMukund Sivaraman# accompanied this code).
f85deb5154d996978f0fc8455961698bc710ae73Witold Krecicki#
f85deb5154d996978f0fc8455961698bc710ae73Witold Krecicki# You should have received a copy of the GNU General Public License version
29ec74b60fcaef12c16ecb6bdb8c8ecb278d449fEvan Hunt# 2 along with this work; if not, write to the Free Software Foundation,
ecfe29f54b0566d9923b826b2e4a36ee83c9ea3eEvan Hunt# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
29ec74b60fcaef12c16ecb6bdb8c8ecb278d449fEvan Hunt#
8a9bac8dec81997fec38fb880dc81b41eb026c27Mark Andrews# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
8a9bac8dec81997fec38fb880dc81b41eb026c27Mark Andrews# CA 95054 USA or visit www.sun.com if you need additional information or
8a9bac8dec81997fec38fb880dc81b41eb026c27Mark Andrews# have any questions.
eb447eca8847be14e93d7b2d524154433e4ee565Evan Hunt#
eb447eca8847be14e93d7b2d524154433e4ee565Evan Hunt
eb447eca8847be14e93d7b2d524154433e4ee565Evan Hunt# WARNING: Make sure the OPENJDK plugs are up-to-date, see make/common/internal/BinaryPlugs.gmk
eb447eca8847be14e93d7b2d524154433e4ee565Evan Hunt
8c9fba44a41e3ea23e7e8405029980aba672f7ceEvan HuntBUILDDIR = ../..
8c9fba44a41e3ea23e7e8405029980aba672f7ceEvan HuntPACKAGE = javax.sound
8c9fba44a41e3ea23e7e8405029980aba672f7ceEvan HuntLIBRARY = jsound
a85c6b35affa7179434c41b277109dca2cbe01ecMark AndrewsPRODUCT = sun
38c19e577915221b1783791cbb4f4e3ceea20019Mark Andrewsinclude $(BUILDDIR)/common/Defs.gmk
38c19e577915221b1783791cbb4f4e3ceea20019Mark Andrews
8bb630c7513ecfe224622a3923f0de477c44f2a9Mark Andrews# include defines for sound
8bb630c7513ecfe224622a3923f0de477c44f2a9Mark Andrewsinclude SoundDefs.gmk
e53e202ef3b51c58fb9abe0d15e3829a970b00e7Mark Andrews
e53e202ef3b51c58fb9abe0d15e3829a970b00e7Mark Andrews# support for different mixer provider files on different platforms
598b502695802c3d4e23316b85368e54f39f5cabMark Andrews#MXSP = javax.sound.sampled.spi.MixerProvider
598b502695802c3d4e23316b85368e54f39f5cabMark Andrews# Mixer Service Provider Additional path
598b502695802c3d4e23316b85368e54f39f5cabMark Andrews#MXSPP_ADD =
a32b6291aa5f797e1336869390f99d4a655484c2Evan Hunt
a32b6291aa5f797e1336869390f99d4a655484c2Evan Hunt#
a32b6291aa5f797e1336869390f99d4a655484c2Evan Hunt# Add use of mapfile
39f11e83a34e8282c46afc6d189c209632cfeb6eCurtis Blackburn#
39f11e83a34e8282c46afc6d189c209632cfeb6eCurtis BlackburnFILES_m = mapfile-vers
a32b6291aa5f797e1336869390f99d4a655484c2Evan Huntinclude $(BUILDDIR)/common/Mapfile-vers.gmk
c55a1da4fc1188afe88264f97c1b705e188ae1feEvan Hunt
c55a1da4fc1188afe88264f97c1b705e188ae1feEvan Hunt#
c55a1da4fc1188afe88264f97c1b705e188ae1feEvan Hunt# Files
c55a1da4fc1188afe88264f97c1b705e188ae1feEvan Hunt#
c55a1da4fc1188afe88264f97c1b705e188ae1feEvan Huntinclude FILES_c.gmk
cadf8d687b9719b87c121d5cc8b028b1ddccc642Evan Hunt
cadf8d687b9719b87c121d5cc8b028b1ddccc642Evan Hunt# add java files
cadf8d687b9719b87c121d5cc8b028b1ddccc642Evan HuntAUTO_FILES_JAVA_DIRS = javax/sound com/sun/media/sound
705cea35a8f798340ac947713ab97791be521b52Mukund Sivaraman
705cea35a8f798340ac947713ab97791be521b52Mukund Sivaraman#
705cea35a8f798340ac947713ab97791be521b52Mukund Sivaraman# Files that just need cp.
705cea35a8f798340ac947713ab97791be521b52Mukund Sivaraman#
705cea35a8f798340ac947713ab97791be521b52Mukund SivaramanSERVICEDIR = $(CLASSBINDIR)/META-INF/services
72a1c3f1a7ad790ebe13ef6be85c269b2c2dcb95Mukund Sivaraman
72a1c3f1a7ad790ebe13ef6be85c269b2c2dcb95Mukund SivaramanFILES_copy = \
72a1c3f1a7ad790ebe13ef6be85c269b2c2dcb95Mukund Sivaraman $(SERVICEDIR)/javax.sound.midi.spi.MidiDeviceProvider \
72a1c3f1a7ad790ebe13ef6be85c269b2c2dcb95Mukund Sivaraman $(SERVICEDIR)/javax.sound.midi.spi.MidiFileWriter \
72a1c3f1a7ad790ebe13ef6be85c269b2c2dcb95Mukund Sivaraman $(SERVICEDIR)/javax.sound.midi.spi.MidiFileReader \
72a1c3f1a7ad790ebe13ef6be85c269b2c2dcb95Mukund Sivaraman $(SERVICEDIR)/javax.sound.midi.spi.SoundbankReader \
72a1c3f1a7ad790ebe13ef6be85c269b2c2dcb95Mukund Sivaraman $(SERVICEDIR)/javax.sound.sampled.spi.AudioFileWriter \
72a1c3f1a7ad790ebe13ef6be85c269b2c2dcb95Mukund Sivaraman $(SERVICEDIR)/javax.sound.sampled.spi.AudioFileReader \
72a1c3f1a7ad790ebe13ef6be85c269b2c2dcb95Mukund Sivaraman $(SERVICEDIR)/javax.sound.sampled.spi.FormatConversionProvider \
19365b43e922fcbaf5caff3f92b87b52cbc1b530Evan Hunt $(SERVICEDIR)/javax.sound.sampled.spi.MixerProvider \
7e6cf6fc6e700061a1cec3bcf67786706d956fc5Evan Hunt $(LIBDIR)/sound.properties
7e6cf6fc6e700061a1cec3bcf67786706d956fc5Evan Hunt
7e6cf6fc6e700061a1cec3bcf67786706d956fc5Evan HuntFILES_mkdirs = \
7e6cf6fc6e700061a1cec3bcf67786706d956fc5Evan Hunt $(CLASSBINDIR)/META-INF \
7e6cf6fc6e700061a1cec3bcf67786706d956fc5Evan Hunt $(CLASSBINDIR)/META-INF/services
247a9c2cf6637ca68b9b5d332131522bd157a3e9Mark Andrews
c7463967dbcb31c2ec0dd513986a9dec05994a0aMark AndrewsFILES_copydirs = \
d9a0f1bea7c183864c72d0ad14f6b61fbe1b5b05Mark Andrews $(CLASSBINDIR) \
d9a0f1bea7c183864c72d0ad14f6b61fbe1b5b05Mark Andrews $(LIBDIR) \
8f20f6c9d7ce5a0f0af6ee4c5361832d97b1c5d4Mark Andrews $(FILES_mkdirs)
8f20f6c9d7ce5a0f0af6ee4c5361832d97b1c5d4Mark Andrews
b947e1a521c6931f787d6d1b3604d5b138170c3dMukund SivaramanFILES_c += $(FILES_$(PLATFORM))
b947e1a521c6931f787d6d1b3604d5b138170c3dMukund Sivaraman
b947e1a521c6931f787d6d1b3604d5b138170c3dMukund Sivaraman
b947e1a521c6931f787d6d1b3604d5b138170c3dMukund Sivaraman#
b947e1a521c6931f787d6d1b3604d5b138170c3dMukund Sivaraman# system dependent flags
b947e1a521c6931f787d6d1b3604d5b138170c3dMukund Sivaraman#
9e804040a29b9c3066c8471b43835f30707039b7Evan Huntifeq ($(PLATFORM), windows)
9e804040a29b9c3066c8471b43835f30707039b7Evan Hunt CPPFLAGS += -DUSE_PLATFORM_MIDI_OUT=TRUE \
9e804040a29b9c3066c8471b43835f30707039b7Evan Hunt -DUSE_PLATFORM_MIDI_IN=TRUE \
9e804040a29b9c3066c8471b43835f30707039b7Evan Hunt -DUSE_PORTS=TRUE
8f25faf9720a0c2730c4ac80ea4c12ca1f25599fMukund Sivaraman LDLIBS += winmm.lib
8f25faf9720a0c2730c4ac80ea4c12ca1f25599fMukund Sivaraman
8f25faf9720a0c2730c4ac80ea4c12ca1f25599fMukund Sivaraman # Windows always provides MIDI and ports
8f25faf9720a0c2730c4ac80ea4c12ca1f25599fMukund Sivaraman INCLUDE_MIDI = TRUE
8f25faf9720a0c2730c4ac80ea4c12ca1f25599fMukund Sivaraman INCLUDE_PORTS = TRUE
dc877b38a0bdfd7caa0c129d6f5b5cbb1caa6848Evan Hunt
dc877b38a0bdfd7caa0c129d6f5b5cbb1caa6848Evan Hunt # DirectSound handles directaudio (both i586 and amd64)
dc877b38a0bdfd7caa0c129d6f5b5cbb1caa6848Evan Hunt SUBDIRS += jsoundds
1c02dd9dd94c95a9a59bb6c10b669fb790853b10Evan Hunt EXTRA_SOUND_JNI_LIBS += jsoundds
1c02dd9dd94c95a9a59bb6c10b669fb790853b10Evan Hunt #MXSPP_ADD = $(PLATFORM)-$(ARCH)/
1c02dd9dd94c95a9a59bb6c10b669fb790853b10Evan Huntendif # PLATFORM win32
1c02dd9dd94c95a9a59bb6c10b669fb790853b10Evan Hunt
52aa2f94981aa570a37c659b451541171f7537a4Mark Andrewsifeq ($(PLATFORM), linux)
52aa2f94981aa570a37c659b451541171f7537a4Mark Andrews # ALSA handles directaudio, ports, and MIDI
b292230ab8dd33480dabad2b3615dcce5dd70c35Mark Andrews SUBDIRS += jsoundalsa
b292230ab8dd33480dabad2b3615dcce5dd70c35Mark Andrews EXTRA_SOUND_JNI_LIBS += jsoundalsa
b292230ab8dd33480dabad2b3615dcce5dd70c35Mark Andrews #MXSPP_ADD = $(PLATFORM)-$(ARCH)/
e77e44954909dd2e0af1ce724e01f4199ae1e9c0Mark Andrewsendif # PLATFORM linux
e77e44954909dd2e0af1ce724e01f4199ae1e9c0Mark Andrews
e77e44954909dd2e0af1ce724e01f4199ae1e9c0Mark Andrewsifeq ($(PLATFORM), solaris)
ef1aaab9ed44bcc6b58d85de2673e382dc6a7c1dEvan Hunt ifneq ($(ARCH), amd64)
ef1aaab9ed44bcc6b58d85de2673e382dc6a7c1dEvan Hunt # build with ports and direct audio
ef1aaab9ed44bcc6b58d85de2673e382dc6a7c1dEvan Hunt CPPFLAGS += -DUSE_PORTS=TRUE \
ef1aaab9ed44bcc6b58d85de2673e382dc6a7c1dEvan Hunt -DUSE_DAUDIO=TRUE
c82b3781158672e8308b53a8b6289e432ceb48d0Mark Andrews
ef0e6744569fdef42fa93864443005dc0593b24cMark Andrews INCLUDE_PORTS = TRUE
ef0e6744569fdef42fa93864443005dc0593b24cMark Andrews INCLUDE_DAUDIO = TRUE
ef0e6744569fdef42fa93864443005dc0593b24cMark Andrews INCLUDE_MIDI = TRUE
017cbd4429a16d1b8eb77333c86f022dcc31045dEvan Hunt else
017cbd4429a16d1b8eb77333c86f022dcc31045dEvan Hunt # build with empty MIDI i/o
ab973ec40cc7a79bbf930085b1293824caf73e7fFrancis Dupont INCLUDE_MIDI = TRUE
ab973ec40cc7a79bbf930085b1293824caf73e7fFrancis Dupont # build with empty ports
ab973ec40cc7a79bbf930085b1293824caf73e7fFrancis Dupont INCLUDE_PORTS = TRUE
f1a261ba2d5e11a106a0a95c46b409a9daf138efMark Andrews # build with empty direct audio
f1a261ba2d5e11a106a0a95c46b409a9daf138efMark Andrews INCLUDE_DAUDIO = TRUE
bcb68be0a8f3c3eca58d6a6a869267e5c1841de2Francis Dupont endif
bcb68be0a8f3c3eca58d6a6a869267e5c1841de2Francis Dupontendif # PLATFORM solaris
bcb68be0a8f3c3eca58d6a6a869267e5c1841de2Francis Dupont
c03fe78ef59b2373233db1a7b568cc2000d6d3b4Evan Hunt# for dynamic inclusion of extra sound libs: these
c03fe78ef59b2373233db1a7b568cc2000d6d3b4Evan Hunt# JNI libs will be loaded from Platform.java
c03fe78ef59b2373233db1a7b568cc2000d6d3b4Evan HuntCPPFLAGS += -DEXTRA_SOUND_JNI_LIBS='"$(EXTRA_SOUND_JNI_LIBS)"'
fc3ed1dbda48d0e832ffc8ad70394cd475986531Evan Hunt
fc3ed1dbda48d0e832ffc8ad70394cd475986531Evan Hunt# integrate MIDI i/o in jsound lib
fc3ed1dbda48d0e832ffc8ad70394cd475986531Evan Huntifeq ($(INCLUDE_MIDI),TRUE)
c855e7170a7ddb5d4ebab69a771f35dc93e95e43Mark Andrews FILES_c += $(MIDIFILES_c)
c855e7170a7ddb5d4ebab69a771f35dc93e95e43Mark Andrews FILES_export += $(MIDIFILES_export)
c855e7170a7ddb5d4ebab69a771f35dc93e95e43Mark Andrewsendif
e840f92bfba0881039f1cdfb3349ecb03382b7beMark Andrews
e840f92bfba0881039f1cdfb3349ecb03382b7beMark Andrews# integrate port files in jsound lib
e840f92bfba0881039f1cdfb3349ecb03382b7beMark Andrewsifeq ($(INCLUDE_PORTS),TRUE)
e840f92bfba0881039f1cdfb3349ecb03382b7beMark Andrews FILES_c += $(PORTFILES_c)
bc8f82492dfdfa8b6d58bca850fa328e176cfd91Mark Andrews FILES_export += $(PORTFILES_export)
bc8f82492dfdfa8b6d58bca850fa328e176cfd91Mark Andrewsendif
bc8f82492dfdfa8b6d58bca850fa328e176cfd91Mark Andrews
ac31adc3b76a3acf61c711d1cd49480a288b1317Mukund Sivaraman# integrate port files in jsound lib
ac31adc3b76a3acf61c711d1cd49480a288b1317Mukund Sivaramanifeq ($(INCLUDE_DAUDIO),TRUE)
ac31adc3b76a3acf61c711d1cd49480a288b1317Mukund Sivaraman FILES_c += $(DAUDIOFILES_c)
2c4d5faf7fa490aa537efa36b1ba26d0cd80e442Mukund Sivaraman FILES_export += $(DAUDIOFILES_export)
2c4d5faf7fa490aa537efa36b1ba26d0cd80e442Mukund Sivaramanendif
2c4d5faf7fa490aa537efa36b1ba26d0cd80e442Mukund Sivaraman
bc8f82492dfdfa8b6d58bca850fa328e176cfd91Mark Andrews#
54fe1d05b6d78120452c71023629b35cbe55e97fMark Andrews# Extra cc/linker flags.
54fe1d05b6d78120452c71023629b35cbe55e97fMark Andrews#
d9b37259f3abcb27e6b1b0bcb312c26cfd229fdaEvan HuntCPPFLAGS += \
d9b37259f3abcb27e6b1b0bcb312c26cfd229fdaEvan Hunt -I$(SHARE_SRC)/native/com/sun/media/sound
d9b37259f3abcb27e6b1b0bcb312c26cfd229fdaEvan Hunt
f28e5058c33bfb99f8717d94c2525a976897dc91Evan Hunt#
f28e5058c33bfb99f8717d94c2525a976897dc91Evan Hunt# Add to the ambient VPATH.
f28e5058c33bfb99f8717d94c2525a976897dc91Evan Hunt#
febb020dceab01c12b406eeae6e825aca7411dd6Mark Andrewsvpath %.c $(SHARE_SRC)/native/com/sun/media/sound
febb020dceab01c12b406eeae6e825aca7411dd6Mark Andrewsvpath %.c $(PLATFORM_SRC)/native/com/sun/media/sound
febb020dceab01c12b406eeae6e825aca7411dd6Mark Andrewsvpath %.cpp $(PLATFORM_SRC)/native/com/sun/media/sound
fba894c98b8f3345a61932be6830993a059a211aMukund Sivaraman
fba894c98b8f3345a61932be6830993a059a211aMukund Sivaraman
f9f81abff0ea36f19474f3b7a11bf0f17c4f116cMukund Sivaraman#
f9f81abff0ea36f19474f3b7a11bf0f17c4f116cMukund Sivaraman# Include rules
f9f81abff0ea36f19474f3b7a11bf0f17c4f116cMukund Sivaraman#
f9f81abff0ea36f19474f3b7a11bf0f17c4f116cMukund Sivaramaninclude $(BUILDDIR)/common/Library.gmk
f9f81abff0ea36f19474f3b7a11bf0f17c4f116cMukund Sivaraman
f9f81abff0ea36f19474f3b7a11bf0f17c4f116cMukund Sivaraman#
9a7532f83618b5abbfd7db59be77e451647ecbf2Mukund Sivaraman# Rules that copy files.
9a7532f83618b5abbfd7db59be77e451647ecbf2Mukund Sivaraman#
9a7532f83618b5abbfd7db59be77e451647ecbf2Mukund Sivaraman
e89972afcb893a824db11086f4f00388057170ccEvan Huntbuild: copy-files
e89972afcb893a824db11086f4f00388057170ccEvan Hunt $(SUBDIRS-loop)
ebeb4b3e094f36121e05d7cc8226047db96ba4f6Mukund Sivaraman
ebeb4b3e094f36121e05d7cc8226047db96ba4f6Mukund Sivaramancopy-files: $(FILES_copy)
ebeb4b3e094f36121e05d7cc8226047db96ba4f6Mukund Sivaraman
642e4ac70ddc4e7037a515208b30d5cf8d8efc94Mukund Sivaraman#$(SERVICEDIR)/$(MXSP): $(SHARE_SRC)/classes/com/sun/media/sound/services/$(MXSPP_ADD)$(MXSP)
642e4ac70ddc4e7037a515208b30d5cf8d8efc94Mukund Sivaraman# $(install-file)
641b9fd39b1c3f895eca8dfe84d5d14d7742e045Evan Hunt
77b179cbbe7b820b5d838a675200a7b87eb12dacMark Andrews$(SERVICEDIR)/%: $(SHARE_SRC)/classes/com/sun/media/sound/services/%
77b179cbbe7b820b5d838a675200a7b87eb12dacMark Andrews $(install-file)
641b9fd39b1c3f895eca8dfe84d5d14d7742e045Evan Hunt
24f2cc7d06e4bb6625f90323e44b42e0cad63588Mukund Sivaraman$(LIBDIR)/audio/%: $(SHARE_SRC)/lib/audio/%
24f2cc7d06e4bb6625f90323e44b42e0cad63588Mukund Sivaraman $(install-file)
73eacba1f107468b30e8aa7cd6e213bb2d7f3142Evan Hunt
73eacba1f107468b30e8aa7cd6e213bb2d7f3142Evan Hunt$(LIBDIR)/%: $(SHARE_SRC)/lib/%
73eacba1f107468b30e8aa7cd6e213bb2d7f3142Evan Hunt $(install-file)
73eacba1f107468b30e8aa7cd6e213bb2d7f3142Evan Hunt
da4a7772ebb33f27104bca5ceb9a9bca60136387Evan Hunt#
1b05d22789fd9a17aca4f459639bc2b6848c3160Mark Andrews# Since we build more than the javax.sound (as stated in the
1b05d22789fd9a17aca4f459639bc2b6848c3160Mark Andrews# PACKAGE variable), we need to nuke the extra packages explicitly.
1b05d22789fd9a17aca4f459639bc2b6848c3160Mark Andrews#
29d52c001ff976561669375cf0c866b815a90c49Mark Andrewsclean clobber::
29d52c001ff976561669375cf0c866b815a90c49Mark Andrews $(SUBDIRS-loop)
7ae96d882326357448f8f440c52f47ac1b1fa455Evan Hunt
7ae96d882326357448f8f440c52f47ac1b1fa455Evan Huntclean clobber::
7ae96d882326357448f8f440c52f47ac1b1fa455Evan Hunt $(RM) -r $(CLASSBINDIR)/com/sun/media/sound $(LIBDIR)/audio
7ae96d882326357448f8f440c52f47ac1b1fa455Evan Hunt $(RM) $(FILES_copy)
7ae96d882326357448f8f440c52f47ac1b1fa455Evan Hunt
7ae96d882326357448f8f440c52f47ac1b1fa455Evan Hunt#
7ae96d882326357448f8f440c52f47ac1b1fa455Evan Hunt# Declare extra phony targets.
a85c6b35affa7179434c41b277109dca2cbe01ecMark Andrews#
a8da00ef95ba37b9d071c2b8db1a0c967e060106Mark Andrews.PHONY: copy-files
a8da00ef95ba37b9d071c2b8db1a0c967e060106Mark Andrews