fs_config: introduce TARGET_FS_CONFIG_GEN
Introduce TARGET_FS_CONFIG_GEN, an option for generating android_filesystem_config.h files from multiple intermediate file formats. See the README for more details. Change-Id: Ibdb2f65702657802e34b0cec18fb43709d7452bb Signed-off-by: William Roberts <william.c.roberts@intel.com>
This commit is contained in:
@@ -23,20 +23,31 @@ LOCAL_CFLAGS := -Werror
|
||||
|
||||
include $(BUILD_HOST_EXECUTABLE)
|
||||
|
||||
# To Build the custom target binary for the host to generate the fs_config
|
||||
# override files. The executable is hard coded to include the
|
||||
# $(TARGET_ANDROID_FILESYSTEM_CONFIG_H) file if it exists.
|
||||
# Expectations:
|
||||
# device/<vendor>/<device>/android_filesystem_config.h
|
||||
# fills in struct fs_path_config android_device_dirs[] and
|
||||
# struct fs_path_config android_device_files[]
|
||||
# device/<vendor>/<device>/device.mk
|
||||
# PRODUCT_PACKAGES += fs_config_dirs fs_config_files
|
||||
|
||||
# If not specified, check if default one to be found
|
||||
# One can override the default android_filesystem_config.h file in one of two ways:
|
||||
#
|
||||
# 1. The old way:
|
||||
# To Build the custom target binary for the host to generate the fs_config
|
||||
# override files. The executable is hard coded to include the
|
||||
# $(TARGET_ANDROID_FILESYSTEM_CONFIG_H) file if it exists.
|
||||
# Expectations:
|
||||
# device/<vendor>/<device>/android_filesystem_config.h
|
||||
# fills in struct fs_path_config android_device_dirs[] and
|
||||
# struct fs_path_config android_device_files[]
|
||||
# device/<vendor>/<device>/device.mk
|
||||
# PRODUCT_PACKAGES += fs_config_dirs fs_config_files
|
||||
# If not specified, check if default one to be found
|
||||
#
|
||||
# 2. The new way:
|
||||
# set TARGET_FS_CONFIG_GEN to contain a list of intermediate format files
|
||||
# for generating the android_filesystem_config.h file.
|
||||
#
|
||||
# More information can be found in the README
|
||||
ANDROID_FS_CONFIG_H := android_filesystem_config.h
|
||||
|
||||
ifneq ($(TARGET_ANDROID_FILESYSTEM_CONFIG_H),)
|
||||
ifneq ($(TARGET_FS_CONFIG_GEN),)
|
||||
$(error Cannot set TARGET_ANDROID_FILESYSTEM_CONFIG_H and TARGET_FS_CONFIG_GEN simultaneously)
|
||||
endif
|
||||
|
||||
# One and only one file can be specified.
|
||||
ifneq ($(words $(TARGET_ANDROID_FILESYSTEM_CONFIG_H)),1)
|
||||
@@ -51,20 +62,43 @@ endif
|
||||
|
||||
my_fs_config_h := $(TARGET_ANDROID_FILESYSTEM_CONFIG_H)
|
||||
else ifneq ($(wildcard $(TARGET_DEVICE_DIR)/$(ANDROID_FS_CONFIG_H)),)
|
||||
|
||||
ifneq ($(TARGET_FS_CONFIG_GEN),)
|
||||
$(error Cannot provide $(TARGET_DEVICE_DIR)/$(ANDROID_FS_CONFIG_H) and set TARGET_FS_CONFIG_GEN simultaneously)
|
||||
endif
|
||||
my_fs_config_h := $(TARGET_DEVICE_DIR)/$(ANDROID_FS_CONFIG_H)
|
||||
|
||||
else
|
||||
my_fs_config_h := $(LOCAL_PATH)/default/$(ANDROID_FS_CONFIG_H)
|
||||
endif
|
||||
|
||||
##################################
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_SRC_FILES := fs_config_generate.c
|
||||
LOCAL_MODULE := fs_config_generate_$(TARGET_DEVICE)
|
||||
LOCAL_MODULE_CLASS := EXECUTABLES
|
||||
LOCAL_SHARED_LIBRARIES := libcutils
|
||||
LOCAL_CFLAGS := -Werror -Wno-error=\#warnings
|
||||
|
||||
ifneq ($(TARGET_FS_CONFIG_GEN),)
|
||||
gen := $(local-generated-sources-dir)/$(ANDROID_FS_CONFIG_H)
|
||||
$(gen): PRIVATE_LOCAL_PATH := $(LOCAL_PATH)
|
||||
$(gen): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN)
|
||||
$(gen): PRIVATE_CUSTOM_TOOL = $(PRIVATE_LOCAL_PATH)/fs_config_generator.py $(PRIVATE_TARGET_FS_CONFIG_GEN) > $@
|
||||
$(gen): $(TARGET_FS_CONFIG_GEN) $(LOCAL_PATH)/fs_config_generator.py
|
||||
$(transform-generated-source)
|
||||
|
||||
LOCAL_GENERATED_SOURCES := $(gen)
|
||||
my_fs_config_h := $(gen)
|
||||
gen :=
|
||||
endif
|
||||
|
||||
LOCAL_C_INCLUDES := $(dir $(my_fs_config_h))
|
||||
|
||||
include $(BUILD_HOST_EXECUTABLE)
|
||||
fs_config_generate_bin := $(LOCAL_INSTALLED_MODULE)
|
||||
|
||||
##################################
|
||||
# Generate the system/etc/fs_config_dirs binary file for the target
|
||||
# Add fs_config_dirs to PRODUCT_PACKAGES in the device make file to enable
|
||||
include $(CLEAR_VARS)
|
||||
@@ -76,6 +110,7 @@ $(LOCAL_BUILT_MODULE): $(fs_config_generate_bin)
|
||||
@mkdir -p $(dir $@)
|
||||
$< -D -o $@
|
||||
|
||||
##################################
|
||||
# Generate the system/etc/fs_config_files binary file for the target
|
||||
# Add fs_config_files to PRODUCT_PACKAGES in the device make file to enable
|
||||
include $(CLEAR_VARS)
|
||||
|
Reference in New Issue
Block a user