简体   繁体   中英

What are common predefined variables in an android-ndk makefile, and how can I see these?

What are common predefined variables in an android-ndk makefile, and how can I see these?

For example, TARGET_PLATFORM .

What others are there, and how can I output the value?

You can output a string $(warning "FOO") or $(info "FOO")

Using warning , file and line-number is included in output.

With info , only the string is printed.


Many of the predefined android-ndk variables are documented in

  • [ANDROID_NDK_DIR]/docs/ANDROID-MK.html
  • [ANDROID_NDK_DIR]/docs/APPLICATION-MK.html .

Others are undocumented. For example NDK_MAX_PLATFORM_LEVEL

To print most variables:

$(info "---------- ANDROID.MK VARS --------------")
$(info "TARGET_ARCH: $(TARGET_ARCH)")
$(info "TARGET_PLATFORM: $(TARGET_PLATFORM)")
$(info "TARGET_ARCH_ABI: $(TARGET_ARCH_ABI)")
$(info "TARGET_ABI: $(TARGET_ABI)")
$(info "LOCAL_PATH: $(LOCAL_PATH)")
$(info "LOCAL_MODULE: $(LOCAL_MODULE)")
$(info "LOCAL_MODULE_FILENAME: $(LOCAL_MODULE_FILENAME)")
$(info "LOCAL_SRC_FILES: $(LOCAL_SRC_FILES)")
$(info "LOCAL_CPP_EXTENSION: $(LOCAL_CPP_EXTENSION)")
$(info "LOCAL_CPP_FEATURES: $(LOCAL_CPP_FEATURES)")
$(info "LOCAL_C_INCLUDES: $(LOCAL_C_INCLUDES)")
$(info "LOCAL_CFLAGS: $(LOCAL_CFLAGS)")
$(info "LOCAL_CXXFLAGS: $(LOCAL_CXXFLAGS)")
$(info "LOCAL_CPPFLAGS: $(LOCAL_CPPFLAGS)")
$(info "LOCAL_STATIC_LIBRARIES: $(LOCAL_STATIC_LIBRARIES)")
$(info "LOCAL_SHARED_LIBRARIES: $(LOCAL_SHARED_LIBRARIES)")
$(info "LOCAL_WHOLE_STATIC_LIBRARIES: $(LOCAL_WHOLE_STATIC_LIBRARIES)")
$(info "LOCAL_LDLIBS: $(LOCAL_LDLIBS)")
$(info "LOCAL_LDFLAGS: $(LOCAL_LDFLAGS)")
$(info "LOCAL_ALLOW_UNDEFINED_SYMBOLS: $(LOCAL_ALLOW_UNDEFINED_SYMBOLS)")
$(info "LOCAL_ARM_MODE: $(LOCAL_ARM_MODE)")
$(info "LOCAL_ARM_NEON: $(LOCAL_ARM_NEON)")
$(info "LOCAL_DISABLE_NO_EXECUTE: $(LOCAL_DISABLE_NO_EXECUTE)")
$(info "LOCAL_DISABLE_RELRO: $(LOCAL_DISABLE_RELRO)")
$(info "LOCAL_DISABLE_FORMAT_STRING_CHECKS: $(LOCAL_DISABLE_FORMAT_STRING_CHECKS)")
$(info "LOCAL_EXPORT_CFLAGS: $(LOCAL_EXPORT_CFLAGS)")
$(info "LOCAL_EXPORT_CPPFLAGS: $(LOCAL_EXPORT_CPPFLAGS)")
$(info "LOCAL_EXPORT_C_INCLUDES: $(LOCAL_EXPORT_C_INCLUDES)")
$(info "LOCAL_EXPORT_LDFLAGS: $(LOCAL_EXPORT_LDFLAGS)")
$(info "LOCAL_EXPORT_LDLIBS: $(LOCAL_EXPORT_LDLIBS)")
$(info "LOCAL_SHORT_COMMANDS: $(LOCAL_SHORT_COMMANDS)")
$(info "LOCAL_THIN_ARCHIVE: $(LOCAL_THIN_ARCHIVE)")
$(info "LOCAL_FILTER_ASM: $(LOCAL_FILTER_ASM)")

$(info "---------- APPLICATION.MK VARS --------------")
$(info "APP_PROJECT_PATH: $(APP_PROJECT_PATH)")
$(info "APP_MODULES: $(APP_MODULES)")
$(info "APP_OPTIM: $(APP_OPTIM)")
$(info "APP_CFLAGS: $(APP_CFLAGS)")
$(info "APP_CXXFLAGS: $(APP_CXXFLAGS)")
$(info "APP_CPPFLAGS: $(APP_CPPFLAGS)")
$(info "APP_LDFLAGS: $(APP_LDFLAGS)")
$(info "APP_BUILD_SCRIPT: $(APP_BUILD_SCRIPT)")
$(info "APP_ABI: $(APP_ABI)")
$(info "APP_PLATFORM: $(APP_PLATFORM)")
$(info "APP_STL: $(APP_STL)")
$(info "APP_GNUSTL_FORCE_CPP_FEATURES: $(APP_GNUSTL_FORCE_CPP_FEATURES)")
$(info "APP_SHORT_COMMANDS: $(APP_SHORT_COMMANDS)")
$(info "NDK_TOOLCHAIN_VERSION: $(NDK_TOOLCHAIN_VERSION)")
$(info "APP_PIE: $(APP_PIE)")
$(info "APP_THIN_ARCHIVE: $(APP_THIN_ARCHIVE)")

$(info "---------- OTHER VARS --------------")
$(info "NDK_PLATFORMS_ROOT: $(NDK_PLATFORMS_ROOT)")
$(info "NDK_ROOT: $(NDK_ROOT)")
$(info "NDK_ALL_PLATFORMS: $(NDK_ALL_PLATFORMS)")
$(info "BUILD_SYSTEM: $(BUILD_SYSTEM)")
$(info "NDK_ALL_PLATFORM_LEVELS: $(NDK_ALL_PLATFORM_LEVELS)")
$(info "NDK_MAX_PLATFORM_LEVEL: $(NDK_MAX_PLATFORM_LEVEL)")
$(info "NDK_KNOWN_DEVICE_ABIS: $(NDK_KNOWN_DEVICE_ABIS)")
$(info "NDK_KNOWN_ABIS: $(NDK_KNOWN_ABIS)")
$(info "NDK_KNOWN_ARCHS: $(NDK_KNOWN_ARCHS)")
$(info "NDK_FOUND_ARCHS: $(NDK_FOUND_ARCHS)")
$(info "NDK_APP_ABI_ALL_EXPANDED: $(NDK_APP_ABI_ALL_EXPANDED)")
$(info "NDK_ALL_TOOLCHAINS: $(NDK_ALL_TOOLCHAINS)")
$(info "NDK_ALL_ABIS: $(NDK_ALL_ABIS)")
$(info "NDK_ALL_ARCHS: $(NDK_ALL_ARCHS)")
$(info "TOOLCHAIN_CONFIGS: $(TOOLCHAIN_CONFIGS)")
$(info "NDK_TOOLCHAIN: $(NDK_TOOLCHAIN)")

If your "make" program is GNU make , it recognizes a "-p" option which shows all of the variables in effect. You can do this for a given makefile by

make -n -p

Here is a tutorial which mentions the most common variables: The Developer's Guide

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM