zoukankan      html  css  js  c++  java
  • build/core/config.mk

    # 如果定义了ANDROID_BUILD_SHELL,则ANDROID_BUILD_SHELL
    # 否则使用默认的/bin/bash
    ifdef ANDROID_BUILD_SHELL
    SHELL := $(ANDROID_BUILD_SHELL)
    else
    SHELL := /bin/bash
    endif
    
    # Utility variables.
    empty :=
    space := $(empty) $(empty)
    comma := ,
    # Note that make will eat the newline just before endef.
    define newline
    
    
    endef
    # 不能简单的定义或\
    backslash := a
    backslash := $(patsubst %a,%,$(backslash))
    
    # python有关
    export PYTHONDONTWRITEBYTECODE := 1
    
    # 标准源目录
    SRC_DOCS:= $(TOPDIR)docs
    # TODO: 强制一些层,当模块连接针对特定库时仅仅添加一些头文件路径
    # TODO: 查看可以从这些全局列表删除的。
    SRC_HEADERS := 
            $(TOPDIR)system/core/include 
            $(TOPDIR)hardware/libhardware/include 
            $(TOPDIR)hardware/libhardware_legacy/include 
            $(TOPDIR)hardware/ril/include 
            $(TOPDIR)libnativehelper/include 
            $(TOPDIR)frameworks/native/include 
            $(TOPDIR)frameworks/native/opengl/include 
            $(TOPDIR)frameworks/av/include 
            $(TOPDIR)frameworks/base/include
    SRC_HOST_HEADERS:=$(TOPDIR)tools/include
    SRC_LIBRARIES:= $(TOPDIR)libs
    SRC_SERVERS:= $(TOPDIR)servers
    SRC_TARGET_DIR := $(TOPDIR)build/target
    SRC_API_DIR := $(TOPDIR)prebuilts/sdk/api
    SRC_SYSTEM_API_DIR := $(TOPDIR)prebuilts/sdk/system-api
    
    # 特定工具的路径
    SRC_DROIDDOC_DIR := $(TOPDIR)build/tools/droiddoc
    
    # 避免硬件解码路径被覆盖的调用pathmap.mk建立硬解映射
    include $(BUILD_SYSTEM)/pathmap.mk
    
    # 构建系统内部文件(写Android.mk时会调用include头文件,也就是这些makefile文件)
    CLEAR_VARS:= $(BUILD_SYSTEM)/clear_vars.mk
    BUILD_HOST_STATIC_LIBRARY:= $(BUILD_SYSTEM)/host_static_library.mk
    BUILD_HOST_SHARED_LIBRARY:= $(BUILD_SYSTEM)/host_shared_library.mk
    BUILD_STATIC_LIBRARY:= $(BUILD_SYSTEM)/static_library.mk
    BUILD_RAW_STATIC_LIBRARY := $(BUILD_SYSTEM)/raw_static_library.mk
    BUILD_SHARED_LIBRARY:= $(BUILD_SYSTEM)/shared_library.mk
    BUILD_EXECUTABLE:= $(BUILD_SYSTEM)/executable.mk
    BUILD_RAW_EXECUTABLE:= $(BUILD_SYSTEM)/raw_executable.mk
    BUILD_HOST_EXECUTABLE:= $(BUILD_SYSTEM)/host_executable.mk
    BUILD_PACKAGE:= $(BUILD_SYSTEM)/package.mk
    BUILD_PHONY_PACKAGE:= $(BUILD_SYSTEM)/phony_package.mk
    BUILD_HOST_PREBUILT:= $(BUILD_SYSTEM)/host_prebuilt.mk
    BUILD_PREBUILT:= $(BUILD_SYSTEM)/prebuilt.mk
    BUILD_MULTI_PREBUILT:= $(BUILD_SYSTEM)/multi_prebuilt.mk
    BUILD_JAVA_LIBRARY:= $(BUILD_SYSTEM)/java_library.mk
    BUILD_STATIC_JAVA_LIBRARY:= $(BUILD_SYSTEM)/static_java_library.mk
    BUILD_HOST_JAVA_LIBRARY:= $(BUILD_SYSTEM)/host_java_library.mk
    BUILD_DROIDDOC:= $(BUILD_SYSTEM)/droiddoc.mk
    BUILD_COPY_HEADERS := $(BUILD_SYSTEM)/copy_headers.mk
    BUILD_NATIVE_TEST := $(BUILD_SYSTEM)/native_test.mk
    BUILD_HOST_NATIVE_TEST := $(BUILD_SYSTEM)/host_native_test.mk
    
    BUILD_SHARED_TEST_LIBRARY := $(BUILD_SYSTEM)/shared_test_lib.mk
    BUILD_HOST_SHARED_TEST_LIBRARY := $(BUILD_SYSTEM)/host_shared_test_lib.mk
    BUILD_STATIC_TEST_LIBRARY := $(BUILD_SYSTEM)/static_test_lib.mk
    BUILD_HOST_STATIC_TEST_LIBRARY := $(BUILD_SYSTEM)/host_static_test_lib.mk
    
    BUILD_NOTICE_FILE := $(BUILD_SYSTEM)/notice_files.mk
    BUILD_HOST_DALVIK_JAVA_LIBRARY := $(BUILD_SYSTEM)/host_dalvik_java_library.mk
    BUILD_HOST_DALVIK_STATIC_JAVA_LIBRARY := $(BUILD_SYSTEM)/host_dalvik_static_java_library.mk
    
    
    -include cts/build/config.mk
    
    # 解析目标修饰符,make目标包含showcommands,则打印全命令
    SHOW_COMMANDS:= $(filter showcommands,$(MAKECMDGOALS))
    
    # 设置通用值
    # 全局变量、cflags
    COMMON_GLOBAL_CFLAGS:= -DANDROID -fmessage-length=0 -W -Wall -Wno-unused -Winit-self -Wpointer-arith
    COMMON_RELEASE_CFLAGS:= -DNDEBUG -UDEBUG
    
    COMMON_GLOBAL_CPPFLAGS:= $(COMMON_GLOBAL_CFLAGS) -Wsign-promo
    COMMON_RELEASE_CPPFLAGS:= $(COMMON_RELEASE_CFLAGS)
    # 不同包使用的扩展名
    COMMON_PACKAGE_SUFFIX := .zip
    COMMON_JAVA_PACKAGE_SUFFIX := .jar
    COMMON_ANDROID_PACKAGE_SUFFIX := .apk
    # flag列表改变错误中的不同警告
    TARGET_ERROR_FLAGS := -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point
    # 符号压缩
    TARGET_COMPRESS_MODULE_SYMBOLS := false
    
    # 包含底层配置文件
    # -include:不是必须包含的
    # 包含 buildspec.mk 可以设置一些东西。
    # 如果文件不存在,则环境变量不会使用。如果不工作,则认为是arm build
    ifndef ANDROID_BUILDSPEC
    ANDROID_BUILDSPEC := $(TOPDIR)buildspec.mk
    endif
    -include $(ANDROID_BUILDSPEC)
    # 包含一些环境设置
    include $(BUILD_SYSTEM)/envsetup.mk
  • 相关阅读:
    使用线程的场景
    进程和线程的区别
    线程基础
    Python程序中的进程操作-进程池(multiprocess.Pool)
    Python程序中的进程操作-进程间数据共享(multiprocess.Manager)
    Python程序中的进程操作-进程间通信(multiprocess.Queue)
    Python程序中的进程操作-进程同步(multiprocess.Lock)
    Python程序中的进程操作-开启多进程(multiprocess.process)
    关于<a>标签的onclick与href的执行顺序
    SQLServer2008不允许保存更改
  • 原文地址:https://www.cnblogs.com/pokerface/p/5754008.html
Copyright © 2011-2022 走看看