LOCAL_PATH := $(call my-dir)

# libipset.so
include $(CLEAR_VARS)

IPSET_SETTYPE_STATIC := \
	ipset_bitmap_ip.c \
	ipset_bitmap_ipmac.c \
	ipset_bitmap_port.c \
	ipset_hash_ip.c \
	ipset_hash_ipport.c \
	ipset_hash_ipmark.c \
	ipset_hash_ipportip.c \
	ipset_hash_ipportnet.c \
	ipset_hash_net.c \
	ipset_hash_netnet.c \
	ipset_hash_netportnet.c \
	ipset_hash_netport.c \
	ipset_hash_netiface.c \
	ipset_hash_mac.c \
	ipset_list_set.c

LOCAL_MODULE := libipset
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := \
	lib/data.c \
	lib/errcode.c \
	lib/icmp.c \
	lib/icmpv6.c \
	lib/mnl.c \
	lib/parse.c \
	lib/print.c \
	lib/session.c \
	lib/types.c \
	lib/ui.c \
	lib/types_init.c \
	$(foreach f,$(IPSET_SETTYPE_STATIC),lib/$(f))

LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
LOCAL_CFLAGS := -O2 -g -Wno-unused-parameter
LOCAL_SHARED_LIBRARIES := libmnl
include $(BUILD_SHARED_LIBRARY)

$(TOPDIR)$(LOCAL_PATH)/lib/types_init.c:
	$(hide)echo "Generate $@"
	$(hide)rm -f $@
	$(hide)static_list="$(patsubst %.c,%,$(IPSET_SETTYPE_STATIC))"; \
	echo -n "" > $@; \
	for i in $${static_list}; do \
		echo "extern void $${i}_init(void);" >> $@; \
	done; \
	echo "void ipset_types_init(void);" >> $@; \
	echo "void ipset_types_init(void)" >> $@; \
	echo "{" >> $@; \
	for i in $${static_list}; do \
		echo "  ""$${i}_init();" >> $@; \
	done; \
	echo "}" >> $@;

define settype_special_rule
$(eval $(intermediates)/lib/$(1).o: PRIVATE_CFLAGS += -DTYPE_INCLUSIVE -D_INIT=$(1)_init)
endef

$(foreach f,$(patsubst %.c,%,$(IPSET_SETTYPE_STATIC)),$(call settype_special_rule,$(f)))

# ipset
include $(CLEAR_VARS)

LOCAL_MODULE := ipset
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := src/ipset.c src/ui.c
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
LOCAL_CFLAGS := -O2 -g -Wno-unused-parameter
LOCAL_SHARED_LIBRARIES := libipset

include $(BUILD_EXECUTABLE)
