19b6ec9471cebdbd68639492825956b96f807e382Ben Gruver# Copyright (C) 2010 The Android Open Source Project
29b6ec9471cebdbd68639492825956b96f807e382Ben Gruver#
39b6ec9471cebdbd68639492825956b96f807e382Ben Gruver# Licensed under the Apache License, Version 2.0 (the "License");
49b6ec9471cebdbd68639492825956b96f807e382Ben Gruver# you may not use this file except in compliance with the License.
59b6ec9471cebdbd68639492825956b96f807e382Ben Gruver# You may obtain a copy of the License at
69b6ec9471cebdbd68639492825956b96f807e382Ben Gruver#
79b6ec9471cebdbd68639492825956b96f807e382Ben Gruver#      http://www.apache.org/licenses/LICENSE-2.0
89b6ec9471cebdbd68639492825956b96f807e382Ben Gruver#
99b6ec9471cebdbd68639492825956b96f807e382Ben Gruver# Unless required by applicable law or agreed to in writing, software
109b6ec9471cebdbd68639492825956b96f807e382Ben Gruver# distributed under the License is distributed on an "AS IS" BASIS,
119b6ec9471cebdbd68639492825956b96f807e382Ben Gruver# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
129b6ec9471cebdbd68639492825956b96f807e382Ben Gruver# See the License for the specific language governing permissions and
139b6ec9471cebdbd68639492825956b96f807e382Ben Gruver# limitations under the License.
149b6ec9471cebdbd68639492825956b96f807e382Ben Gruver
159b6ec9471cebdbd68639492825956b96f807e382Ben GruverLOCAL_PATH := $(call my-dir)
169b6ec9471cebdbd68639492825956b96f807e382Ben Gruver
179b6ec9471cebdbd68639492825956b96f807e382Ben Gruver# build smali jar
189b6ec9471cebdbd68639492825956b96f807e382Ben Gruver# ============================================================
199b6ec9471cebdbd68639492825956b96f807e382Ben Gruver
209b6ec9471cebdbd68639492825956b96f807e382Ben Gruverinclude $(CLEAR_VARS)
219b6ec9471cebdbd68639492825956b96f807e382Ben Gruver
22f3d921d1f8eb52f20440a0e43f604a7aae972e94Ben GruverLOCAL_MODULE := smalilib
239b6ec9471cebdbd68639492825956b96f807e382Ben Gruver
249b6ec9471cebdbd68639492825956b96f807e382Ben GruverLOCAL_MODULE_TAGS := optional
259b6ec9471cebdbd68639492825956b96f807e382Ben Gruver
269b6ec9471cebdbd68639492825956b96f807e382Ben Gruver#LOCAL_MODULE_CLASS and LOCAL_IS_HOST_MODULE must be defined before calling $(local-intermediates-dir)
279b6ec9471cebdbd68639492825956b96f807e382Ben GruverLOCAL_MODULE_CLASS := JAVA_LIBRARIES
289b6ec9471cebdbd68639492825956b96f807e382Ben GruverLOCAL_IS_HOST_MODULE := true
299b6ec9471cebdbd68639492825956b96f807e382Ben Gruver
309b6ec9471cebdbd68639492825956b96f807e382Ben Gruverintermediates := $(call local-intermediates-dir,COMMON)
319b6ec9471cebdbd68639492825956b96f807e382Ben Gruver
329b6ec9471cebdbd68639492825956b96f807e382Ben GruverGEN := $(addprefix $(intermediates)/, \
339b6ec9471cebdbd68639492825956b96f807e382Ben Gruver			smaliParser.java \
349b6ec9471cebdbd68639492825956b96f807e382Ben Gruver			smaliTreeWalker.java \
359b6ec9471cebdbd68639492825956b96f807e382Ben Gruver        )
369b6ec9471cebdbd68639492825956b96f807e382Ben Gruver
379b6ec9471cebdbd68639492825956b96f807e382Ben GruverLOCAL_SRC_FILES := \
389b6ec9471cebdbd68639492825956b96f807e382Ben Gruver	$(call all-java-files-under, src/main/java) \
399b6ec9471cebdbd68639492825956b96f807e382Ben Gruver	$(call all-java-files-under, ../util/src/main/java)
409b6ec9471cebdbd68639492825956b96f807e382Ben Gruver
419b6ec9471cebdbd68639492825956b96f807e382Ben GruverLOCAL_JAR_MANIFEST := manifest.txt
429b6ec9471cebdbd68639492825956b96f807e382Ben Gruver
439b6ec9471cebdbd68639492825956b96f807e382Ben GruverLOCAL_STATIC_JAVA_LIBRARIES := \
449b6ec9471cebdbd68639492825956b96f807e382Ben Gruver	antlr-runtime \
455fd395796e215a80c722815bf180728948868f18Ben Gruver	dexlib2
469b6ec9471cebdbd68639492825956b96f807e382Ben Gruver
47f3d921d1f8eb52f20440a0e43f604a7aae972e94Ben Gruver#read in the version number
481d4637b3d94732a4eaa83b129054ee9245bed24eBen GruverSMALI_VERSION := $(shell cat $(LOCAL_PATH)/../build.gradle | \
491d4637b3d94732a4eaa83b129054ee9245bed24eBen Gruver    grep -o -e "^version = '\(.*\)'" | grep -o -e "[0-9.]\+")
501d4637b3d94732a4eaa83b129054ee9245bed24eBen Gruver
511d4637b3d94732a4eaa83b129054ee9245bed24eBen GruverSMALI_VERSION := $(SMALI_VERSION)-aosp
529b6ec9471cebdbd68639492825956b96f807e382Ben Gruver
539b6ec9471cebdbd68639492825956b96f807e382Ben Gruver#create a new smali.properties file using the correct version
549b6ec9471cebdbd68639492825956b96f807e382Ben Gruver$(intermediates)/resources/smali.properties:
559b6ec9471cebdbd68639492825956b96f807e382Ben Gruver	$(hide) mkdir -p $(dir $@)
569b6ec9471cebdbd68639492825956b96f807e382Ben Gruver	$(hide) echo "application.version=$(SMALI_VERSION)" > $@
579b6ec9471cebdbd68639492825956b96f807e382Ben Gruver
589b6ec9471cebdbd68639492825956b96f807e382Ben GruverLOCAL_JAVA_RESOURCE_FILES := $(intermediates)/resources/smali.properties
599b6ec9471cebdbd68639492825956b96f807e382Ben Gruver
609b6ec9471cebdbd68639492825956b96f807e382Ben Gruverinclude $(BUILD_HOST_JAVA_LIBRARY)
619b6ec9471cebdbd68639492825956b96f807e382Ben Gruver
629b6ec9471cebdbd68639492825956b96f807e382Ben Gruver
639b6ec9471cebdbd68639492825956b96f807e382Ben Gruver
649b6ec9471cebdbd68639492825956b96f807e382Ben Gruver# copy smali script
659b6ec9471cebdbd68639492825956b96f807e382Ben Gruver# ============================================================
669b6ec9471cebdbd68639492825956b96f807e382Ben Gruver
679b6ec9471cebdbd68639492825956b96f807e382Ben Gruverinclude $(CLEAR_VARS)
689b6ec9471cebdbd68639492825956b96f807e382Ben GruverLOCAL_IS_HOST_MODULE := true
699b6ec9471cebdbd68639492825956b96f807e382Ben GruverLOCAL_MODULE_CLASS := EXECUTABLES
709b6ec9471cebdbd68639492825956b96f807e382Ben GruverLOCAL_MODULE_TAGS := optional
719b6ec9471cebdbd68639492825956b96f807e382Ben GruverLOCAL_MODULE := smali
729b6ec9471cebdbd68639492825956b96f807e382Ben Gruver
739b6ec9471cebdbd68639492825956b96f807e382Ben Gruverinclude $(BUILD_SYSTEM)/base_rules.mk
749b6ec9471cebdbd68639492825956b96f807e382Ben Gruver
75f3d921d1f8eb52f20440a0e43f604a7aae972e94Ben Gruver$(LOCAL_BUILT_MODULE): $(HOST_OUT_JAVA_LIBRARIES)/smalilib.jar
769b6ec9471cebdbd68639492825956b96f807e382Ben Gruver$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/../scripts/smali | $(ACP)
779b6ec9471cebdbd68639492825956b96f807e382Ben Gruver	@echo "Copy: $(PRIVATE_MODULE) ($@)"
789b6ec9471cebdbd68639492825956b96f807e382Ben Gruver	$(copy-file-to-new-target)
799b6ec9471cebdbd68639492825956b96f807e382Ben Gruver	$(hide) chmod 755 $@