android makefile教程,android ndk makefile 文件记录

最近一直用android ndk来编译一些小的工具,找makefile中确定代码编译的编译开关,当时一直没有找到,后来分析了一下一般的makefile文件中的

include $(CLEAR_VARS)

这条语句,其实是对应的android源码中的$(BUILD_SYSTEM)/clear_vars.mk

这个makefile文件

来源是

在build/core/config.mk中有如下明确的定义:

CLEAR_VARS:= $(BUILD_SYSTEM)/clear_vars.mk

而BUILD_SYSTEM的定义在build/core/main.mk文件中:

BUILD_SYSTEM := $(TOPDIR)build/core

BUILD_SYSTEM := $(TOPDIR)build/core

而clear_vars.mk这个文件里面的变量就可以配置编译器的不同的参数了,比如我想加入编译时候的编译开关,类似

gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -DLINUX_LUA    -c -o lobject.o lobject.c中的

-DLUA_COMPAT_ALL -DLUA_USE_LINUX -DLINUX_LUA

这几个参数,就需要在你编写的makefile文件中加入

LOCAL_CFLAGS := -DLUA_USE_LINUX -DLUA_COMPAT_ALL

这个变量的定义值,这样在代码的预编译的时候就使用到这些编译开关了

当然到此对于我解决那个问题已经够了,下面是clear_vars.mk这个文件中定义的变量,以便以后参考

###########################################################

## Clear out values of all variables used by rule templates.

###########################################################

LOCAL_MODULE:=

LOCAL_MODULE_PATH:=

LOCAL_MODULE_STEM:=

LOCAL_DONT_CHECK_MODULE:=

LOCAL_CHECKED_MODULE:=

LOCAL_BUILT_MODULE:=

LOCAL_BUILT_MODULE_STEM:=

OVERRIDE_BUILT_MODULE_PATH:=

LOCAL_INSTALLED_MODULE:=

LOCAL_UNINSTALLABLE_MODULE:=

LOCAL_INTERMEDIATE_TARGETS:=

LOCAL_UNSTRIPPED_PATH:=

LOCAL_MODULE_CLASS:=

LOCAL_MODULE_SUFFIX:=

LOCAL_PACKAGE_NAME:=

LOCAL_OVERRIDES_PACKAGES:=

LOCAL_EXPORT_PACKAGE_RESOURCES:=

LOCAL_MANIFEST_PACKAGE_NAME:=

LOCAL_REQUIRED_MODULES:=

LOCAL_ACP_UNAVAILABLE:=

LOCAL_MODULE_TAGS:=

LOCAL_SRC_FILES:=

LOCAL_PREBUILT_OBJ_FILES:=

LOCAL_STATIC_JAVA_LIBRARIES:=

LOCAL_STATIC_LIBRARIES:=

# Group static libraries with "-Wl,--start-group" and "-Wl,--end-group" when linking.

LOCAL_GROUP_STATIC_LIBRARIES:=

LOCAL_WHOLE_STATIC_LIBRARIES:=

LOCAL_SHARED_LIBRARIES:=

LOCAL_IS_HOST_MODULE:=

LOCAL_CC:=

LOCAL_CXX:=

LOCAL_CPP_EXTENSION:=

LOCAL_NO_DEFAULT_COMPILER_FLAGS:=

LOCAL_NO_FDO_SUPPORT :=

LOCAL_ARM_MODE:=

LOCAL_YACCFLAGS:=

LOCAL_ASFLAGS:=

LOCAL_CFLAGS:=

LOCAL_CPPFLAGS:=

LOCAL_RTTI_FLAG:=

LOCAL_C_INCLUDES:=

LOCAL_LDFLAGS:=

LOCAL_LDLIBS:=

LOCAL_AAPT_FLAGS:=

LOCAL_AAPT_INCLUDE_ALL_RESOURCES:=

LOCAL_SYSTEM_SHARED_LIBRARIES:=none

LOCAL_PREBUILT_LIBS:=

LOCAL_PREBUILT_EXECUTABLES:=

LOCAL_PREBUILT_JAVA_LIBRARIES:=

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES:=

LOCAL_PREBUILT_STRIP_COMMENTS:=

LOCAL_INTERMEDIATE_SOURCES:=

LOCAL_INTERMEDIATE_SOURCE_DIR:=

LOCAL_JAVACFLAGS:=

LOCAL_JAVA_LIBRARIES:=

LOCAL_NO_STANDARD_LIBRARIES:=

LOCAL_CLASSPATH:=

LOCAL_DROIDDOC_USE_STANDARD_DOCLET:=

LOCAL_DROIDDOC_SOURCE_PATH:=

LOCAL_DROIDDOC_TEMPLATE_DIR:=

LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=

LOCAL_DROIDDOC_ASSET_DIR:=

LOCAL_DROIDDOC_CUSTOM_ASSET_DIR:=

LOCAL_DROIDDOC_OPTIONS:=

LOCAL_DROIDDOC_HTML_DIR:=

LOCAL_ASSET_FILES:=

LOCAL_ASSET_DIR:=

LOCAL_RESOURCE_DIR:=

LOCAL_JAVA_RESOURCE_DIRS:=

LOCAL_JAVA_RESOURCE_FILES:=

LOCAL_GENERATED_SOURCES:=

LOCAL_COPY_HEADERS_TO:=

LOCAL_COPY_HEADERS:=

LOCAL_FORCE_STATIC_EXECUTABLE:=

LOCAL_ADDITIONAL_DEPENDENCIES:=

LOCAL_COMPRESS_MODULE_SYMBOLS:=

LOCAL_STRIP_MODULE:=

LOCAL_POST_PROCESS_COMMAND:=true

LOCAL_JNI_SHARED_LIBRARIES:=

LOCAL_JNI_SHARED_LIBRARIES_ABI:=

LOCAL_JAR_MANIFEST:=

LOCAL_INSTRUMENTATION_FOR:=

LOCAL_MANIFEST_INSTRUMENTATION_FOR:=

LOCAL_AIDL_INCLUDES:=

LOCAL_JARJAR_RULES:=

LOCAL_ADDITIONAL_JAVA_DIR:=

LOCAL_ALLOW_UNDEFINED_SYMBOLS:=

LOCAL_DX_FLAGS:=

LOCAL_CERTIFICATE:=

LOCAL_SDK_VERSION:=

LOCAL_SDK_RES_VERSION:=

LOCAL_NDK_VERSION:=

LOCAL_NDK_STL_VARIANT:=

LOCAL_NO_EMMA_INSTRUMENT:=

LOCAL_NO_EMMA_COMPILE:=

LOCAL_PROGUARD_ENABLED:= # '',optonly,full,custom,disabled

LOCAL_PROGUARD_FLAGS:=

LOCAL_PROGUARD_FLAG_FILES:=

LOCAL_EMMA_COVERAGE_FILTER:=

LOCAL_WARNINGS_ENABLE:=

LOCAL_MANIFEST_FILE:=

LOCAL_RENDERSCRIPT_INCLUDES:=

LOCAL_RENDERSCRIPT_INCLUDES_OVERRIDE:=

LOCAL_RENDERSCRIPT_CC:=

LOCAL_RENDERSCRIPT_TARGET_API:=

LOCAL_BUILD_HOST_DEX:=

LOCAL_DEX_PREOPT:= # '',true,false,nostripping

LOCAL_PROTOC_OPTIMIZE_TYPE:= # lite(default),micro,full

LOCAL_PROTOC_FLAGS:=

LOCAL_NO_CRT:=

LOCAL_PROPRIETARY_MODULE:=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值