android ndk makefile,Android NDK Makefile structure

GNUmakefile

: ?? Called by prebuilt/linux-x86/bin/make. Not used by ARM toolchain?

add-application.mk

add-platform.mk

add-toolchain.mk

build-all.mk

: Entry for build-xxx.mk (xxx: binary, executable, local, module, shared-library, static-library)

build-binary.mk

: Script for building binary.

build-executable.mk

: Script for building executable

build-local.mk

: Entry of build system. Called by ndk-build shell script.

build-module.mk

: Script for building module. Used by build-xxxx-library.mk & prebuild-xxxx-library.mk

build-shared-library.mk

: Variables for building shared libraries.

build-static-library.mk

: Variables for building static libraries.

check-cygwin-make.mk

: For Cywin environment

clear-vars.mk

: Set a list of variables (LOCAL_XXXX) to empty, clear its.

default-application.mk

: Predefines APP_BUILD_SCRIPT && APP_PROJECT_PATH.

default-build-commands.mk

: Predefines a list of commands (cmd-build-shared-library, TARGET_CC, TARGET_AR, TARGET_LD ...).

definitions.mk

: Defines a list of functions.

import-locals.mk

: Predefines LOCAL_XXXX variables.

init.mk

main.mk

: ?? Called by prebuilt/linux-x86/bin/make. Not used by ARM toolchain?

ndk-common.sh

prebuilt-library.mk

: Called by Application.mk

prebuilt-shared-library.mk

: Called by prebuilt-library.mk, when building shared libraries

prebuilt-static-library.mk

: Called by prebuilt-library.mk, when building shared libraries

setup-abi.mk

: Defines TARGET_XXX (XXX: ARCH, OBJ, PLATFORM, GDB_SETUP) variables.

setup-app.mk

: Defines NDK_APP_XXX variables.

setup-imports.mk

: Setup variables in setup-xxx.mk files.

setup-toolchain.mk: Defines TOOLCHAIN_XXX variables.

- LOCAL_XXX

- HOST_XXX

. HOST_ARCH = {X86 | ARM | PPC}

. HOST_OS = {windows | linux | darwin}

- TARGET_XXX

- NDK_XXX

> NDK_XXX

. NDK_PROJECT_PATH   := .

. NDK_APPLICATION_MK := 1> $(NDK_PROJECT_PATH)/jni/Application.mk

2> $(NDK_ROOT)/build/core/default-application.mk

> NDK_APP_XXX

. NDK_APP_OUT := $(NDK_PROJECT_PATH)/obj

. NDK_APP_NAME := $(_app) ;{local}

. NDK_APP_ABI := $(APP_ABI)

. NDK_APP_DST_DIR := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI)

. NDK_APP_GDBSERVER := $(NDK_APP_DST_DIR)/gdbserver

. NDK_APP_GDBSETUP := $(NDK_APP_DST_DIR)/gdb.setup

- APP_XXX

. APP_MANIFEST := $(APP_PROJECT_PATH)/AndroidManifest.xml)

. APP_PLATFORM := android-5 (Defined in Application.mk)

. APP_ABI := armeabi armeabi-v7a (Defined in Application.mk)

. APP_BUILD_SCRIPT := $(APP_PROJECT_PATH)/jni/Android.mk

. APP_MODULES :=

. APP_PROJECT_PATH := $(NDK_PROJECT_PATH)

. APP_STL := system

- TOOLCHAIN_XXX

- BUILD_XXX

- $NDK/ndk-build   Entry file of building system. Find an executable "GNUMAKE" command (/usr/bin/make in Ubuntu linux) and jump to build-local.mk.      > GNUMAKE=`which make 2> /dev/null`   > $GNUMAKE -f $PROGDIR/build/core/build-local.mk "$@" - $NDK/build/core/build-local.mk NDK_ROOT = ? include $(NDK_ROOT)/build/core/init.mk   host-dir-parent  = $(patsubst %/,%,$(dir $1))   find-project-dir = $(strip $(call find-project-dir-inner,$(abspath $1),$2))   find-project-dir-inner = ?   find-project-dir-inner-2 = ?   NDK_PROJECT_PATH := 1> . 2> $(call find-project-dir,.,jni/Android.mk) 3> $(call find-project-dir,.,AndroidManifest.xml) 4> predefined $NDK_PROJECT_PATH   NDK_APPLICATION_MK := 1> $(strip $(wildcard $(NDK_PROJECT_PATH)/jni/Application.mk))                         2> $(NDK_ROOT)/build/core/default-application.mk   NDK_APP_OUT := $(NDK_PROJECT_PATH)/obj    _app            := local    _application_mk := $(NDK_APPLICATION_MK)    NDK_APPS        := $(_app) include $(BUILD_SYSTEM)/add-application.mk   DUMP_VAR     := $(patsubst DUMP_%,%,$(filter DUMP_%,$(MAKECMDGOALS)))   MAKECMDGOALS := $(filter-out DUMP_$(DUMP_VAR),$(MAKECMDGOALS)) $(DUMP_VAR)=="" --> 1 1> include $(BUILD_SYSTEM)/setup-imports.mk 2> include $(BUILD_SYSTEM)/build-all.mk - $NDK/build/core/init.mk BUILD_SYSTEM := $(NDK_ROOT)/build/core include $(BUILD_SYSTEM)/definitions.mk ADD_TOOLCHAIN := $(BUILD_SYSTEM)/add-toolchain.mk TOOLCHAIN_CONFIGS := $(wildcard $(NDK_ROOT)/toolchains/*/config.mk) $(foreach _config_mk,$(TOOLCHAIN_CONFIGS),\   $(eval include $(BUILD_SYSTEM)/add-toolchain.mk)\ ) NDK_ALL_TOOLCHAINS   := $(sort $(NDK_ALL_TOOLCHAINS)) NDK_ALL_ABIS         := $(sort $(NDK_ALL_ABIS)) NDK_ALL_ARCHS        := $(sort $(NDK_ALL_ARCHS)) NDK_TOOLCHAIN := $(strip $(NDK_TOOLCHAIN)) NDK_PLATFORMS_ROOT := $(strip $(NDK_PLATFORMS_ROOT)) $(foreach _platform,$(NDK_ALL_PLATFORMS),\   $(eval include $(BUILD_SYSTEM)/add-platform.mk)\ ) NDK_ALL_PLATFORM_LEVELS := $(filter android-%,$(NDK_ALL_PLATFORMS)) NDK_ALL_PLATFORM_LEVELS := $(patsubst android-%,%,$(NDK_ALL_PLATFORM_LEVELS)) $(call ndk_log,Found stable platform levels: $(NDK_ALL_PLATFORM_LEVELS)) - $NDK/build/core/add-application.mk APP_MODULES := $(call strip-lib-prefix,$(APP_MODULES)) APP_PROJECT_PATH := 1> $(strip $(APP_PROJECT_PATH))    2> $(NDK_PROJECT_PATH) APP_BUILD_SCRIPT := $(strip $(APP_BUILD_SCRIPT)) - $NDK/build/core/default-application.mk   APP_PROJECT_PATH := $(NDK_PROJECT_PATH)   APP_BUILD_SCRIPT := $(APP_PROJECT_PATH)/jni/Android.mk - User application makefile APP_ABI := armeabi armeabi-v7a APP_PLATFORM := android-8 OCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE    := plasma LOCAL_SRC_FILES := plasma.c LOCAL_LDLIBS    := -lm -llog -ljnigraphics include $(BUILD_SHARED_LIBRARY)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值