剛好要try alsa,所以就用 system/extra/sound/playwav 來看
target 是 sound (不是 playwav)。
touch system/extra/sound/playwav.c
看一下 build command..
prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-gcc
-I system/core/include -I hardware/libhardware/include
-I hardware/libhardware_legacy/include -I hardware/ril/include
-I dalvik/libnativehelper/include -I frameworks/base/include
-I frameworks/base/opengl/include -I external/skia/include
-I out/target/product/imx51_BBG/obj/include -I bionic/libc/arch-arm/include
-I bionic/libc/include -I bionic/libstdc++/include -I bionic/libc/kernel/common
-I bionic/libc/kernel/arch-arm -I bionic/libm/include -I bionic/libm/include/arch/arm
-I bionic/libthread_db/include -I system/extras/sound
-I out/target/product/imx51_BBG/obj/EXECUTABLES/sound_intermediates
-I out/target/product/imx51_BBG/obj/STATIC_LIBRARIES/libwebcore_intermediates
-c -fno-exceptions -Wno-multichar -msoft-float -fpic -ffunction-sections
-funwind-tables -fstack-protector -fno-short-enums -march=armv5te -mtune=xscale
-D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__
-include system/core/include/arch/linux-arm/AndroidConfig.h
-I system/core/include/arch/linux-arm/
-mthumb-interwork -DANDROID -fmessage-length=0
-W -Wall -Wno-unused -Winit-self -Wpointer-arith -Werror=return-type
-Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -DSK_RELEASE
-DNDEBUG -g -Wstrict-aliasing=2 -finline-functions -fno-inline-functions-called-once
-fgcse-after-reload -frerun-cse-after-loop -frename-registers -DNDEBUG -UDEBUG
-mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -MD
-o out/target/product/imx51_BBG/obj/EXECUTABLES/sound_intermediates/playwav.o
system/extras/sound/playwav.c
果然很麻煩...
sound 的 makefile:
LOCAL_PATH := $(call my-dir) // 就是 pwd
include $(CLEAR_VARS) // 清掉所有變數
LOCAL_MODULE := sound // 這個 program 要用的名字
LOCAL_SRC_FILES := playwav.c
LOCAL_MODULE_TAGS := optional // 屬於哪一類的 tag .. 在 make 時會指定 eng, debug, user..
include $(BUILD_EXECUTABLE)
其中LOCAL_MODULE_TAGS 是用來決定build 哪些 target 需要的變數。
像 optional 就永遠不會 build 進 system.
改為 eng 後,在ˋ build eng 時,就會 build 進去。
沒有留言:
張貼留言