1 #
   2 # Copyright (c) 2011, 2017, 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 default: all
  27 
  28 include $(SPEC)
  29 include MakeBase.gmk
  30 include JavaCompilation.gmk
  31 include SetupJavaCompilers.gmk
  32 
  33 ################################################################################
  34 # Generate interim versions of the module-info.java files for the interim
  35 # langtools modules. Each interim module has ".interim" added as suffix to the
  36 # original module name.
  37 
  38 INTERIM_MODULEINFO_PATTERN := \
  39     $(foreach m, $(INTERIM_RMIC_BASE_MODULES), -e 's/$m\([,; ]\)/$m.interim\1/g') \
  40     -e '/ToolProvider[,; ]/d'
  41 
  42 $(BUILDTOOLS_OUTPUTDIR)/gensrc/%.interim/module-info.java: \
  43     $(TOPDIR)/src/%/share/classes/module-info.java
  44         $(call LogInfo, Generating module-info.java for $*.interim)
  45         $(call MakeDir, $(@D))
  46         $(SED) $(INTERIM_MODULEINFO_PATTERN) $< > $@
  47 
  48 TARGETS += $(patsubst %, $(BUILDTOOLS_OUTPUTDIR)/gensrc/%/module-info.java, \
  49     $(INTERIM_RMIC_MODULES))
  50 
  51 ################################################################################
  52 
  53 RMIC_PKGS := \
  54     sun/rmi/rmic \
  55     sun/tools/asm \
  56     sun/tools/java \
  57     sun/tools/javac \
  58     sun/tools/tree \
  59     sun/tools/util \
  60     #
  61 
  62 $(eval $(call SetupJavaCompilation, BUILD_jdk.rmic.interim, \
  63     SETUP := GENERATE_OLDBYTECODE, \
  64     SRC := $(TOPDIR)/src/jdk.rmic/share/classes, \
  65     EXCLUDE_FILES := $(TOPDIR)/src/jdk.rmic/share/classes/module-info.java, \
  66     EXTRA_FILES := $(BUILDTOOLS_OUTPUTDIR)/gensrc/jdk.rmic.interim/module-info.java, \
  67     INCLUDES := $(RMIC_PKGS), \
  68     BIN := $(BUILDTOOLS_OUTPUTDIR)/interim_rmic_modules/jdk.rmic.interim, \
  69     COPY := .properties, \
  70     ADD_JAVAC_FLAGS := \
  71         --module-path $(BUILDTOOLS_OUTPUTDIR)/interim_rmic_modules \
  72         --add-modules java.corba \
  73         --add-exports java.corba/com.sun.corba.se.impl.util=jdk.rmic.interim \
  74         $(INTERIM_RMIC_ADD_EXPORTS), \
  75 ))
  76 
  77 TARGETS += $(BUILD_jdk.rmic.interim)
  78 
  79 ##########################################################################################
  80 
  81 all: $(TARGETS)