ModuleWrapper.gmk revision 2426:ef056360ddf3
1# 2# Copyright (c) 2014, 2016, 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 33default: all 34 35include $(SPEC) 36include MakeBase.gmk 37 38# All makefiles should add the targets to be built to this variable. 39TARGETS := 40 41# Include the file being wrapped. 42include $(MAKEFILE_PREFIX)-$(MODULE).gmk 43 44# Setup copy rules from the modules directories to the jdk image directory. 45ifeq ($(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 64else 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 )) 81endif 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_CONF, \ 97 SRC := $(SUPPORT_OUTPUTDIR)/modules_conf/$(MODULE), \ 98 DEST := $(JDK_OUTPUTDIR)/conf, \ 99 FILES := $(filter $(SUPPORT_OUTPUTDIR)/modules_conf/$(MODULE)/%, \ 100 $(TARGETS)), \ 101)) 102 103all: $(TARGETS) $(COPY_LIBS_TO_BIN) $(COPY_LIBS_TO_LIB) \ 104 $(COPY_INCLUDE) $(COPY_CMDS) $(COPY_CONF) $(LINK_LIBS_TO_LIB) 105