Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

86 lines (70 sloc) 3.068 kb
#
# Copyright (C) 2008 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.
#
# Make sure our needed product policy is present.
ifeq ($(PRODUCT_POLICY),)
$(error PRODUCT_POLICY MUST be defined.)
else
ifeq ($(filter $(PRODUCT_POLICY),$(ALL_MODULES)),)
$(error No module defined for the given PRODUCT_POLICY ($(PRODUCT_POLICY)))
else
# The policy MUST specify a module which builds a single jar
ifneq ($(words $(call module-built-files,$(PRODUCT_POLICY))),1)
$(error Policy module $(PRODUCT_POLICY) must build a single library jar)
endif
endif
endif
# We will always build all the policies. Then, we will copy the jars from
# the product specified policy into the locations where the current module
# is expected to have its jars. Then, the normal module install code will
# take care of things. We make each policy me non-installable, so that only
# the right one gets taken and installed. Having all the policies built
# also allows us to have unittests that refer to specific policies, but not
# necessarily the one used for the current product being built.
# TODO: Is this the best way to do this?
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := android.policy
LOCAL_MODULE_CLASS := JAVA_LIBRARIES
LOCAL_MODULE_SUFFIX := $(COMMON_JAVA_PACKAGE_SUFFIX)
LOCAL_BUILT_MODULE_STEM := javalib.jar
# base_rules.mk may use this in unintended ways if a stale value is
# left lying around, so make sure to clear it.
all_res_assets :=
#######################################
include $(BUILD_SYSTEM)/base_rules.mk
#######################################
src_classes_jar := $(call _java-lib-full-classes.jar,$(PRODUCT_POLICY))
tgt_classes_jar := $(call _java-lib-full-classes.jar,$(LOCAL_MODULE))
src_javalib_jar := $(call module-built-files,$(PRODUCT_POLICY))
tgt_javalib_jar := $(LOCAL_BUILT_MODULE)
# make sure that the classes file gets there first since some rules in other
# places assume that the classes.jar for a module exists if the javalib.jar
# file exists.
$(tgt_javalib_jar): $(tgt_classes_jar)
$(tgt_javalib_jar): $(src_javalib_jar) | $(ACP)
@echo "Copying policy javalib.jar: $@"
$(copy-file-to-target)
$(tgt_classes_jar): $(src_classes_jar) | $(ACP)
@echo "Copying policy classes.jar: $@"
$(copy-file-to-target)
#
# Clean up after ourselves when switching build types
#
.PHONY: policy_installclean
policy_installclean: PRIVATE_CLEAN_DIR := $(call local-intermediates-dir,COMMON)
policy_installclean:
$(hide) rm -rf $(PRIVATE_CLEAN_DIR)
installclean: policy_installclean
Jump to Line
Something went wrong with that request. Please try again.