188b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# Copyright (C) 2008 The Android Open Source Project 288b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# 388b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# Licensed under the Apache License, Version 2.0 (the "License"); 488b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# you may not use this file except in compliance with the License. 588b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# You may obtain a copy of the License at 688b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# 788b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# http://www.apache.org/licenses/LICENSE-2.0 888b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# 988b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# Unless required by applicable law or agreed to in writing, software 1088b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# distributed under the License is distributed on an "AS IS" BASIS, 1188b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1288b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# See the License for the specific language governing permissions and 1388b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# limitations under the License. 1488b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project 1588b607994a148f4af5bffee163e39ce8296750c6The Android Open Source ProjectLOCAL_PATH := $(call my-dir) 16073a9ebbbf509097bccd0f560cefd84f10879c13Mark Salyzyn 1788b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Projectinclude $(CLEAR_VARS) 1888b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project 1988b607994a148f4af5bffee163e39ce8296750c6The Android Open Source ProjectLOCAL_SRC_FILES := fs_config.c 2088b607994a148f4af5bffee163e39ce8296750c6The Android Open Source ProjectLOCAL_MODULE := fs_config 21073a9ebbbf509097bccd0f560cefd84f10879c13Mark SalyzynLOCAL_SHARED_LIBRARIES := libcutils libselinux 221c5f19eabed2affa765c364434efb49f92abf39bMark SalyzynLOCAL_CFLAGS := -Werror 2388b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project 2488b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Projectinclude $(BUILD_HOST_EXECUTABLE) 2506b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyn 2606b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyn# To Build the custom target binary for the host to generate the fs_config 2706b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyn# override files. The executable is hard coded to include the 2806b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyn# $(TARGET_ANDROID_FILESYSTEM_CONFIG_H) file if it exists. 2906b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyn# Expectations: 3006b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyn# device/<vendor>/<device>/android_filesystem_config.h 3106b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyn# fills in struct fs_path_config android_device_dirs[] and 3206b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyn# struct fs_path_config android_device_files[] 3306b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyn# device/<vendor>/<device>/device.mk 3406b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyn# PRODUCT_PACKAGES += fs_config_dirs fs_config_files 3506b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyn 3606b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyn# If not specified, check if default one to be found 3706b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark SalyzynANDROID_FS_CONFIG_H := android_filesystem_config.h 3806b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyn 3906b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzynifneq ($(TARGET_ANDROID_FILESYSTEM_CONFIG_H),) 4006b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzynifeq ($(filter %/$(ANDROID_FS_CONFIG_H),$(TARGET_ANDROID_FILESYSTEM_CONFIG_H)),) 4106b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyn$(error TARGET_ANDROID_FILESYSTEM_CONFIG_H file name must be $(ANDROID_FS_CONFIG_H), \ 4206b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyn see "$(notdir $(TARGET_ANDROID_FILESYSTEM_CONFIG_H))".) 4306b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzynendif 4406b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyn 4506b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzynmy_fs_config_h := $(TARGET_ANDROID_FILESYSTEM_CONFIG_H) 4606b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzynelse ifneq ($(wildcard $(TARGET_DEVICE_DIR)/$(ANDROID_FS_CONFIG_H)),) 4706b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzynmy_fs_config_h := $(TARGET_DEVICE_DIR)/$(ANDROID_FS_CONFIG_H) 4806b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzynelse 4906b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzynmy_fs_config_h := $(LOCAL_PATH)/default/$(ANDROID_FS_CONFIG_H) 5006b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzynendif 5106b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyn 5206b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyninclude $(CLEAR_VARS) 5306b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark SalyzynLOCAL_SRC_FILES := fs_config_generate.c 5406b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark SalyzynLOCAL_MODULE := fs_config_generate_$(TARGET_DEVICE) 5506b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark SalyzynLOCAL_SHARED_LIBRARIES := libcutils 5606b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark SalyzynLOCAL_CFLAGS := -Werror -Wno-error=\#warnings 5706b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark SalyzynLOCAL_C_INCLUDES := $(dir $(my_fs_config_h)) 5806b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyninclude $(BUILD_HOST_EXECUTABLE) 5906b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzynfs_config_generate_bin := $(LOCAL_INSTALLED_MODULE) 6006b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyn 6106b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyn# Generate the system/etc/fs_config_dirs binary file for the target 6206b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyn# Add fs_config_dirs to PRODUCT_PACKAGES in the device make file to enable 6306b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyninclude $(CLEAR_VARS) 6406b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyn 6506b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark SalyzynLOCAL_MODULE := fs_config_dirs 6606b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark SalyzynLOCAL_MODULE_CLASS := ETC 6706b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyninclude $(BUILD_SYSTEM)/base_rules.mk 6806b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyn$(LOCAL_BUILT_MODULE): $(fs_config_generate_bin) 6906b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyn @mkdir -p $(dir $@) 7006b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyn $< -D -o $@ 7106b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyn 7206b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyn# Generate the system/etc/fs_config_files binary file for the target 7306b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyn# Add fs_config_files to PRODUCT_PACKAGES in the device make file to enable 7406b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyninclude $(CLEAR_VARS) 7506b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyn 7606b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark SalyzynLOCAL_MODULE := fs_config_files 7706b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark SalyzynLOCAL_MODULE_CLASS := ETC 7806b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyninclude $(BUILD_SYSTEM)/base_rules.mk 7906b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyn$(LOCAL_BUILT_MODULE): $(fs_config_generate_bin) 8006b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyn @mkdir -p $(dir $@) 8106b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyn $< -F -o $@ 8206b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzyn 8306b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark SalyzynANDROID_FS_CONFIG_H := 8406b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzynmy_fs_config_h := 8506b91b9bcf4410d7b8c8c5e10a717671dd327c35Mark Salyzynfs_config_generate_bin := 86