1 #
   2 # Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
   3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4 #
   5 # This code is free software; you can redistribute it and/or modify it
   6 # under the terms of the GNU General Public License version 2 only, as
   7 # published by the Free Software Foundation.  Oracle designates this
   8 # particular file as subject to the "Classpath" exception as provided
   9 # by Oracle in the LICENSE file that accompanied this code.
  10 #
  11 # This code is distributed in the hope that it will be useful, but WITHOUT
  12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14 # version 2 for more details (a copy is included in the LICENSE file that
  15 # accompanied this code).
  16 #
  17 # You should have received a copy of the GNU General Public License version
  18 # 2 along with this work; if not, write to the Free Software Foundation,
  19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20 #
  21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22 # or visit www.oracle.com if you need additional information or have any
  23 # questions.
  24 #
  25 
  26 default: all
  27 
  28 include $(SPEC)
  29 include MakeBase.gmk
  30 include Modules.gmk
  31 
  32 MODULES_TO_COPY := $(call FindTransitiveDepsForModule, jdk.jlink) jdk.jlink
  33 
  34 ################################################################################
  35 # Copy the modules needed to run jlink and jmod. Use bulk copy instead of
  36 # SetupCopyFiles since there are so many files.
  37 
  38 COPY_CLASSES_TARGET := $(BUILDJDK_OUTPUTDIR)/jdk/modules/java.base/_the.buildjdk-copy-marker
  39 
  40 $(COPY_CLASSES_TARGET): $(call CacheFind, $(wildcard \
  41     $(addprefix $(JDK_OUTPUTDIR)/modules/, $(MODULES_TO_COPY))))
  42         $(ECHO) $(LOG_INFO) "Copying java modules to buildjdk: $(MODULES_TO_COPY)"
  43         $(RM) -r $(BUILDJDK_OUTPUTDIR)/jdk/modules
  44         $(MKDIR) -p $(BUILDJDK_OUTPUTDIR)/jdk/modules
  45         $(foreach m, $(MODULES_TO_COPY), \
  46             $(CP) -R $(JDK_OUTPUTDIR)/modules/$m \
  47                 $(BUILDJDK_OUTPUTDIR)/jdk/modules/ $(NEWLINE))
  48         $(TOUCH) $@
  49 
  50 TARGETS += $(COPY_CLASSES_TARGET)
  51 
  52 #$(eval $(call SetupCopyFiles, COPY_JDK_MODULES, \
  53     SRC := $(BUILD_OUTPUT), \
  54     DEST := $(BUILDJDK_OUTPUTDIR), \
  55     FILES := $(call DoubleDollar, $(call DoubleDollar, $(call CacheFind, $(wildcard \
  56         $(addprefix $(JDK_OUTPUTDIR)/modules/, $(MODULES_TO_COPY)))))), \
  57 ))
  58 
  59 #TARGETS += $(COPY_JDK_MODULES)
  60 
  61 ################################################################################
  62 
  63 $(eval $(call SetupCopyFiles, COPY_SUPPORT_HEADERS, \
  64     SRC := $(BUILD_OUTPUT), \
  65     DEST := $(BUILDJDK_OUTPUTDIR), \
  66     FILES := $(call CacheFind, $(wildcard \
  67         $(addprefix $(SUPPORT_OUTPUTDIR)/headers/, $(MODULES_TO_COPY)))), \
  68 ))
  69 
  70 TARGETS += $(COPY_SUPPORT_HEADERS)
  71 
  72 ################################################################################
  73 
  74 $(eval $(call SetupCopyFiles, COPY_JDK_LIB_FILES, \
  75     SRC := $(BUILD_OUTPUT), \
  76     DEST := $(BUILDJDK_OUTPUTDIR), \
  77     FILES := $(JDK_OUTPUTDIR)/lib/tzdb.dat, \
  78 ))
  79 
  80 TARGETS += $(COPY_JDK_LIB_FILES)
  81 
  82 ################################################################################
  83 
  84 all: $(TARGETS)
  85 
  86 .PHONY: default all