jdk/makefiles/CopyIntoClasses.gmk
changeset 13702 efd6a05935b2
parent 13164 72c5d01a857d
child 14326 3f8b8cd207f8
child 14231 a0c23c1c010f
equal deleted inserted replaced
13694:ffe6bce5a521 13702:efd6a05935b2
   172 
   172 
   173 # Make sure the output directory is created.
   173 # Make sure the output directory is created.
   174 $(shell $(MKDIR) -p $(JDK_OUTPUTDIR)/classes/META-INF/services)
   174 $(shell $(MKDIR) -p $(JDK_OUTPUTDIR)/classes/META-INF/services)
   175 # Find all META-INF/services/* files
   175 # Find all META-INF/services/* files
   176 ALL_META-INF_DIRS_share:=$(shell $(FIND) $(JDK_TOPDIR)/src/share/classes -type d -a -name META-INF)
   176 ALL_META-INF_DIRS_share:=$(shell $(FIND) $(JDK_TOPDIR)/src/share/classes -type d -a -name META-INF)
   177 ALL_META-INF_DIRS_targetapi:=$(shell $(FIND) $(JDK_TOPDIR)/src/$(LEGACY_OPENJDK_TARGET_OS_API)/classes -type d -a -name META-INF)
   177 ALL_META-INF_DIRS_targetapi:=$(shell $(FIND) $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/classes -type d -a -name META-INF)
   178 # Platform specific overrides shared
   178 # Platform specific overrides shared
   179 ifneq ($(ALL_META-INF_DIRS_targetapi),)
   179 ifneq ($(ALL_META-INF_DIRS_targetapi),)
   180     ALL_META-INF_DIRS:=$(ALL_META-INF_DIRS_targetapi) \
   180     ALL_META-INF_DIRS:=$(ALL_META-INF_DIRS_targetapi) \
   181 	$(filter-out %$(patsubst $(JDK_TOPDIR)/src/$(LEGACY_OPENJDK_TARGET_OS_API)/classes%,%,$(ALL_META-INF_DIRS_targetapi)),\
   181 	$(filter-out %$(patsubst $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/classes%,%,$(ALL_META-INF_DIRS_targetapi)),\
   182 		$(ALL_META-INF_DIRS_share))
   182 		$(ALL_META-INF_DIRS_share))
   183 else
   183 else
   184     ALL_META-INF_DIRS:=$(ALL_META-INF_DIRS_share)
   184     ALL_META-INF_DIRS:=$(ALL_META-INF_DIRS_share)
   185 endif
   185 endif
   186 # Filter out META-INF dirs that shouldn't be included
   186 # Filter out META-INF dirs that shouldn't be included
   214 # The \n in the printf command is needed to make sed work on Solaris.
   214 # The \n in the printf command is needed to make sed work on Solaris.
   215 OUT_SERVICES_FILES:=$(addprefix $(JDK_OUTPUTDIR)/classes/META-INF/services/,\
   215 OUT_SERVICES_FILES:=$(addprefix $(JDK_OUTPUTDIR)/classes/META-INF/services/,\
   216 	$(shell $(PRINTF) "$(SRC_SERVICES_FILES)\n" | $(SED) -e 's|/[^ ]*/META-INF/services/||g'))
   216 	$(shell $(PRINTF) "$(SRC_SERVICES_FILES)\n" | $(SED) -e 's|/[^ ]*/META-INF/services/||g'))
   217 OUT_SERVICES_FILES_COLON:=$(addsuffix :,$(OUT_SERVICES_FILES))
   217 OUT_SERVICES_FILES_COLON:=$(addsuffix :,$(OUT_SERVICES_FILES))
   218 # Exception handling for print services with no META-INF directory
   218 # Exception handling for print services with no META-INF directory
   219 SRC_SERVICES_FILES_PRINT = $(wildcard $(JDK_TOPDIR)/src/$(LEGACY_OPENJDK_TARGET_OS_API)/classes/sun/print/services/*)
   219 SRC_SERVICES_FILES_PRINT = $(wildcard $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/classes/sun/print/services/*)
   220 OUT_SERVICES_FILES_PRINT = $(addprefix $(JDK_OUTPUTDIR)/classes/META-INF/services/,\
   220 OUT_SERVICES_FILES_PRINT = $(addprefix $(JDK_OUTPUTDIR)/classes/META-INF/services/,\
   221 	$(patsubst $(JDK_TOPDIR)/src/$(LEGACY_OPENJDK_TARGET_OS_API)/classes/sun/print/services/%,%,\
   221 	$(patsubst $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/classes/sun/print/services/%,%,\
   222 		$(SRC_SERVICES_FILES_PRINT)))
   222 		$(SRC_SERVICES_FILES_PRINT)))
   223 OUT_SERVICES_FILES_PRINT_COLON = $(addsuffix :,$(OUT_SERVICES_FILES_PRINT))
   223 OUT_SERVICES_FILES_PRINT_COLON = $(addsuffix :,$(OUT_SERVICES_FILES_PRINT))
   224 RULES_SERVICES_PRINT = $(join $(OUT_SERVICES_FILES_PRINT_COLON),$(SRC_SERVICES_FILES_PRINT))
   224 RULES_SERVICES_PRINT = $(join $(OUT_SERVICES_FILES_PRINT_COLON),$(SRC_SERVICES_FILES_PRINT))
   225 
   225 
   226 # Now setup the dependency rules to generate a META-INF/services/... from the correct source.
   226 # Now setup the dependency rules to generate a META-INF/services/... from the correct source.
   255             javax.sound.midi.spi.MidiFileReader \
   255             javax.sound.midi.spi.MidiFileReader \
   256             javax.sound.midi.spi.MidiFileWriter \
   256             javax.sound.midi.spi.MidiFileWriter \
   257             javax.sound.midi.spi.SoundbankReader \
   257             javax.sound.midi.spi.SoundbankReader \
   258             javax.sound.sampled.spi.AudioFileReader \
   258             javax.sound.sampled.spi.AudioFileReader \
   259             javax.sound.sampled.spi.AudioFileWriter \
   259             javax.sound.sampled.spi.AudioFileWriter \
   260             javax.sound.sampled.spi.FormatConversionProvider
   260             javax.sound.sampled.spi.FormatConversionProvider \
   261 
   261             javax.sound.sampled.spi.MixerProvider
   262 COPY_EXTRA += $(foreach F,$(notdir $(JAVAX_SOUND_SRC_FILES)),$(JDK_OUTPUTDIR)/classes/META-INF/services/${F})
   262 
   263 
   263 COPY_EXTRA += $(addprefix $(JDK_OUTPUTDIR)/classes/META-INF/services/,$(JAVAX_SOUND_SRC_FILES))
   264 ifeq ($(OPENJDK_TARGET_OS)-$(ARCH),windows-ia64)
       
   265 	JAVAX_SOUND_SRC_FILES += windows-ia64/javax.sound.sampled.spi.MixerProvider
       
   266 	COPY_EXTRA += $(JDK_OUTPUTDIR)/classes/META-INF/services/javax.sound.sampled.spi.MixerProvider
       
   267 else ifeq ($(OPENJDK_TARGET_OS),windows)
       
   268 	JAVAX_SOUND_SRC_FILES += windows-i586/javax.sound.sampled.spi.MixerProvider
       
   269 	COPY_EXTRA += $(JDK_OUTPUTDIR)/classes/META-INF/services/javax.sound.sampled.spi.MixerProvider
       
   270 else ifeq ($(OPENJDK_TARGET_OS)-$(ARCH),linux-i586)
       
   271 	JAVAX_SOUND_SRC_FILES += linux-i586/javax.sound.sampled.spi.MixerProvider
       
   272 	COPY_EXTRA += $(JDK_OUTPUTDIR)/classes/META-INF/services/javax.sound.sampled.spi.MixerProvider
       
   273 else
       
   274 	JAVAX_SOUND_SRC_FILES += javax.sound.sampled.spi.MixerProvider
       
   275 	COPY_EXTRA += $(JDK_OUTPUTDIR)/classes/META-INF/services/javax.sound.sampled.spi.MixerProvider
       
   276 endif
       
   277 
   264 
   278 JAVAX_SOUND_RULES := $(foreach F,$(JAVAX_SOUND_SRC_FILES),$(JDK_OUTPUTDIR)/classes/META-INF/services/$(notdir $F):$(JAVAX_SOUND_SRC)/$F)
   265 JAVAX_SOUND_RULES := $(foreach F,$(JAVAX_SOUND_SRC_FILES),$(JDK_OUTPUTDIR)/classes/META-INF/services/$(notdir $F):$(JAVAX_SOUND_SRC)/$F)
   279 
   266 
   280 $(foreach R,$(JAVAX_SOUND_RULES),$(eval $(call addto_meta-inf_services,$R)))
   267 $(foreach R,$(JAVAX_SOUND_RULES),$(eval $(call addto_meta-inf_services,$R)))