make/copy/CopyCommon.gmk
author herrick
Thu, 28 Mar 2019 13:49:38 -0400
branchJDK-8200758-branch
changeset 57292 7a683c461b80
parent 53828 9c44ab24b4a4
child 54380 e297c7bb6469
permissions -rw-r--r--
Merge
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
25859
3317bb8137f4 8054834: Modular Source Code
chegar
parents:
diff changeset
     1
#
52804
28094715ae71 8214718: Update missing copyright year in build system
ihse
parents: 49540
diff changeset
     2
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
25859
3317bb8137f4 8054834: Modular Source Code
chegar
parents:
diff changeset
     3
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
3317bb8137f4 8054834: Modular Source Code
chegar
parents:
diff changeset
     4
#
3317bb8137f4 8054834: Modular Source Code
chegar
parents:
diff changeset
     5
# This code is free software; you can redistribute it and/or modify it
3317bb8137f4 8054834: Modular Source Code
chegar
parents:
diff changeset
     6
# under the terms of the GNU General Public License version 2 only, as
3317bb8137f4 8054834: Modular Source Code
chegar
parents:
diff changeset
     7
# published by the Free Software Foundation.  Oracle designates this
3317bb8137f4 8054834: Modular Source Code
chegar
parents:
diff changeset
     8
# particular file as subject to the "Classpath" exception as provided
3317bb8137f4 8054834: Modular Source Code
chegar
parents:
diff changeset
     9
# by Oracle in the LICENSE file that accompanied this code.
3317bb8137f4 8054834: Modular Source Code
chegar
parents:
diff changeset
    10
#
3317bb8137f4 8054834: Modular Source Code
chegar
parents:
diff changeset
    11
# This code is distributed in the hope that it will be useful, but WITHOUT
3317bb8137f4 8054834: Modular Source Code
chegar
parents:
diff changeset
    12
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
3317bb8137f4 8054834: Modular Source Code
chegar
parents:
diff changeset
    13
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
3317bb8137f4 8054834: Modular Source Code
chegar
parents:
diff changeset
    14
# version 2 for more details (a copy is included in the LICENSE file that
3317bb8137f4 8054834: Modular Source Code
chegar
parents:
diff changeset
    15
# accompanied this code).
3317bb8137f4 8054834: Modular Source Code
chegar
parents:
diff changeset
    16
#
3317bb8137f4 8054834: Modular Source Code
chegar
parents:
diff changeset
    17
# You should have received a copy of the GNU General Public License version
3317bb8137f4 8054834: Modular Source Code
chegar
parents:
diff changeset
    18
# 2 along with this work; if not, write to the Free Software Foundation,
3317bb8137f4 8054834: Modular Source Code
chegar
parents:
diff changeset
    19
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
3317bb8137f4 8054834: Modular Source Code
chegar
parents:
diff changeset
    20
#
3317bb8137f4 8054834: Modular Source Code
chegar
parents:
diff changeset
    21
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
3317bb8137f4 8054834: Modular Source Code
chegar
parents:
diff changeset
    22
# or visit www.oracle.com if you need additional information or have any
3317bb8137f4 8054834: Modular Source Code
chegar
parents:
diff changeset
    23
# questions.
3317bb8137f4 8054834: Modular Source Code
chegar
parents:
diff changeset
    24
#
3317bb8137f4 8054834: Modular Source Code
chegar
parents:
diff changeset
    25
27565
729f9700483a 8049367: Modular Run-Time Images
chegar
parents: 26191
diff changeset
    26
LIB_DST_DIR := $(SUPPORT_OUTPUTDIR)/modules_libs/$(MODULE)
729f9700483a 8049367: Modular Run-Time Images
chegar
parents: 26191
diff changeset
    27
CONF_DST_DIR := $(SUPPORT_OUTPUTDIR)/modules_conf/$(MODULE)
42670
d833113eb7d7 8169925: Organize licenses by module in source, JMOD file, and run-time image
mchung
parents: 27565
diff changeset
    28
LEGAL_DST_DIR := $(SUPPORT_OUTPUTDIR)/modules_legal/$(MODULE)
49537
149dc554808c 8199539: Provide a standard way for the build to filter un-needed legal .md files
erikj
parents: 48355
diff changeset
    29
COMMON_LEGAL_DST_DIR := $(SUPPORT_OUTPUTDIR)/modules_legal/common
25859
3317bb8137f4 8054834: Modular Source Code
chegar
parents:
diff changeset
    30
48300
8a5edac3d5a2 8190484: Move jvm.h, jmm.h et al to hotspot/*/include
ihse
parents: 47216
diff changeset
    31
################################################################################
8a5edac3d5a2 8190484: Move jvm.h, jmm.h et al to hotspot/*/include
ihse
parents: 47216
diff changeset
    32
#
8a5edac3d5a2 8190484: Move jvm.h, jmm.h et al to hotspot/*/include
ihse
parents: 47216
diff changeset
    33
# Copy exported include headers files to output directory, if present.
8a5edac3d5a2 8190484: Move jvm.h, jmm.h et al to hotspot/*/include
ihse
parents: 47216
diff changeset
    34
#
8a5edac3d5a2 8190484: Move jvm.h, jmm.h et al to hotspot/*/include
ihse
parents: 47216
diff changeset
    35
8a5edac3d5a2 8190484: Move jvm.h, jmm.h et al to hotspot/*/include
ihse
parents: 47216
diff changeset
    36
INCLUDE_TARGET_DIR := $(SUPPORT_OUTPUTDIR)/modules_include/$(MODULE)
48305
522601e6dd0d 8193045: JDK-8190484 breaks build on Windows
ihse
parents: 48300
diff changeset
    37
INCLUDE_SOURCE_DIR := $(TOPDIR)/src/$(MODULE)/share/native/include
25859
3317bb8137f4 8054834: Modular Source Code
chegar
parents:
diff changeset
    38
48305
522601e6dd0d 8193045: JDK-8190484 breaks build on Windows
ihse
parents: 48300
diff changeset
    39
ifneq ($(wildcard $(INCLUDE_SOURCE_DIR)/*), )
522601e6dd0d 8193045: JDK-8190484 breaks build on Windows
ihse
parents: 48300
diff changeset
    40
  $(eval $(call SetupCopyFiles, COPY_EXPORTED_INCLUDE, \
522601e6dd0d 8193045: JDK-8190484 breaks build on Windows
ihse
parents: 48300
diff changeset
    41
      SRC := $(INCLUDE_SOURCE_DIR), \
522601e6dd0d 8193045: JDK-8190484 breaks build on Windows
ihse
parents: 48300
diff changeset
    42
      DEST := $(INCLUDE_TARGET_DIR), \
48355
4944950606ef 8191913: Bump classfile version number to 55
psandoz
parents: 48305
diff changeset
    43
      FILES := $(filter %.h, $(call CacheFind, $(INCLUDE_SOURCE_DIR))), \
48305
522601e6dd0d 8193045: JDK-8190484 breaks build on Windows
ihse
parents: 48300
diff changeset
    44
  ))
48300
8a5edac3d5a2 8190484: Move jvm.h, jmm.h et al to hotspot/*/include
ihse
parents: 47216
diff changeset
    45
48305
522601e6dd0d 8193045: JDK-8190484 breaks build on Windows
ihse
parents: 48300
diff changeset
    46
  TARGETS += $(COPY_EXPORTED_INCLUDE)
522601e6dd0d 8193045: JDK-8190484 breaks build on Windows
ihse
parents: 48300
diff changeset
    47
endif
48300
8a5edac3d5a2 8190484: Move jvm.h, jmm.h et al to hotspot/*/include
ihse
parents: 47216
diff changeset
    48
8a5edac3d5a2 8190484: Move jvm.h, jmm.h et al to hotspot/*/include
ihse
parents: 47216
diff changeset
    49
# Use the most specific of OS and OS_TYPE.
48305
522601e6dd0d 8193045: JDK-8190484 breaks build on Windows
ihse
parents: 48300
diff changeset
    50
INCLUDE_SOURCE_OS_DIR := $(TOPDIR)/src/$(MODULE)/$(OPENJDK_TARGET_OS)/native/include
522601e6dd0d 8193045: JDK-8190484 breaks build on Windows
ihse
parents: 48300
diff changeset
    51
ifeq ($(wildcard $(INCLUDE_SOURCE_OS_DIR)/*), )
522601e6dd0d 8193045: JDK-8190484 breaks build on Windows
ihse
parents: 48300
diff changeset
    52
  INCLUDE_SOURCE_OS_DIR := $(TOPDIR)/src/$(MODULE)/$(OPENJDK_TARGET_OS_TYPE)/native/include
25859
3317bb8137f4 8054834: Modular Source Code
chegar
parents:
diff changeset
    53
endif
48300
8a5edac3d5a2 8190484: Move jvm.h, jmm.h et al to hotspot/*/include
ihse
parents: 47216
diff changeset
    54
48305
522601e6dd0d 8193045: JDK-8190484 breaks build on Windows
ihse
parents: 48300
diff changeset
    55
ifneq ($(wildcard $(INCLUDE_SOURCE_OS_DIR)/*), )
522601e6dd0d 8193045: JDK-8190484 breaks build on Windows
ihse
parents: 48300
diff changeset
    56
  $(eval $(call SetupCopyFiles, COPY_EXPORTED_INCLUDE_OS, \
522601e6dd0d 8193045: JDK-8190484 breaks build on Windows
ihse
parents: 48300
diff changeset
    57
      SRC := $(INCLUDE_SOURCE_OS_DIR), \
48355
4944950606ef 8191913: Bump classfile version number to 55
psandoz
parents: 48305
diff changeset
    58
      DEST := $(INCLUDE_TARGET_DIR)/$(OPENJDK_TARGET_OS_INCLUDE_SUBDIR), \
4944950606ef 8191913: Bump classfile version number to 55
psandoz
parents: 48305
diff changeset
    59
      FILES := $(filter %.h, $(call CacheFind, $(INCLUDE_SOURCE_OS_DIR))), \
48305
522601e6dd0d 8193045: JDK-8190484 breaks build on Windows
ihse
parents: 48300
diff changeset
    60
  ))
48300
8a5edac3d5a2 8190484: Move jvm.h, jmm.h et al to hotspot/*/include
ihse
parents: 47216
diff changeset
    61
48305
522601e6dd0d 8193045: JDK-8190484 breaks build on Windows
ihse
parents: 48300
diff changeset
    62
  TARGETS += $(COPY_EXPORTED_INCLUDE_OS)
522601e6dd0d 8193045: JDK-8190484 breaks build on Windows
ihse
parents: 48300
diff changeset
    63
endif
49537
149dc554808c 8199539: Provide a standard way for the build to filter un-needed legal .md files
erikj
parents: 48355
diff changeset
    64
149dc554808c 8199539: Provide a standard way for the build to filter un-needed legal .md files
erikj
parents: 48355
diff changeset
    65
################################################################################
149dc554808c 8199539: Provide a standard way for the build to filter un-needed legal .md files
erikj
parents: 48355
diff changeset
    66
# Setup make rules for copying legal files. This is only needed if the files
149dc554808c 8199539: Provide a standard way for the build to filter un-needed legal .md files
erikj
parents: 48355
diff changeset
    67
# need to be filtered due to optional components being enabled/disabled.
149dc554808c 8199539: Provide a standard way for the build to filter un-needed legal .md files
erikj
parents: 48355
diff changeset
    68
# Otherwise CreateJmods.gmk will find the legal files in the original src dirs.
53828
9c44ab24b4a4 8219129: Allow overriding of license files in legal dir
erikj
parents: 52804
diff changeset
    69
# If multiple license files with the same name are found, only the first one
9c44ab24b4a4 8219129: Allow overriding of license files in legal dir
erikj
parents: 52804
diff changeset
    70
# found will get copied.
49537
149dc554808c 8199539: Provide a standard way for the build to filter un-needed legal .md files
erikj
parents: 48355
diff changeset
    71
#
149dc554808c 8199539: Provide a standard way for the build to filter un-needed legal .md files
erikj
parents: 48355
diff changeset
    72
# Parameter 1 is the name of the rule.
149dc554808c 8199539: Provide a standard way for the build to filter un-needed legal .md files
erikj
parents: 48355
diff changeset
    73
#
149dc554808c 8199539: Provide a standard way for the build to filter un-needed legal .md files
erikj
parents: 48355
diff changeset
    74
# Remaining parameters are named arguments. These include:
149dc554808c 8199539: Provide a standard way for the build to filter un-needed legal .md files
erikj
parents: 48355
diff changeset
    75
#   EXCLUDES : List of filenames to exclude from copy
149dc554808c 8199539: Provide a standard way for the build to filter un-needed legal .md files
erikj
parents: 48355
diff changeset
    76
SetupCopyLegalFiles = $(NamedParamsMacroTemplate)
149dc554808c 8199539: Provide a standard way for the build to filter un-needed legal .md files
erikj
parents: 48355
diff changeset
    77
define SetupCopyLegalFilesBody
49540
9704789737c1 8201222: JDK-8199539 broke the OpenJDK build
erikj
parents: 49537
diff changeset
    78
  $$(foreach f, $$(filter-out $$(addprefix %/, $$($1_EXCLUDES)), \
9704789737c1 8201222: JDK-8199539 broke the OpenJDK build
erikj
parents: 49537
diff changeset
    79
      $$(wildcard $$(addsuffix /*, $$(call FindModuleLegalSrcDirs, $$(MODULE))))), \
53828
9c44ab24b4a4 8219129: Allow overriding of license files in legal dir
erikj
parents: 52804
diff changeset
    80
    $$(if $$(filter $$($1_$$(notdir $$f)), $$($1)), , \
9c44ab24b4a4 8219129: Allow overriding of license files in legal dir
erikj
parents: 52804
diff changeset
    81
      $$(eval $$(call SetupCopyFiles, $1_$$(notdir $$f), \
9c44ab24b4a4 8219129: Allow overriding of license files in legal dir
erikj
parents: 52804
diff changeset
    82
          DEST := $$(LEGAL_DST_DIR), \
9c44ab24b4a4 8219129: Allow overriding of license files in legal dir
erikj
parents: 52804
diff changeset
    83
          FILES := $$f, \
9c44ab24b4a4 8219129: Allow overriding of license files in legal dir
erikj
parents: 52804
diff changeset
    84
      )) \
9c44ab24b4a4 8219129: Allow overriding of license files in legal dir
erikj
parents: 52804
diff changeset
    85
      $$(eval $1 += $$($1_$$(notdir $$f))) \
9c44ab24b4a4 8219129: Allow overriding of license files in legal dir
erikj
parents: 52804
diff changeset
    86
    ) \
49540
9704789737c1 8201222: JDK-8199539 broke the OpenJDK build
erikj
parents: 49537
diff changeset
    87
  )
49537
149dc554808c 8199539: Provide a standard way for the build to filter un-needed legal .md files
erikj
parents: 48355
diff changeset
    88
endef