1 #
   2 # Copyright (c) 2014, 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   $(eval $(call SetupCopyFiles,COPY_LIBS_TO_LIB, \
  56       SRC := $(SUPPORT_OUTPUTDIR)/modules_libs/$(MODULE), \
  57       DEST := $(JDK_OUTPUTDIR)/lib, \
  58       FILES := $(filter-out $(TO_BIN_FILTER), \
  59           $(filter $(SUPPORT_OUTPUTDIR)/modules_libs/$(MODULE)/%, \
  60           $(TARGETS)))))
  61 
  62 else
  63   $(eval $(call SetupCopyFiles,COPY_LIBS_TO_LIB, \
  64       SRC := $(SUPPORT_OUTPUTDIR)/modules_libs/$(MODULE), \
  65       DEST := $(JDK_OUTPUTDIR)/lib, \
  66       FILES := $(filter $(SUPPORT_OUTPUTDIR)/modules_libs/$(MODULE)/%, \
  67           $(TARGETS))))
  68 endif
  69 
  70 $(eval $(call SetupCopyFiles,COPY_INCLUDE, \
  71     SRC := $(SUPPORT_OUTPUTDIR)/modules_include/$(MODULE), \
  72     DEST := $(JDK_OUTPUTDIR)/include, \
  73     FILES := $(filter $(SUPPORT_OUTPUTDIR)/modules_include/$(MODULE)/%, \
  74           $(TARGETS))))
  75 
  76 $(eval $(call SetupCopyFiles,COPY_CMDS, \
  77     SRC := $(SUPPORT_OUTPUTDIR)/modules_cmds/$(MODULE), \
  78     DEST := $(JDK_OUTPUTDIR)/bin, \
  79     FILES := $(filter $(SUPPORT_OUTPUTDIR)/modules_cmds/$(MODULE)/%, $(TARGETS))))
  80 
  81 $(eval $(call SetupCopyFiles,COPY_CONF, \
  82     SRC := $(SUPPORT_OUTPUTDIR)/modules_conf/$(MODULE), \
  83     DEST := $(JDK_OUTPUTDIR)/conf, \
  84     FILES := $(filter $(SUPPORT_OUTPUTDIR)/modules_conf/$(MODULE)/%, \
  85           $(TARGETS))))
  86 
  87 all: $(TARGETS) $(COPY_LIBS_TO_BIN) $(COPY_LIBS_TO_LIB) \
  88     $(COPY_INCLUDE) $(COPY_CMDS) $(COPY_CONF)