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