# Copyright (C) 2009 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. # # this script is used to record an application definition in the # NDK build system, before performing any build whatsoever. # # It is included repeatedly from build/core/main.mk and expects a # variable named '_application_mk' which points to a given Application.mk # file that will be included here. The latter must define a few variables # to describe the application to the build system, and the rest of the # code here will perform book-keeping and basic checks # $(call assert-defined, _application_mk) $(call clear-vars, $(NDK_APP_VARS)) include $(_application_mk) $(call check-required-vars,$(NDK_APP_VARS_REQUIRED),$(_application_mk)) # strip the 'lib' prefix in front of APP_MODULES modules APP_MODULES := $(call strip-lib-prefix,$(APP_MODULES)) # check that APP_OPTIM, if defined, is either 'release' or 'debug' $(if $(filter-out release debug,$(APP_OPTIM)),\ $(call __ndk_info, The APP_OPTIM defined in $(_application_mk) must only be 'release' or 'debug')\ $(call __ndk_error,Aborting)\ ) _dir := $(patsubst %/,%,$(dir $(_application_mk))) _name := $(notdir $(_dir)) _app := NDK_APP.$(_name) $(if $(strip $(APP.$(_app).defined)),\ $(call __ndk_info,Weird, the application $(_name) is already defined by $(APP.$(_app).defined))\ $(call __ndk_error,Aborting)\ ) APP.$(_app).defined := $(_application_mk) # Record all app-specific variable definitions $(foreach __name,$(NDK_APP_VARS),\ $(eval $(_app).$(__name) := $($(__name)))\ ) # Record the Application.mk for debugging $(_app).Application.mk := $(_application_mk) NDK_ALL_APPS += $(_name)