1 # 2 # Copyright (c) 2014, 2018, 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 ################################################################################ 27 # This makefile is called from Main.gmk, through a macro in MakeHelpers.gmk 28 # and wraps calls to makefiles for specific modules and build phases. Having 29 # this wrapper reduces the need for boilerplate code. It also provides 30 # opportunity for automatic copying of files to an interim exploded runnable 31 # image. 32 33 default: all 34 35 include $(SPEC) 36 include MakeBase.gmk 37 38 # All makefiles should add the targets to be built to this variable. 39 TARGETS := 40 41 # Include the file being wrapped. 42 include $(MAKEFILE_PREFIX)-$(MODULE).gmk 43 44 # Setup copy rules from the modules directories to the jdk image directory. 45 ifeq ($(OPENJDK_TARGET_OS), windows) 46 TO_BIN_FILTER := %$(SHARED_LIBRARY_SUFFIX) %.diz %.pdb %.map 47 48 $(eval $(call SetupCopyFiles, COPY_LIBS_TO_BIN, \ 49 SRC := $(SUPPORT_OUTPUTDIR)/modules_libs/$(MODULE), \ 50 DEST := $(JDK_OUTPUTDIR)/bin, \ 51 FILES := $(filter $(TO_BIN_FILTER), \ 52 $(filter $(SUPPORT_OUTPUTDIR)/modules_libs/$(MODULE)/%, \ 53 $(TARGETS))), \ 54 )) 55 56 $(eval $(call SetupCopyFiles, COPY_LIBS_TO_LIB, \ 57 SRC := $(SUPPORT_OUTPUTDIR)/modules_libs/$(MODULE), \ 58 DEST := $(JDK_OUTPUTDIR)/lib, \ 59 FILES := $(filter-out $(TO_BIN_FILTER), \ 60 $(filter $(SUPPORT_OUTPUTDIR)/modules_libs/$(MODULE)/%, \ 61 $(TARGETS))), \ 62 )) 63 64 else 65 $(eval $(call SetupCopyFiles, COPY_LIBS_TO_LIB, \ 66 SRC := $(SUPPORT_OUTPUTDIR)/modules_libs/$(MODULE), \ 67 DEST := $(JDK_OUTPUTDIR)/lib, \ 68 FILES := $(filter %$(SHARED_LIBRARY_SUFFIX), \ 69 $(filter $(SUPPORT_OUTPUTDIR)/modules_libs/$(MODULE)/%, \ 70 $(TARGETS))), \ 71 )) 72 $(eval $(call SetupCopyFiles, LINK_LIBS_TO_LIB, \ 73 SRC := $(SUPPORT_OUTPUTDIR)/modules_libs/$(MODULE), \ 74 DEST := $(JDK_OUTPUTDIR)/lib, \ 75 FILES := $(filter-out %$(SHARED_LIBRARY_SUFFIX), \ 76 $(filter $(SUPPORT_OUTPUTDIR)/modules_libs/$(MODULE)/%, \ 77 $(TARGETS))), \ 78 MACRO := link-file-relative, \ 79 LOG_ACTION := Creating symlink, \ 80 )) 81 endif 82 83 $(eval $(call SetupCopyFiles, COPY_INCLUDE, \ 84 SRC := $(SUPPORT_OUTPUTDIR)/modules_include/$(MODULE), \ 85 DEST := $(JDK_OUTPUTDIR)/include, \ 86 FILES := $(filter $(SUPPORT_OUTPUTDIR)/modules_include/$(MODULE)/%, \ 87 $(TARGETS)), \ 88 )) 89 90 $(eval $(call SetupCopyFiles, COPY_CMDS, \ 91 SRC := $(SUPPORT_OUTPUTDIR)/modules_cmds/$(MODULE), \ 92 DEST := $(JDK_OUTPUTDIR)/bin, \ 93 FILES := $(filter $(SUPPORT_OUTPUTDIR)/modules_cmds/$(MODULE)/%, $(TARGETS)), \ 94 )) 95 96 $(eval $(call SetupCopyFiles, COPY_MAN, \ 97 SRC := $(SUPPORT_OUTPUTDIR)/modules_man/$(MODULE), \ 98 DEST := $(JDK_OUTPUTDIR)/man, \ 99 FILES := $(filter $(SUPPORT_OUTPUTDIR)/modules_man/$(MODULE)/%, $(TARGETS)), \ 100 )) 101 102 $(eval $(call SetupCopyFiles, COPY_CONF, \ 103 SRC := $(SUPPORT_OUTPUTDIR)/modules_conf/$(MODULE), \ 104 DEST := $(JDK_OUTPUTDIR)/conf, \ 105 FILES := $(filter $(SUPPORT_OUTPUTDIR)/modules_conf/$(MODULE)/%, \ 106 $(TARGETS)), \ 107 )) 108 109 ifeq ($(GENERATE_COMPILE_COMMANDS_ONLY), true) 110 all: $(filter $(MAKESUPPORT_OUTPUTDIR)/compile-commands/%, $(TARGETS)) 111 else 112 all: $(TARGETS) $(COPY_LIBS_TO_BIN) $(COPY_LIBS_TO_LIB) \ 113 $(COPY_INCLUDE) $(COPY_CMDS) $(COPY_MAN) $(COPY_CONF) $(LINK_LIBS_TO_LIB) 114 endif