#
# Makefile pour sip
#
#

ifndef COMPILING_WHOLE_TREE
TOPDIR=$(shell pwd)/../..
endif

include $(TOPDIR)/Rules.make

export 

# rpertoires obligatoires
#include $(TOPDIR)/Vars.make
subdir-y  += src

SUBDIRS := $(subdir-y)

SBIN_FILES-y += ./src/utils/hcid/hcid
SBIN_FILES-y += ./src/utils/tools/hciattach
SBIN_FILES-$(CONFIG_BLUEZ_TEST) += ./src/hciemu/hciemu
SBIN_FILES-$(CONFIG_BLUEZ_TEST) += ./src/hcidump/hcidump

SBIN_FILES-$(CONFIG_STACK_BLUEZ) += ./src/utils/tools/hciconfig
SBIN_FILES-$(CONFIG_BLUEZ_SDPD) += ./src/sdpd/sdpd

BIN_FILES-y += ./src/utils/tools/hcitool
BIN_FILES-$(CONFIG_BLUEZ_SDPD) += ./src/utils/tools/sdptool
BIN_FILES-$(CONFIG_BLUEZ_PAN) += ./src/pan/pand/pand
BIN_FILES-$(CONFIG_BLUEZ_RFCOMM) += ./src/pan/dund/dund
BIN_FILES-$(CONFIG_BLUEZ_TEST) += ./src/utils/tools/l2ping
BIN_FILES-$(CONFIG_BLUEZ_TEST) += ./src/utils/rfcomm/rfcomm
BIN_FILES-$(CONFIG_BLUEZ_OBEX) += ./src/rfcomm/obex/obextool

ETC_FILES-$(CONFIG_STACK_BLUEZ) += hcid.conf

MOD_NET_FILES-$(CONFIG_BLUEZ_KERNEL)$(CONFIG_STACK_BLUEZ)  += ./src/kernel/core/bluez.o
MOD_NET_FILES-$(CONFIG_BLUEZ_KERNEL)$(CONFIG_STACK_BLUEZ)  += ./src/kernel/core/l2cap.o
MOD_NET_FILES-$(CONFIG_BLUEZ_KERNEL)$(CONFIG_BLUEZ_PAN) += ./src/kernel/bnep/bnep.o
MOD_NET_FILES-$(CONFIG_BLUEZ_KERNEL)$(CONFIG_BLUEZ_RFCOMM) += ./src/kernel/rfcomm/rfcomm.o
MOD_NET_FILES-$(CONFIG_BLUEZ_KERNEL)$(CONFIG_STACK_BLUEZ) += ./src/kernel/core/sco.o

MOD_DRI_FILES-$(CONFIG_BLUEZ_KERNEL)y			+= ./src/kernel/drivers/hci_uart.o
MOD_DRI_FILES-$(CONFIG_BLUEZ_KERNEL)$(CONFIG_BLUEZ_TEST) += ./src/kernel/drivers/hci_vhci.o

UTILS_TEST_FILES-$(CONFIG_BLUEZ_TEST) += ./src/utils/test/l2test
UTILS_TEST_FILES-$(CONFIG_BLUEZ_TEST) += ./src/utils/test/hstest
UTILS_TEST_FILES-$(CONFIG_BLUEZ_TEST) += ./src/utils/test/rctest
UTILS_TEST_FILES-$(CONFIG_BLUEZ_TEST) += ./src/utils/test/scotest

SBIN_FILES = $(SBIN_FILES-y)
BIN_FILES = $(BIN_FILES-y)
ETC_FILES = $(ETC_FILES-y)

MOD_NET_FILES=$(MOD_NET_FILES-yy)
MOD_DRI_FILES=$(MOD_DRI_FILES-yy)

########### hcid.conf configuration ###############################################
# compute the class of device : la base est un point d'acces qui fait du network
CLD:=0x20300

ifeq ($(CONFIG_BLUEZ_OBEX),y)
CLD+= |0x100000
endif

ifeq ($(CONFIG_BLUEZ_PHONE),y)
CLD+= |0x400000
endif

ifeq ($(CONFIG_VOIP_INVH323),y)
CLD+= |0x400000
endif

ifeq ($(CONFIG_VOIP_SIP_CTP),y)
CLD+= |0x400000
endif

ifeq ($(CONFIG_UMA),y)
CLD+= |0x400000
endif

CLD:=$(shell printf 0x%x "$$(( $(CLD) ))")

AUTH:=enable
ENCRYPT:=enable
PKT_TYPE:=DH1,DM1,DM3,DM5,DH3,DH5,HV3
ifeq ($(CONFIG_UMA),y)
# for UMA, we use security level 2 
AUTH:=disable
ENCRYPT:=disable
PKT_TYPE:=DH1,DM1,DM3,DM5,DH3,DH5,HV3
endif


######### Targets ##################################################################

all:
	@$(make_subdirs)

hcid_conf:
	echo $(CLD)
	sed -e 's/class 0x[0-9a-zA-Z]*/class $(CLD)/' \
		-e 's/auth [a-z]*/auth $(AUTH)/' \
		-e 's/encrypt [a-z]*/encrypt $(ENCRYPT)/' \
		-e 's/pkt_type [0-9a-zA-Z,]*/pkt_type $(PKT_TYPE)/' \
		./src/utils/hcid/hcid.conf > hcid.conf
	
release: hcid_conf
	make -C scripts release
	install -d $(ROOT_FS_DIR)/bin
	install -m 755 $(BIN_FILES) $(ROOT_FS_DIR)/bin		
	install -d $(ROOT_FS_DIR)/sbin
	install -m 755 $(SBIN_FILES) $(ROOT_FS_DIR)/sbin
	install -d $(ROOT_FS_DIR)/lib
	
	install -o root -g root -m 755 src/libs/src/libbluetooth.so $(ROOT_FS_DIR)/lib/libbluetooth.so
	if [ -z "$(CONFIG_STRIP_LIBS)" ] ; then $(STRIP) $(ROOT_FS_DIR)/lib/libbluetooth.so ; fi ;
	ln -sf libbluetooth.so  $(ROOT_FS_DIR)/lib/libbluetooth.so.1
	install -o root -g root -m 755 src/libs/src/libsdp.so $(ROOT_FS_DIR)/lib/libsdp.so
	ln -sf libsdp.so $(ROOT_FS_DIR)/lib/libsdp.so.2

	install -d $(MOD_DIR)/bluez
	if [ -n "$(MOD_NET_FILES)" ] ; then install -m 644 -o root -g root $(MOD_NET_FILES) $(MOD_DIR)/bluez ; fi;
	if [ ! -z "$(MOD_DRI_FILES)" ] ; then install -m 644 -o root -g root $(MOD_DRI_FILES) $(MOD_DIR)/bluez ; fi ; 
	install -m 755 -d $(ROOT_FS_DIR)/etc_ro_fs/bluetooth/pan
	install -m 644 -o root -g root $(ETC_FILES) $(ROOT_FS_DIR)/etc_ro_fs/bluetooth/

	if [ "$(UTILS_TEST_FILES-y)" != "" ]; then \
	  install -m 755  $(foreach file,$(UTILS_TEST_FILES-y),$(file)) $(ROOT_FS_DIR)/bin; \
	fi 

	src/utils/scripts/create_dev
	mknod $(ROOT_FS_DIR)/dev/ttyS1 c 4 65


clean: 
	@$(make_subdirs)
