230 # Module list macros 231 232 # Use append so that the custom extension may add to these variables 233 234 GENERATED_SRC_DIRS += \ 235 $(SUPPORT_OUTPUTDIR)/gensrc \ 236 # 237 238 TOP_SRC_DIRS += \ 239 $(TOPDIR)/src \ 240 # 241 242 SRC_SUBDIRS += $(OPENJDK_TARGET_OS)/classes 243 ifneq ($(OPENJDK_TARGET_OS), $(OPENJDK_TARGET_OS_TYPE)) 244 SRC_SUBDIRS += $(OPENJDK_TARGET_OS_TYPE)/classes 245 endif 246 SRC_SUBDIRS += share/classes 247 248 SPEC_SUBDIRS += share/specs 249 250 # Find all module-info.java files for the current build target platform and 251 # configuration. 252 # Param 1 - Module to find for, set to * for finding all 253 FindAllModuleInfos = \ 254 $(sort $(wildcard \ 255 $(foreach sub, $(SRC_SUBDIRS), \ 256 $(patsubst %,%/$(strip $1)/$(sub)/module-info.java, $(TOP_SRC_DIRS))) \ 257 $(patsubst %,%/$(strip $1)/module-info.java, $(IMPORT_MODULES_SRC)))) 258 259 # Find module-info.java files in the specific source dir 260 # Param 1 - Src dir to find module-info.java files in 261 FindModuleInfosForSrcDir = \ 262 $(wildcard \ 263 $(foreach sub, $(SRC_SUBDIRS), \ 264 $(patsubst %,%/*/$(sub)/module-info.java, $(strip $1)) \ 265 ) \ 266 $(patsubst %,%/*/module-info.java, $(strip $1)) \ 267 ) 268 269 # Extract the module names from the paths of module-info.java files. The 287 $(sort $(filter-out $(MODULES_FILTER), \ 288 $(call GetModuleNameFromModuleInfo, $(call FindModuleInfosForSrcDir, $1)) \ 289 )) 290 291 FindImportedModules = \ 292 $(filter-out $(MODULES_FILTER), \ 293 $(if $(IMPORT_MODULES_CLASSES), $(notdir $(wildcard $(IMPORT_MODULES_CLASSES)/*)))) 294 295 # Find all source dirs for a particular module 296 # $1 - Module to find source dirs for 297 FindModuleSrcDirs = \ 298 $(strip $(wildcard \ 299 $(addsuffix /$(strip $1), $(GENERATED_SRC_DIRS) $(IMPORT_MODULES_SRC)) \ 300 $(foreach sub, $(SRC_SUBDIRS), $(addsuffix /$(strip $1)/$(sub), $(TOP_SRC_DIRS))))) 301 302 # Find all specs dirs for a particular module 303 # $1 - Module to find specs dirs for 304 FindModuleSpecsDirs = \ 305 $(strip $(wildcard \ 306 $(foreach sub, $(SPEC_SUBDIRS), $(addsuffix /$(strip $1)/$(sub), $(TOP_SRC_DIRS))))) 307 308 # Construct the complete module source path 309 GetModuleSrcPath = \ 310 $(call PathList, \ 311 $(addsuffix /*, $(GENERATED_SRC_DIRS) $(IMPORT_MODULES_SRC)) \ 312 $(foreach sub, $(SRC_SUBDIRS), $(addsuffix /*/$(sub), $(TOP_SRC_DIRS)))) 313 314 ################################################################################ 315 # Extract module dependencies from module-info.java files, both normal 316 # dependencies ("requires"), and indirect exports ("requires transitive"). 317 318 MODULE_DEPS_MAKEFILE := $(MAKESUPPORT_OUTPUTDIR)/module-deps.gmk 319 320 MODULE_INFOS := $(call FindAllModuleInfos, *) 321 322 $(MODULE_DEPS_MAKEFILE): $(MODULE_INFOS) \ 323 $(call DependOnVariable, MODULE_INFOS, $(MAKESUPPORT_OUTPUTDIR)/MODULE_INFOS.vardeps) 324 $(call MakeTargetDir) 325 $(RM) $@ 326 $(foreach m, $(MODULE_INFOS), \ | 230 # Module list macros 231 232 # Use append so that the custom extension may add to these variables 233 234 GENERATED_SRC_DIRS += \ 235 $(SUPPORT_OUTPUTDIR)/gensrc \ 236 # 237 238 TOP_SRC_DIRS += \ 239 $(TOPDIR)/src \ 240 # 241 242 SRC_SUBDIRS += $(OPENJDK_TARGET_OS)/classes 243 ifneq ($(OPENJDK_TARGET_OS), $(OPENJDK_TARGET_OS_TYPE)) 244 SRC_SUBDIRS += $(OPENJDK_TARGET_OS_TYPE)/classes 245 endif 246 SRC_SUBDIRS += share/classes 247 248 SPEC_SUBDIRS += share/specs 249 250 MAN_SUBDIRS += share/man 251 252 # Find all module-info.java files for the current build target platform and 253 # configuration. 254 # Param 1 - Module to find for, set to * for finding all 255 FindAllModuleInfos = \ 256 $(sort $(wildcard \ 257 $(foreach sub, $(SRC_SUBDIRS), \ 258 $(patsubst %,%/$(strip $1)/$(sub)/module-info.java, $(TOP_SRC_DIRS))) \ 259 $(patsubst %,%/$(strip $1)/module-info.java, $(IMPORT_MODULES_SRC)))) 260 261 # Find module-info.java files in the specific source dir 262 # Param 1 - Src dir to find module-info.java files in 263 FindModuleInfosForSrcDir = \ 264 $(wildcard \ 265 $(foreach sub, $(SRC_SUBDIRS), \ 266 $(patsubst %,%/*/$(sub)/module-info.java, $(strip $1)) \ 267 ) \ 268 $(patsubst %,%/*/module-info.java, $(strip $1)) \ 269 ) 270 271 # Extract the module names from the paths of module-info.java files. The 289 $(sort $(filter-out $(MODULES_FILTER), \ 290 $(call GetModuleNameFromModuleInfo, $(call FindModuleInfosForSrcDir, $1)) \ 291 )) 292 293 FindImportedModules = \ 294 $(filter-out $(MODULES_FILTER), \ 295 $(if $(IMPORT_MODULES_CLASSES), $(notdir $(wildcard $(IMPORT_MODULES_CLASSES)/*)))) 296 297 # Find all source dirs for a particular module 298 # $1 - Module to find source dirs for 299 FindModuleSrcDirs = \ 300 $(strip $(wildcard \ 301 $(addsuffix /$(strip $1), $(GENERATED_SRC_DIRS) $(IMPORT_MODULES_SRC)) \ 302 $(foreach sub, $(SRC_SUBDIRS), $(addsuffix /$(strip $1)/$(sub), $(TOP_SRC_DIRS))))) 303 304 # Find all specs dirs for a particular module 305 # $1 - Module to find specs dirs for 306 FindModuleSpecsDirs = \ 307 $(strip $(wildcard \ 308 $(foreach sub, $(SPEC_SUBDIRS), $(addsuffix /$(strip $1)/$(sub), $(TOP_SRC_DIRS))))) 309 310 # Find all man dirs for a particular module 311 # $1 - Module to find man dirs for 312 FindModuleManDirs = \ 313 $(strip $(wildcard \ 314 $(foreach sub, $(MAN_SUBDIRS), $(addsuffix /$(strip $1)/$(sub), $(TOP_SRC_DIRS))))) 315 316 # Construct the complete module source path 317 GetModuleSrcPath = \ 318 $(call PathList, \ 319 $(addsuffix /*, $(GENERATED_SRC_DIRS) $(IMPORT_MODULES_SRC)) \ 320 $(foreach sub, $(SRC_SUBDIRS), $(addsuffix /*/$(sub), $(TOP_SRC_DIRS)))) 321 322 ################################################################################ 323 # Extract module dependencies from module-info.java files, both normal 324 # dependencies ("requires"), and indirect exports ("requires transitive"). 325 326 MODULE_DEPS_MAKEFILE := $(MAKESUPPORT_OUTPUTDIR)/module-deps.gmk 327 328 MODULE_INFOS := $(call FindAllModuleInfos, *) 329 330 $(MODULE_DEPS_MAKEFILE): $(MODULE_INFOS) \ 331 $(call DependOnVariable, MODULE_INFOS, $(MAKESUPPORT_OUTPUTDIR)/MODULE_INFOS.vardeps) 332 $(call MakeTargetDir) 333 $(RM) $@ 334 $(foreach m, $(MODULE_INFOS), \ |