# Copyright (C) 2016 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

#
# Makefile for the Art fast interpreter.  This is not currently
# integrated into the build system.
#

SHELL := /bin/sh

# Build system has TARGET_ARCH=arm, but we can support the exact architecture
# if it is worthwhile.
#
# To generate sources:
# for arch in arm arm64 x86 x86_64 mips mips64
# do
#   TARGET_ARCH_EXT=$arch make -f Makefile-mterp
# done
#

OUTPUT_DIR := out

# Accumulate all possible dependencies for the generated files in a very
# conservative fashion.  If it's not one of the generated files in "out",
# assume it's a dependency.
SOURCE_DEPS := \
	$(shell find . -path ./$(OUTPUT_DIR) -prune -o -type f -print) \

# Source files generated by the script.  There's always one C and one
# assembly file, though in practice one or the other could be empty.
GEN_SOURCES := \
	$(OUTPUT_DIR)/interp_asm_$(TARGET_ARCH_EXT).S

target: $(GEN_SOURCES)

$(GEN_SOURCES): $(SOURCE_DEPS)
	@mkdir -p out
	./gen_mterp.py $(TARGET_ARCH_EXT) $(OUTPUT_DIR)
