1# 2# Copyright (C) 2022 The Android Open Source Project 3# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved. 4# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 5# 6# This code is free software; you can redistribute it and/or modify it 7# under the terms of the GNU General Public License version 2 only, as 8# published by the Free Software Foundation. Oracle designates this 9# particular file as subject to the "Classpath" exception as provided 10# by Oracle in the LICENSE file that accompanied this code. 11# 12# This code is distributed in the hope that it will be useful, but WITHOUT 13# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 14# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 15# version 2 for more details (a copy is included in the LICENSE file that 16# accompanied this code). 17# 18# You should have received a copy of the GNU General Public License version 19# 2 along with this work; if not, write to the Free Software Foundation, 20# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 21# 22# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 23# or visit www.oracle.com if you need additional information or have any 24# questions. 25# 26 27# It's a very simplified version of upstream Makefile which is 28# just enough build gensrc/Gensrc*.gmk files which re-generate 29# .java files from template files. 30 31ANDROID_BUILD_TOP := $(realpath $(shell pwd)/../../../../../) 32 33# Define command line tools 34MKDIR := mkdir 35RM := rm -f # ignore if the file doesn't exist 36MV := mv 37JAVAC := javac 38TOUCH := touch 39SED := sed 40PRINTF := printf 41# Define NEWLINE. See https://www.gnu.org/software/make/manual/html_node/Multi_002dLine.html 42define NEWLINE 43 44 45endef 46 47# Define BUILD_TOOLS and rules to build BUILD_TOOLS 48# BUILD_TOOLS is defined in the upstream ToolsJdk.gmk 49SUPPORT_OUTPUTDIR := $(ANDROID_BUILD_TOP)/libcore/ojluni/src/tools/make/out 50BUILD_TOOLS_JDK_DIR := $(SUPPORT_OUTPUTDIR)/jdk_tools_classes 51BUILD_TOOLS_JDK := $(BUILD_TOOLS_JDK_DIR)/build/tools/spp/Spp.class 52TOOL_SPP = java -cp $(BUILD_TOOLS_JDK_DIR) build.tools.spp.Spp 53SPP_SRC := $(ANDROID_BUILD_TOP)/libcore/ojluni/src/tools/build/tools/spp/Spp.java 54 55$(BUILD_TOOLS_JDK): $(SPP_SRC) 56 $(MKDIR) -p $(BUILD_TOOLS_JDK_DIR) 57 $(JAVAC) -d $(BUILD_TOOLS_JDK_DIR) $(SPP_SRC) 58 59ExecuteWithLog = $(2) | tee -a $(1) 60LogAll = $(foreach v, \ 61 $(.VARIABLES), \ 62 $(info $(v) = $($(v)))) 63 64MakeTargetDir = mkdir -p $(dir $@) 65 66# Define variables only needed for GensrcCharsetEncoder.gmk 67GENSRC_CHARSETCODER_SRC := $(ANDROID_BUILD_TOP)/libcore/ojluni/src/main/java/java/nio 68 69include gensrc/GensrcCharsetCoder.gmk 70 71# Define variables only needed for GensrcBuffer.gmk 72GENSRC_BUFFER_SRC := $(ANDROID_BUILD_TOP)/libcore/ojluni/src/main/java/java/nio 73 74include gensrc/GensrcBuffer.gmk 75 76all: \ 77 $(GENSRC_CHARSETCODER) \ 78 $(GENSRC_BUFFER) 79 80clean: 81 rm -rf $(BUILD_TOOLS_JDK_DIR) 82 rm -f $(GENSRC_CHARSETCODER) 83 rm -f $(GENSRC_BUFFER) 84