1. Create a folder named "myprog" in external folder.
2. Create two files,Android.mk and main.c.
Example:
Android.mk
===============================
LOCAL_PATH:=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:= /
main.c
LOCAL_MODULE:= myprog
LOCAL_MODULE_TAGS:=optional
include $(BUILD_EXECUTABLE)
================================
main.c
================================
#include <stdio.h>
void main(void)
{
printf("Hello World!!");
}
3. The all Android.mk will be all scanned before source compilation so that the LOCAL_MODULE_TAGS is important.
4. LOCAL_MODULE_TAGS is related with TARGET_BUILD_VARIANT.
The new program is definitely built up when TARGET_BUILD_VARIANT is equal to LOCAL_MODULE_TAGS.
For example, presume the several lunch methods.
-- lunch testplatform-userdebug
-- lunch testplatform-user
-- lunch testplatform-eng
After lunch-ing them,TARGET_BUILD_VARIANT can be set to "userdebug","user" and "eng".The program will be definitely built with
-- LOCAL_MODULE_TAGS := debug
--LOCAL_MODULE_TAGS :=user
--LOCAL_MODULE_TAGS:=eng
5.why needs LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_TAGS is set to optional can indicate system compilier to check make file for the build. The new program can be add to package build at the Android source/device/testplatform/xxx.mk. The "curl" can be used for the example of package add in xxx.mk. If the new program is not added in package build of makefile,system won't compiler the new program.