# Detect the GDK installation path by processing this Makefile's location. # This assumes we are located under $GDK_ROOT/build/core/main.mk # GDK_ROOT := $(dir $(lastword $(MAKEFILE_LIST))) GDK_ROOT := $(strip $(GDK_ROOT:%build/core/=%)) GDK_ROOT := $(GDK_ROOT:%/=%) ifeq ($(GDK_ROOT),) # for the case when we're invoked from the GDK install path GDK_ROOT := . endif ifdef GDK_LOG $(info Android GDK: GDK installation path auto-detected: '$(GDK_ROOT)') endif ifneq ($(words $(GDK_ROOT)),1) $(info Android GDK: You GDK installation path contains spaces.) $(info Android GDK: Please re-install to a different location to fix the issue !) $(error Aborting.) endif include $(GDK_ROOT)/build/core/init.mk # ==================================================================== # # If GDK_PROJECT_PATH is not defined, find the application's project # path by looking at the manifest file in the current directory or # any of its parents. If none is found, try again with 'jni/Android.mk' # # It turns out that some people use gdk-build to generate static # libraries without a full Android project tree. # # ==================================================================== find-project-dir = $(strip $(call find-project-dir-inner,$1,$2)) find-project-dir-inner = \ $(eval __found_project_path := )\ $(eval __find_project_path := $1)\ $(eval __find_project_file := $2)\ $(call find-project-dir-inner-2)\ $(__found_project_path) find-project-dir-inner-2 = \ $(call gdk_log,Looking for $(__find_project_file) in $(__find_project_path))\ $(eval __find_project_manifest := $(strip $(wildcard $(__find_project_path)/$(__find_project_file))))\ $(if $(__find_project_manifest),\ $(call gdk_log, Found it !)\ $(eval __found_project_path := $(__find_project_path))\ ,\ $(eval __find_project_parent := $(patsubst %/,%,$(dir $(__find_project_path))))\ $(if $(__find_project_parent),\ $(eval __find_project_path := $(__find_project_parent))\ $(call find-project-dir-inner-2)\ )\ ) GDK_PROJECT_PATH := $(strip $(GDK_PROJECT_PATH)) ifndef GDK_PROJECT_PATH GDK_PROJECT_PATH := $(call find-project-dir,$(strip $(shell pwd)),AndroidManifest.xml) endif ifndef GDK_PROJECT_PATH GDK_PROJECT_PATH := $(call find-project-dir,$(strip $(shell pwd)),jni/Android-portable.mk) endif ifndef GDK_PROJECT_PATH $(call __gdk_info,Could not find application project directory !) $(call __gdk_info,Please define the GDK_PROJECT_PATH variable to point to it.) $(call __gdk_error,Aborting) endif # Check that there are no spaces in the project path, or bad things will happen ifneq ($(words $(GDK_PROJECT_PATH)),1) $(call __gdk_info,Your Android application project path contains spaces: '$(GDK_PROJECT_PATH)') $(call __gdk_info,The Android GDK build cannot work here. Please move your project to a different location.) $(call __gdk_error,Aborting.) endif GDK_APPLICATION_MK := $(GDK_ROOT)/build/core/default-application.mk $(call gdk_log,Found project path: $(GDK_PROJECT_PATH)) # Place all generated files here GDK_APP_OUT := $(GDK_PROJECT_PATH)/obj # Fake an application named 'local' _app := local _application_mk := $(GDK_APPLICATION_MK) GDK_APPS := $(_app) include $(BUILD_SYSTEM)/add-application.mk # Build it include $(BUILD_SYSTEM)/build-all.mk