1 #
   2 # Copyright (c) 2010, 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 NASGEN_SRC := $(TOPDIR)/make/nashorn/buildtools/nasgen/src
  27 ASM_SRC := $(TOPDIR)/src/java.base/share/classes/jdk/internal/org/objectweb/asm
  28 
  29 # Build nasgen
  30 $(eval $(call SetupJavaCompilation, BUILD_NASGEN, \
  31     SETUP := GENERATE_OLDBYTECODE, \
  32     SRC := $(NASGEN_SRC) $(ASM_SRC), \
  33     BIN := $(BUILDTOOLS_OUTPUTDIR)/nasgen_classes, \
  34 ))
  35 
  36 NASHORN_CLASSES_DIR := $(JDK_OUTPUTDIR)/modules/$(MODULE)
  37 NASGEN_RUN_FILE := $(NASHORN_CLASSES_DIR)/_the.nasgen.run
  38 
  39 NASGEN_OPTIONS := \
  40     -cp $(BUILDTOOLS_OUTPUTDIR)/nasgen_classes \
  41     --patch-module java.base=$(BUILDTOOLS_OUTPUTDIR)/nasgen_classes \
  42     --add-exports java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED \
  43     --add-exports java.base/jdk.internal.org.objectweb.asm.util=ALL-UNNAMED \
  44     #
  45 
  46 # Run nasgen to modify classes in jdk.nashorn.internal.objects package
  47 $(NASGEN_RUN_FILE): $(BUILD_NASGEN) $($(MODULE))
  48         $(ECHO) Running nasgen
  49         $(JAVA_SMALL) $(NASGEN_OPTIONS) \
  50             jdk.nashorn.internal.tools.nasgen.Main $(@D) \
  51             jdk.nashorn.internal.objects $(@D)
  52         $(TOUCH) $@
  53 
  54 TARGETS += $(NASGEN_RUN_FILE)