# Configure options.  We can't put --enable-pthreads here
# since it turns *off* pthread support which we need to make clamd
# Luckily, it autodetects pthread presence and acts appropriately.

CONFOPTS :=	--enable-dependency-tracking		\
		--disable-milter			\
		--disable-clamav			\
		--disable-unrar				\
		--with-dbdir=/var/clamav		\
		--enable-dns				\
		--with-zlib=$(STAGEDIR)
ifdef CONFIG_USER_FLATFSD_FLATFSD
CONFOPTS += --sysconfdir=/etc/config
endif

ifdef CONFIG_PROP_CLAMAV_FILTER
CFLAGS += -DFILTER_RULES -DNO_UNRAR
LDFLAGS += -Wl,--unresolved-symbols=ignore-in-shared-libs
endif

all: build/build
	$(MAKE) -C build

build/build: makefile
	@chmod u+x configure
	@rm -rf build
	@mkdir build
	(cd build; sh ../configure $(CONFIGURE_OPTS) $(CONFOPTS))
	@touch build/build

clean:
	rm -rf build

LIB_NAME=$(notdir $(wildcard build/libclamav/.libs/libclamav.so.*.*.*))
romfs:
	[ -d $(ROMFSDIR)/etc/clamav ] || mkdir $(ROMFSDIR)/etc/clamav
ifndef CONFIG_USER_CLAMAV_NODB
	$(ROMFSINST) database/main.cvd /etc/clamav/main.cvd
	$(ROMFSINST) database/daily.cvd /etc/clamav/daily.cvd
endif
	$(ROMFSINST) build/libclamav/.libs/$(LIB_NAME) /lib/$(LIB_NAME)
	$(ROMFSINST) -s $(LIB_NAME) /lib/$(basename $(basename $(LIB_NAME)))
	$(ROMFSINST) -s $(LIB_NAME) /lib/libclamav.so
ifdef CONFIG_USER_CLAMAV_CLAMD
	$(ROMFSINST) build/clamd/.libs/clamd /bin/clamd
	$(ROMFSINST) etc/clamd.conf /etc/clamav/clamd.conf
endif
	$(ROMFSINST) -e CONFIG_USER_CLAMAV_CLAMDSCAN build/clamdscan/.libs/clamdscan /bin/clamdscan
	$(ROMFSINST) -e CONFIG_USER_CLAMAV_CLAMSCAN build/clamscan/.libs/clamscan /bin/clamscan
ifdef CONFIG_USER_CLAMAV_FRESHCLAM
	$(ROMFSINST) build/freshclam/.libs/freshclam /bin/freshclam
	$(ROMFSINST) etc/freshclam.conf /etc/clamav/freshclam.conf
endif
	$(ROMFSINST) -e CONFIG_USER_CLAMAV_SIGTOOL build/sigtool/sigtool /bin/sigtool
ifdef CONFIG_USER_CLAMAV_TESTS
	[ -d $(ROMFSDIR)/etc/clamav/test ] || mkdir $(ROMFSDIR)/etc/clamav/test
	for t in $(wildcard test/clam*); do $(ROMFSINST) $$t /etc/clamav/test/`basename $$t`; done
endif
