
# _PC_ , _BRLADLIGHT_ , _PUMA6_ , _MARVELL_ , _RT6856_ 
CONFIG_PLATFORM := _RT6856_

ifeq ($(CONFIG_PLATFORM),_PC_)
CONFIG_PC=y
CROSS_COMPILE ?=
BIG_ENDIAN=n
else
CONFIG_PC=n
endif

ifeq ($(CONFIG_PLATFORM),_BRLADLIGHT_)
CROSS_COMPILE=mips-wrs-linux-gnu-mips_74k_softfp-glibc_small-
BIG_ENDIAN=y
endif

ifeq ($(CONFIG_PLATFORM),_PUMA6_)
CROSS_COMPILE=
BIG_ENDIAN=n
endif

ifeq ($(CONFIG_PLATFORM),_MARVELL_)
CROSS_COMPILE=/opt/toolchain/marvell/usr/bin/arm-unknown-linux-uclibcgnueabi-
BIG_ENDIAN=n
endif

ifeq ($(CONFIG_PLATFORM),_MNDSPEED_)
	CROSS_COMPILE := arm-openwrt-linux-
	BIG_ENDIAN=n
endif

ifeq ($(CONFIG_PLATFORM),_RT6856_)
	CROSS_COMPILE := /opt/buildroot-gcc342/bin/mipsel-linux-
	BIG_ENDIAN=n
endif

export TOP_USERS_DIR = $(shell pwd)

CONFIG_RTL_WAPI_SUPPORT=n

BUILD_FOLDERS = bin_folder_build
CLEAN_FOLDERS = bin_folder_clean
WSCSRC = wsc
AUTH = auth/src
IWCONTROL = auth/src/dlisten
UTILITY = utility
UPNP = mini_upnp
IWPRIV = wireless_tools.25
MP_DAEMON = mp-daemon

ifeq ($(CONFIG_RTL_WAPI_SUPPORT),y)
OPENSSL = openssl-0.9.8b
WAPI_OTHERS_TOOLS = wapi_utils/other_tools
WAPI_RW_FILES = wapi_utils/rwWapiFiles
WAPI_UDP_SOCK = wapi_utils/udp_sock

CONFIG_RTL_WAPI_LOCAL_AS=0

BUILD_FOLDERS += openssl_build wapi_utils_build
CLEAN_FOLDERS += openssl_clean wapi_utils_clean
endif


all: $(BUILD_FOLDERS) wscd utility auth iwcontrol iwpriv mp
#	make -C $(UPNP) CROSS_COMPILE=$(CROSS_COMPILE) CONFIG_PC=$(CONFIG_PC)
#	make -C $(WSCSRC) CROSS_COMPILE=$(CROSS_COMPILE) CONFIG_PC=$(CONFIG_PC) BIG_ENDIAN=$(BIG_ENDIAN)
#	make -C $(UTILITY) CROSS_COMPILE=$(CROSS_COMPILE) CONFIG_PC=$(CONFIG_PC)
#	make -C $(AUTH) CROSS_COMPILE=$(CROSS_COMPILE) CONFIG_PC=$(CONFIG_PC)  BIG_ENDIAN=$(BIG_ENDIAN)
#	make -C $(IWCONTROL) CROSS_COMPILE=$(CROSS_COMPILE) CONFIG_PC=$(CONFIG_PC)
#	make -C $(IWPRIV) CROSS_COMPILE=$(CROSS_COMPILE) CONFIG_PC=$(CONFIG_PC)
#	make -C $(MP_DAEMON) CROSS_COMPILE=$(CROSS_COMPILE) CONFIG_PC=$(CONFIG_PC)
#	cp auth/src/auth bin/
#	cp auth/src/dlisten/iwcontrol bin/
#	cp mp-daemon/UDPserver bin/
#	cp wireless_tools.25/iwpriv bin/
#	cp utility/flash bin/
#	cp utility/webs bin/
#	cp wsc/src/wscd bin/

wscd:
	make -C $(UPNP) CROSS_COMPILE=$(CROSS_COMPILE) CONFIG_PC=$(CONFIG_PC)
	make -C $(WSCSRC) CROSS_COMPILE=$(CROSS_COMPILE) CONFIG_PC=$(CONFIG_PC) BIG_ENDIAN=$(BIG_ENDIAN)
	cp wsc/src/wscd bin/

wscd_clean:
	make -C $(UPNP) clean
	make -C $(WSCSRC) clean

utility:
	make -C $(UTILITY) CROSS_COMPILE=$(CROSS_COMPILE) CONFIG_PC=$(CONFIG_PC)
	cp utility/flash bin/
	cp utility/webs bin/

utility_clean:
	make -C $(UTILITY) clean

auth:
	make -C $(AUTH) CROSS_COMPILE=$(CROSS_COMPILE) CONFIG_PC=$(CONFIG_PC)  BIG_ENDIAN=$(BIG_ENDIAN)
	cp auth/src/auth bin/

auth_clean:
	make -C $(AUTH) clean

iwcontrol:
	make -C $(IWCONTROL) CROSS_COMPILE=$(CROSS_COMPILE) CONFIG_PC=$(CONFIG_PC)
	cp auth/src/dlisten/iwcontrol bin/

iwcontrol_clean:
	make -C $(IWCONTROL) clean

iwpriv:
	make -C $(IWPRIV) CROSS_COMPILE=$(CROSS_COMPILE) CONFIG_PC=$(CONFIG_PC)
	cp wireless_tools.25/iwpriv bin/

iwpriv_clean:
	make -C $(IWPRIV) clean
	
mp:
	make -C $(MP_DAEMON) CROSS_COMPILE=$(CROSS_COMPILE) CONFIG_PC=$(CONFIG_PC)
	cp mp-daemon/UDPserver bin/

mp_clean:
	make -C $(MP_DAEMON) clean

clean: $(CLEAN_FOLDERS) wscd_clean utility_clean auth_clean iwcontrol_clean iwpriv_clean mp_clean
#	rm -rf bin/
#	make -C $(UPNP) clean
#	make -C $(WSCSRC) clean
#	make -C $(UTILITY) clean
#	make -C $(AUTH) clean
#	make -C $(IWCONTROL) clean
#	make -C $(IWPRIV) clean
#	make -C $(MP_DAEMON) clean

bin_folder_build: bin_folder_clean
	mkdir bin

bin_folder_clean:
	rm -rf bin

openssl_prepare:
	@cd ./openssl-0.9.8b; \
	if [ $(CONFIG_RTL_WAPI_LOCAL_AS) = 1 ]; then \
		if [ ! -f dlib_config_done ]; then \
			./Configure shared mips-linux; make depend; \
			rm -f slib_config_done; touch dlib_config_done; \
			make clean; \
			cp Makefile.DLibForWapi Makefile; \
			cp test/Makefile.wapi test/Makefile; \
		fi;\
	else\
		if [ ! -f slib_config_done ]; then \
			./Configure no-des no-dh no-dsa no-idea no-md2 no-md4 no-rsa no-threads no-hw no-shared mips-linux; make depend; \
			rm -f dlib_config_done; touch slib_config_done;\
			make clean; \
			cp Makefile.SLibForWapi Makefile; \
			cp test/Makefile.wapi test/Makefile; \
		fi;\
	fi;\
	cd -;
	
openssl_build: openssl_prepare
	make -C $(OPENSSL) CROSS_COMPILE=$(CROSS_COMPILE) CONFIG_PC=$(CONFIG_PC)
	cp $(OPENSSL)/test/ecdsatest bin/

openssl_clean: openssl_prepare
	make -C $(OPENSSL) clean

wapi_utils_build:
	make -C $(WAPI_UDP_SOCK) CROSS_COMPILE=$(CROSS_COMPILE) CONFIG_PC=$(CONFIG_PC)
	if [ $(CONFIG_RTL_WAPI_LOCAL_AS) = 1 ]; then \
		make -C $(WAPI_OTHERS_TOOLS) CROSS_COMPILE=$(CROSS_COMPILE) CONFIG_PC=$(CONFIG_PC); \
		make -C $(WAPI_RW_FILES) CROSS_COMPILE=$(CROSS_COMPILE) CONFIG_PC=$(CONFIG_PC); \
		cp $(WAPI_OTHERS_TOOLS)/readFileSize bin/; \
		cp $(WAPI_RW_FILES)/loadWapiFiles bin/; \
		cp $(WAPI_RW_FILES)/storeWapiFiles bin/; \
		cp $(WAPI_UDP_SOCK)/aseUdpServer bin/; \
	fi
	cp $(WAPI_UDP_SOCK)/aeUdpClient bin/

wapi_utils_clean:
	make -C $(WAPI_OTHERS_TOOLS) clean
	make -C $(WAPI_RW_FILES) clean
	make -C $(WAPI_UDP_SOCK) clean

.PHONY : auth utility

romfs:
	$(ROMFSINST) ScriptFiles/script/default_setting_ac.sh /sbin/default_setting_ac.sh
	$(ROMFSINST) ScriptFiles/script/wlan_8192c.sh /sbin/wlan_8192c.sh
	$(ROMFSINST) ScriptFiles/script/wlanapp_8192c.sh /sbin/wlanapp_8192c.sh
	$(ROMFSINST) ScriptFiles/script/wlan_8192c_init.sh /sbin/wlan_8192c_init.sh

