APP := lib$(PROJECT)_$(MARCH).$(EXT)

THIRDPARTIES_INC := ../thirdparties/android/include
THIRDPARTIES_LIB := ../thirdparties/android/lib

# TLS (Default: enabled)
ifeq ($(TLS), no)
	TLS_CFLAGS := -DHAVE_OPENSSL=0
	TLS_LDFLAGS :=
else
	TLS_CFLAGS := -DHAVE_OPENSSL=1
	TLS_LDFLAGS := -lssl_$(MARCH) -lcrypto_$(MARCH)
endif

CFLAGS := $(CFLAGS_LIB) $(TLS_CFLAGS) -I$(THIRDPARTIES_INC) -I../tinySAK/src -I./src
LDFLAGS := $(LDFLAGS_LIB) $(TLS_LDFLAGS) -L$(THIRDPARTIES_LIB) -ltinySAK_$(MARCH)

all: $(APP)

OBJS = \
	src/tnet.o\
	src/tnet_auth.o\
	src/tnet_endianness.o\
	src/tnet_nat.o\
	src/tnet_poll.o\
	src/tnet_socket.o\
	src/tnet_transport.o\
	src/tnet_transport_poll.o\
	src/tnet_utils.o
	###################
	## DHCP
	###################
OBJS +=	src/dhcp/tnet_dhcp.o\
	src/dhcp/tnet_dhcp_message.o\
	src/dhcp/tnet_dhcp_option.o\
	src/dhcp/tnet_dhcp_option_sip.o
	###################
	## DHCPv6
	###################
OBJS +=	src/dhcp6/tnet_dhcp6.o\
	src/dhcp6/tnet_dhcp6_duid.o\
	src/dhcp6/tnet_dhcp6_message.o\
	src/dhcp6/tnet_dhcp6_option.o
	###################
	## DNS
	###################
OBJS +=	src/dns/tnet_dns.o\
	src/dns/tnet_dns_a.o\
	src/dns/tnet_dns_aaaa.o\
	src/dns/tnet_dns_cname.o\
	src/dns/tnet_dns_message.o\
	src/dns/tnet_dns_mx.o\
	src/dns/tnet_dns_naptr.o\
	src/dns/tnet_dns_ns.o\
	src/dns/tnet_dns_opt.o\
	src/dns/tnet_dns_ptr.o\
	src/dns/tnet_dns_regexp.o\
	src/dns/tnet_dns_resolvconf.o\
	src/dns/tnet_dns_rr.o\
	src/dns/tnet_dns_soa.o\
	src/dns/tnet_dns_srv.o\
	src/dns/tnet_dns_txt.o
	###################
	## ICE
	###################
OBJS +=	src/ice/tnet_ice_candidate.o \
	src/ice/tnet_ice_ctx.o \
	src/ice/tnet_ice_event.o \
	src/ice/tnet_ice_pair.o \
	src/ice/tnet_ice_utils.o
	###################
	## STUN
	###################
OBJS +=	src/stun/tnet_stun.o\
	src/stun/tnet_stun_attribute.o\
	src/stun/tnet_stun_message.o
	###################
	## TLS / DTLS
	###################
OBJS +=	src/tls/tnet_tls.o\
	src/tls/tnet_dtls.o
	###################
	## TURN
	###################
OBJS +=	src/turn/tnet_turn.o\
	src/turn/tnet_turn_attribute.o\
	src/turn/tnet_turn_message.o

$(APP): $(OBJS)
ifeq ($(EXT), a)
	$(AR) rcs $@ $^
else
	$(CC) $(LDFLAGS) -o $@ $^
endif

%.o: %.c
	$(CC) -c $(INCLUDE) $(CFLAGS) $< -o $@
	
install: $(APP)
	$(ANDROID_SDK_ROOT)/tools/adb remount
	$(ANDROID_SDK_ROOT)/tools/adb push $(APP) $(LIB_DIR)/$(APP)
	$(ANDROID_SDK_ROOT)/tools/adb shell chmod 777 $(LIB_DIR)/$(APP)
	
clean:
	@rm -f $(OBJS) $(APP)