IPSET_MODSDIR=${libdir}/ipset

if ENABLE_SETTYPE_MODULES
AM_CFLAGS += -DENABLE_SETTYPE_MODULES \
	         -DIPSET_MODSDIR="\"$(IPSET_MODSDIR)\""
IPSET_SETTYPE_MODULES = yes
IPSET_SETTYPE_DYN = $(if $(findstring all,$(SETTYPE_MODLIST)), \
	                           $(IPSET_SETTYPE_LIST), $(SETTYPE_MODLIST))
else
IPSET_SETTYPE_DYN =
endif

IPSET_SETTYPE_STATIC = $(filter-out $(IPSET_SETTYPE_DYN), \
	                     $(IPSET_SETTYPE_LIST))
IPSET_SETTYPE_DYNAMIC = $(filter $(IPSET_SETTYPE_LIST), \
	                     $(IPSET_SETTYPE_DYN))
IPSET_SETTYPE_STATIC_OBJECTS  = $(patsubst %.c, %.lo, $(IPSET_SETTYPE_STATIC))

IPSET_SETTYPE_DYNAMIC_OBJECTS = $(patsubst %.c, %.lo, $(IPSET_SETTYPE_DYNAMIC))
IPSET_SETTYPE_DYNAMIC_MODULES = $(patsubst %.c, %.la, $(IPSET_SETTYPE_DYNAMIC))
IPSET_SETTYPE_DYNAMIC_LTFLAGS = -shared -module -avoid-version
IPSET_SETTYPE_ALL_MODULES = $(patsubst %.c, %.la, $(IPSET_SETTYPE_STATIC)) \
	$(IPSET_SETTYPE_DYNAMIC_MODULES)

BUILT_SOURCES = ipset_settype_check types_init.c ipset_settype_modules
CLEANFILES = ipset_settype_check types_init.c $(IPSET_SETTYPE_ALL_MODULES)

ipset_%.lo: ipset_%.c
@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`; \
@am__fastdepCC_TRUE@	$(LTCOMPILE) -D_INIT=ipset_$*_init \
		$(if $(findstring ipset_$*.c,$(IPSET_SETTYPE_STATIC)), -DTYPE_INCLUSIVE,)\
		-MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< && \
@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(LTCOMPILE) -D_INIT=ipset_$*_init \
		$(if $(findstring ipset_$*.c,$(IPSET_SETTYPE_STATIC)), -DTYPE_INCLUSIVE,)\
		-c -o $@ $<

ipset_%.la: $(lib_LTLIBRARIES) ipset_%.lo
	$(AM_V_CCLD)lobj="$(patsubst %.la, %.lo, $@)"; \
	$(LIBTOOL) --silent --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
		$(CFLAGS) $(IPSET_SETTYPE_DYNAMIC_LTFLAGS) $(LDFLAGS) -o $@ \
		-rpath $(IPSET_MODSDIR) $$lobj $(LIBS) $(top_builddir)/lib/libipset.la

types_init.c: $(IPSET_SETTYPE_STATIC_OBJECTS)
	$(AM_V_GEN)static_list=`echo $(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 "}" >> $@;

ipset_settype_check:
	@list="$(IPSET_SETTYPE_MODULES) $(IPSET_SETTYPE_STATIC_OBJECTS)"; \
	test -f $@ || echo "$$list" > $@; \
	if test "$$list" != "`cat $@`"; then \
		$(MAKE) clean; \
		echo "$$list" > $@; \
	fi

ipset_settype_modules: $(lib_LTLIBRARIES) $(IPSET_SETTYPE_DYNAMIC_OBJECTS) \
	$(IPSET_SETTYPE_DYNAMIC_MODULES)

install-data-local: install-settype-modules
uninstall-local: uninstall-settype-modules

install-settype-modules: ipset_settype_modules
	@$(NORMAL_INSTALL)
	@list='$(IPSET_SETTYPE_DYNAMIC_MODULES)'; \
	test -n "$(IPSET_MODSDIR)" || list=; \
	list2=; for p in $$list; do \
		if test -f $$p; then \
			list2="$$list2 $$p"; \
		else :; fi; \
	done; \
	test -z "$$list2" || { \
		echo " $(MKDIR_P) '$(DESTDIR)$(IPSET_MODSDIR)'"; \
		$(MKDIR_P) "$(DESTDIR)$(IPSET_MODSDIR)" || exit 1; \
		echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(IPSET_MODSDIR)'"; \
		$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(IPSET_MODSDIR)"; \
	}

uninstall-settype-modules:
	@$(NORMAL_UNINSTALL)
	@list='$(IPSET_SETTYPE_DYNAMIC_MODULES)'; \
	test -n "$(IPSET_MODSDIR)" || list=; \
	for p in $$list; do \
		$(am__strip_dir) \
		echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(IPSET_MODSDIR)/$$f'"; \
		$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(IPSET_MODSDIR)/$$f"; \
	done

.PHONY: ipset_settype_check ipset_settype_modules ipset_settype_modules-stamp \
	install-settype-modules uninstall-settype-modules
