
############################################################################
#
# Makefile --  Build for rootfs makefile.
#
# Copyright (c) 2001-2004, SnapGear (www.snapgear.com)
# Copyright (c) 2001, Lineo
#
# Add by zhouwei 2010-08-06 for freescale imx28 platform
# 
############################################################################
CP        = cp
ROMFS_DIR = $(ROMFSDIR)
$(warning  CONFIG_WIFI_MODULE=$(CONFIG_WIFI_MODULE))
.PHONY: romfs wifi

ifneq ($(CONFIG_WIFI_MODULE), )
CPWIFI=wifi
endif

$(warning  CPWIFI=$(CPWIFI))
all:

romfs: $(CPWIFI)
	chmod +x ./scripts/*.sh
	$(CP) -f ./scripts/*.sh $(ROMFS_DIR)/sbin/
	#$(CP) -f ./scripts/*.txt $(ROMFS_DIR)/sbin/
	mkdir -p $(ROMFS_DIR)/etc_ro/ 
	$(CP) -f ./etc/*.conf $(ROMFS_DIR)/etc_ro/
	$(CP) -f ./etc/options.auth $(ROMFS_DIR)/etc_ro/
	$(CP) -f ./etc/options.noauth $(ROMFS_DIR)/etc_ro/
	$(CP) -f ./etc/initchat $(ROMFS_DIR)/etc_ro/
ifneq ($(CONFIG_USE_WEBUI_SECURITY),yes)
	$(CP) -f ./etc/pap-secrets $(ROMFS_DIR)/etc_ro/
	$(CP) -f ./etc/chap-secrets $(ROMFS_DIR)/etc_ro/
endif
ifeq ($(USE_FOTA),yes)
	mkdir -p $(ROMFS_DIR)/recovery/sbin
	$(CP) -f ./scripts/to_mnt_ubifs.sh $(ROMFS_DIR)/recovery/sbin/
endif
wifi:
	@echo "copying wifi script"
	
ifeq ($(CONFIG_WIFI_MODULE), realtek)
	@echo "copying wifi realtek script"
	mkdir -p $(ROMFS_DIR)/etc_ro/ 
	$(CP) -rf ./wifi/*  $(ROMFS_DIR)/etc_ro/
ifeq ($(CONFIG_WIFI_RTL_WPA2),yes)
	chmod +x  ./wifi_script/realtek_wpa2/*
	$(CP) -rf ./wifi_script/realtek_wpa2/*  $(ROMFS_DIR)/sbin/
else
	chmod +x  ./wifi_script/realtek/*
	$(CP) -rf ./wifi_script/realtek/*  $(ROMFS_DIR)/sbin/
endif
else
	chmod +x  ./wifi_script/realtek/*
ifeq ($(CONFIG_MIN_8M_VERSION), n)
	$(CP) -rf ./wifi_script/realtek/zte_qrcode_create.sh  $(ROMFS_DIR)/sbin/
else
ifeq ($(CONFIG_MMI_LCD),yes)
	$(CP) -rf ./wifi_script/realtek/zte_qrcode_create.sh  $(ROMFS_DIR)/sbin/
endif
endif
endif


