make/hotspot/gensrc/GensrcAdlc.gmk
author weijun
Mon, 08 Oct 2018 13:25:39 +0800
changeset 52035 f697ba5b18d2
parent 49120 c04d813140dc
child 52925 9c18c9d839d3
child 56228 a20f3126f7c0
permissions -rw-r--r--
8210395: Add doc to SecurityTools.java Reviewed-by: mullan
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
37437
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
     1
#
49070
d7859531621b 8198751: Refactor SetupNativeCompilation to take NAME and TYPE
ihse
parents: 47314
diff changeset
     2
# Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
37437
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
     3
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
     4
#
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
     5
# This code is free software; you can redistribute it and/or modify it
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
     6
# under the terms of the GNU General Public License version 2 only, as
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
     7
# published by the Free Software Foundation.  Oracle designates this
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
     8
# particular file as subject to the "Classpath" exception as provided
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
     9
# by Oracle in the LICENSE file that accompanied this code.
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    10
#
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    11
# This code is distributed in the hope that it will be useful, but WITHOUT
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    12
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    13
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    14
# version 2 for more details (a copy is included in the LICENSE file that
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    15
# accompanied this code).
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    16
#
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    17
# You should have received a copy of the GNU General Public License version
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    18
# 2 along with this work; if not, write to the Free Software Foundation,
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    19
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    20
#
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    21
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    22
# or visit www.oracle.com if you need additional information or have any
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    23
# questions.
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    24
#
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    25
47314
743814386712 8188814: Simplify IncludeCustomExtension
ihse
parents: 47217
diff changeset
    26
$(eval $(call IncludeCustomExtension, hotspot/gensrc/GensrcAdlc.gmk))
37437
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    27
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    28
ifeq ($(call check-jvm-feature, compiler2), true)
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    29
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    30
  ADLC_SUPPORT_DIR := $(JVM_SUPPORT_DIR)/adlc
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    31
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    32
  ##############################################################################
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    33
  # Build the ad compiler (the adlc build tool)
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    34
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    35
  # Flags depending on the build platform/tool chain
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    36
  # NOTE: No optimization or debug flags set here
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    37
  ifeq ($(OPENJDK_BUILD_OS), linux)
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    38
    ADLC_CFLAGS := -fno-exceptions -DLINUX
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    39
  else ifeq ($(OPENJDK_BUILD_OS), solaris)
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    40
    ADLC_LDFLAGS := -m64
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    41
    ADLC_CFLAGS := -m64
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    42
    ADLC_CFLAGS_WARNINGS := +w
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    43
  else ifeq ($(OPENJDK_BUILD_OS), aix)
37469
ac811846846c 8154087: Fix AIX and Linux/ppc64le after the integration of the new hotspot build
simonis
parents: 37437
diff changeset
    44
    ADLC_LDFLAGS := -q64
ac811846846c 8154087: Fix AIX and Linux/ppc64le after the integration of the new hotspot build
simonis
parents: 37437
diff changeset
    45
    ADLC_CFLAGS := -qnortti -qeh -q64 -DAIX
37437
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    46
  else ifeq ($(OPENJDK_BUILD_OS), windows)
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    47
    ADLC_LDFLAGS := -nologo
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    48
    ADLC_CFLAGS := -nologo -EHsc
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    49
    # NOTE: The old build also have -D_CRT_SECURE_NO_DEPRECATE but it doesn't
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    50
    # seem needed any more.
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    51
    ADLC_CFLAGS_WARNINGS := -W3 -D_CRT_SECURE_NO_WARNINGS
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    52
  endif
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    53
39963
5921b7f27d63 8156980: Hotspot build doesn't have -std=gnu++98 gcc option
andrew
parents: 38097
diff changeset
    54
  # Set the C++ standard if supported
49120
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents: 49070
diff changeset
    55
  ADLC_CFLAGS += $(ADLC_CXXFLAG)
49070
d7859531621b 8198751: Refactor SetupNativeCompilation to take NAME and TYPE
ihse
parents: 47314
diff changeset
    56
37437
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    57
  # NOTE: The old build didn't set -DASSERT for windows but it doesn't seem to
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    58
  # hurt.
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    59
  ADLC_CFLAGS += -DASSERT
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    60
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    61
  ADLC_CFLAGS += -D$(HOTSPOT_TARGET_CPU_DEFINE)
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    62
47217
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
    63
  ADLC_CFLAGS += -I$(TOPDIR)/src/hotspot/share
37437
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    64
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    65
  $(eval $(call SetupNativeCompilation, BUILD_ADLC, \
49070
d7859531621b 8198751: Refactor SetupNativeCompilation to take NAME and TYPE
ihse
parents: 47314
diff changeset
    66
      NAME := adlc, \
d7859531621b 8198751: Refactor SetupNativeCompilation to take NAME and TYPE
ihse
parents: 47314
diff changeset
    67
      TYPE := EXECUTABLE, \
37437
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    68
      TOOLCHAIN := TOOLCHAIN_BUILD_LINK_CXX, \
47217
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
    69
      SRC := $(TOPDIR)/src/hotspot/share/adlc, \
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
    70
      EXTRA_FILES := $(TOPDIR)/src/hotspot/share/opto/opcodes.cpp, \
37437
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    71
      CFLAGS := $(ADLC_CFLAGS) $(ADLC_CFLAGS_WARNINGS), \
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    72
      LDFLAGS := $(ADLC_LDFLAGS), \
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    73
      LIBS := $(ADLC_LIBS), \
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    74
      OBJECT_DIR := $(JVM_VARIANT_OUTPUTDIR)/tools/adlc/objs, \
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    75
      OUTPUT_DIR := $(JVM_VARIANT_OUTPUTDIR)/tools/adlc, \
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    76
      DEBUG_SYMBOLS := false, \
46630
75aa3e39d02c 8182299: Enable disabled clang warnings, build on OSX 10 + Xcode 8
jwilhelm
parents: 42664
diff changeset
    77
      DISABLED_WARNINGS_clang := tautological-compare, \
37437
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    78
      DISABLED_WARNINGS_solstudio := notemsource, \
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    79
  ))
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    80
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    81
  ADLC_TOOL := $(BUILD_ADLC_TARGET)
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    82
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    83
  ##############################################################################
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    84
  # Transform the ad source files into C++ source files using adlc
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    85
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    86
  # Setup flags for the adlc build tool (ADLCFLAGS).
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    87
  ADLCFLAGS += -q -T
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    88
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    89
  # ADLC flags depending on target OS
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    90
  ifeq ($(OPENJDK_TARGET_OS), linux)
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    91
    ADLCFLAGS += -DLINUX=1 -D_GNU_SOURCE=1
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    92
  else ifeq ($(OPENJDK_TARGET_OS), solaris)
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    93
    ADLCFLAGS += -DSOLARIS=1 -DSPARC_WORKS=1
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    94
  else ifeq ($(OPENJDK_TARGET_OS), aix)
37469
ac811846846c 8154087: Fix AIX and Linux/ppc64le after the integration of the new hotspot build
simonis
parents: 37437
diff changeset
    95
    ADLCFLAGS += -DAIX=1
37437
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    96
  else ifeq ($(OPENJDK_TARGET_OS), macosx)
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    97
    ADLCFLAGS += -D_ALLBSD_SOURCE=1 -D_GNU_SOURCE=1
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    98
  endif
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
    99
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   100
  ifneq ($(OPENJDK_TARGET_OS), windows)
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   101
    # NOTE: Windows adlc flags was different in the old build. Is this really
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   102
    # correct?
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   103
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   104
    # -g makes #line directives in the generated C++ files.
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   105
    ADLCFLAGS += -g
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   106
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   107
    ADLCFLAGS += -D$(HOTSPOT_TARGET_CPU_DEFINE)=1
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   108
  endif
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   109
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   110
  # This generates checks in the generated C++ files that _LP64 is correctly
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   111
  # (un)defined when compiling them.
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   112
  ifeq ($(OPENJDK_TARGET_CPU_BITS), 64)
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   113
    ADLCFLAGS += -D_LP64=1
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   114
  else
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   115
    ADLCFLAGS += -U_LP64
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   116
  endif
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   117
42664
29142a56c193 8168503: JEP 297: Unified arm32/arm64 Port
bobv
parents: 40010
diff changeset
   118
  ifeq ($(HOTSPOT_TARGET_CPU_ARCH), arm)
29142a56c193 8168503: JEP 297: Unified arm32/arm64 Port
bobv
parents: 40010
diff changeset
   119
    ADLCFLAGS += -DARM=1
29142a56c193 8168503: JEP 297: Unified arm32/arm64 Port
bobv
parents: 40010
diff changeset
   120
  endif
29142a56c193 8168503: JEP 297: Unified arm32/arm64 Port
bobv
parents: 40010
diff changeset
   121
37437
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   122
  ##############################################################################
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   123
  # Concatenate all ad source files into a single file, which will be fed to
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   124
  # adlc. Also include a #line directive at the start of every included file
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   125
  # (after the initial header block), stating the original source file name.
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   126
  #
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   127
  # Normally, debugging is done directly on the ad_<arch>*.cpp files, but the
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   128
  # #line directives in those files will be pointing back to <arch>.ad.
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   129
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   130
  # AD_SRC_ROOTS might have been added to by a custom extension
47217
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
   131
  AD_SRC_ROOTS += $(TOPDIR)/src/hotspot
37437
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   132
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   133
  AD_SRC_FILES := $(call uniq, $(wildcard $(foreach d, $(AD_SRC_ROOTS), \
47217
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
   134
      $d/cpu/$(HOTSPOT_TARGET_CPU_ARCH)/$(HOTSPOT_TARGET_CPU).ad \
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
   135
      $d/cpu/$(HOTSPOT_TARGET_CPU_ARCH)/$(HOTSPOT_TARGET_CPU_ARCH).ad \
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
   136
      $d/os_cpu/$(HOTSPOT_TARGET_OS)_$(HOTSPOT_TARGET_CPU_ARCH)/$(HOTSPOT_TARGET_OS)_$(HOTSPOT_TARGET_CPU_ARCH).ad \
37437
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   137
    )))
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   138
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   139
  SINGLE_AD_SRCFILE := $(ADLC_SUPPORT_DIR)/all-ad-src.ad
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   140
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   141
  INSERT_FILENAME_AWK_SCRIPT := \
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   142
      '{ \
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   143
         if (CUR_FN != FILENAME) { CUR_FN=FILENAME; NR_BASE=NR-1; need_lineno=1 } \
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   144
         if (need_lineno && $$0 !~ /\/\//) \
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   145
           { print "\n\n\#line " (NR-NR_BASE) " \"" FILENAME "\""; need_lineno=0 }; \
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   146
         print \
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   147
       }'
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   148
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   149
  $(SINGLE_AD_SRCFILE): $(AD_SRC_FILES)
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   150
	$(call LogInfo, Preprocessing adlc files $(^F))
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   151
	$(call MakeDir, $(@D))
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   152
	$(NAWK) $(INSERT_FILENAME_AWK_SCRIPT) $^ > $@
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   153
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   154
  ##############################################################################
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   155
  # Run the adlc tool on the single concatenated ad source file, and store the
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   156
  # output in support/adlc for further processing.
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   157
  ADLC_RUN_MARKER := $(ADLC_SUPPORT_DIR)/_adlc_run.marker
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   158
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   159
  $(ADLC_RUN_MARKER): $(BUILD_ADLC) $(SINGLE_AD_SRCFILE)
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   160
	$(call LogInfo, Generating adlc files)
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   161
	$(call MakeDir, $(@D))
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   162
	$(call ExecuteWithLog, $(ADLC_SUPPORT_DIR)/adlc_run, \
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   163
	    $(FIXPATH) $(ADLC_TOOL) $(ADLCFLAGS) $(SINGLE_AD_SRCFILE) \
40010
e32d5e545789 8161258: Simplify including platform files.
goetz
parents: 39963
diff changeset
   164
	        -c$(ADLC_SUPPORT_DIR)/ad_$(HOTSPOT_TARGET_CPU_ARCH).cpp \
e32d5e545789 8161258: Simplify including platform files.
goetz
parents: 39963
diff changeset
   165
	        -h$(ADLC_SUPPORT_DIR)/ad_$(HOTSPOT_TARGET_CPU_ARCH).hpp \
e32d5e545789 8161258: Simplify including platform files.
goetz
parents: 39963
diff changeset
   166
	        -a$(ADLC_SUPPORT_DIR)/dfa_$(HOTSPOT_TARGET_CPU_ARCH).cpp \
e32d5e545789 8161258: Simplify including platform files.
goetz
parents: 39963
diff changeset
   167
	        -v$(ADLC_SUPPORT_DIR)/adGlobals_$(HOTSPOT_TARGET_CPU_ARCH).hpp)
37437
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   168
	$(TOUCH) $@
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   169
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   170
  ##############################################################################
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   171
  # Finally copy the generated files from support/adlc into gensrc/adfiles,
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   172
  # and postprocess them by fixing dummy #line directives.
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   173
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   174
  ADLC_GENERATED_FILES := $(addprefix $(JVM_VARIANT_OUTPUTDIR)/gensrc/adfiles/, \
40010
e32d5e545789 8161258: Simplify including platform files.
goetz
parents: 39963
diff changeset
   175
      ad_$(HOTSPOT_TARGET_CPU_ARCH).cpp \
e32d5e545789 8161258: Simplify including platform files.
goetz
parents: 39963
diff changeset
   176
      ad_$(HOTSPOT_TARGET_CPU_ARCH).hpp \
e32d5e545789 8161258: Simplify including platform files.
goetz
parents: 39963
diff changeset
   177
      ad_$(HOTSPOT_TARGET_CPU_ARCH)_clone.cpp \
e32d5e545789 8161258: Simplify including platform files.
goetz
parents: 39963
diff changeset
   178
      ad_$(HOTSPOT_TARGET_CPU_ARCH)_expand.cpp \
e32d5e545789 8161258: Simplify including platform files.
goetz
parents: 39963
diff changeset
   179
      ad_$(HOTSPOT_TARGET_CPU_ARCH)_format.cpp \
e32d5e545789 8161258: Simplify including platform files.
goetz
parents: 39963
diff changeset
   180
      ad_$(HOTSPOT_TARGET_CPU_ARCH)_gen.cpp \
e32d5e545789 8161258: Simplify including platform files.
goetz
parents: 39963
diff changeset
   181
      ad_$(HOTSPOT_TARGET_CPU_ARCH)_misc.cpp \
e32d5e545789 8161258: Simplify including platform files.
goetz
parents: 39963
diff changeset
   182
      ad_$(HOTSPOT_TARGET_CPU_ARCH)_peephole.cpp \
e32d5e545789 8161258: Simplify including platform files.
goetz
parents: 39963
diff changeset
   183
      ad_$(HOTSPOT_TARGET_CPU_ARCH)_pipeline.cpp \
e32d5e545789 8161258: Simplify including platform files.
goetz
parents: 39963
diff changeset
   184
      adGlobals_$(HOTSPOT_TARGET_CPU_ARCH).hpp \
e32d5e545789 8161258: Simplify including platform files.
goetz
parents: 39963
diff changeset
   185
      dfa_$(HOTSPOT_TARGET_CPU_ARCH).cpp \
37437
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   186
  )
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   187
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   188
  $(JVM_VARIANT_OUTPUTDIR)/gensrc/adfiles/%: $(ADLC_RUN_MARKER)
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   189
	$(call LogInfo, Postprocessing adlc file $*)
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   190
	$(call MakeDir, $(@D))
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   191
	$(NAWK) \
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   192
	    'BEGIN { print "#line 1 \"$*\""; } \
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   193
	     /^#line 999999$$/ {print "#line " (NR+1) " \"$*\""; next} \
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   194
	     {print}' \
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   195
	    < $(ADLC_SUPPORT_DIR)/$* > $@
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   196
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   197
  TARGETS := $(ADLC_GENERATED_FILES)
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   198
f824aabc7af8 8152666: The new Hotspot Build System
erikj
parents:
diff changeset
   199
endif