top_builddir=../..
top_srcdir=../..
srcdir=@srcdir@

include Make.rules

.SUFFIXES: .la .lo

SHARED_CFLAGS=-DPR_SHARED_MODULE
SHARED_LDFLAGS=-avoid-version -export-dynamic -module
VPATH=@srcdir@

MODULE_NAME=mod_proxy
MODULE_OBJS=mod_proxy.o \
  lib/proxy/random.o \
  lib/proxy/db.o \
  lib/proxy/session.o \
  lib/proxy/conn.o \
  lib/proxy/netio.o \
  lib/proxy/inet.o \
  lib/proxy/str.o \
  lib/proxy/tls.o \
  lib/proxy/tls/db.o \
  lib/proxy/tls/redis.o \
  lib/proxy/uri.o \
  lib/proxy/forward.o \
  lib/proxy/reverse.o \
  lib/proxy/reverse/db.o \
  lib/proxy/reverse/redis.o \
  lib/proxy/ftp/conn.o \
  lib/proxy/ftp/ctrl.o \
  lib/proxy/ftp/data.o \
  lib/proxy/ftp/dirlist.o \
  lib/proxy/ftp/facts.o \
  lib/proxy/ftp/msg.o \
  lib/proxy/ftp/sess.o \
  lib/proxy/ftp/xfer.o

SHARED_MODULE_OBJS=mod_proxy.lo \
  lib/proxy/random.lo \
  lib/proxy/db.lo \
  lib/proxy/session.lo \
  lib/proxy/conn.lo \
  lib/proxy/netio.lo \
  lib/proxy/inet.lo \
  lib/proxy/str.lo \
  lib/proxy/tls.lo \
  lib/proxy/tls/db.lo \
  lib/proxy/uri.lo \
  lib/proxy/forward.lo \
  lib/proxy/reverse.lo \
  lib/proxy/reverse/db.lo \
  lib/proxy/reverse/redis.lo \
  lib/proxy/ftp/conn.lo \
  lib/proxy/ftp/ctrl.lo \
  lib/proxy/ftp/data.lo \
  lib/proxy/ftp/dirlist.lo \
  lib/proxy/ftp/facts.lo \
  lib/proxy/ftp/msg.lo \
  lib/proxy/ftp/sess.lo \
  lib/proxy/ftp/xfer.lo

# Necessary redefinitions
INCLUDES=-I. -I./debian/proftp_code -I../.. -Iinclude -I/usr/include/proftpd @INCLUDES@
CPPFLAGS= $(ADDL_CPPFLAGS) -DHAVE_CONFIG_H $(DEFAULT_PATHS) $(PLATFORM) $(INCLUDES)
LDFLAGS=-L../../lib @LIBDIRS@

.c.o:
	$(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@

.c.lo:
	$(LIBTOOL) --mode=compile --tag=CC $(CC) $(CPPFLAGS) $(CFLAGS) $(SHARED_CFLAGS) -c $< -o $@

shared: $(SHARED_MODULE_OBJS)
	$(LIBTOOL) --mode=link --tag=CC $(CC) -o $(MODULE_NAME).la $(SHARED_MODULE_OBJS) -rpath $(LIBEXECDIR) $(SHARED_LDFLAGS) $(SHARED_MODULE_LIBS) `cat $(MODULE_NAME).c | grep '$$Libraries:' | sed -e 's/^.*\$$Libraries: \(.*\)\\$$/\1/'`

static: $(MODULE_OBJS)
	$(AR) rc $(MODULE_NAME).a $(MODULE_OBJS)
	$(RANLIB) $(MODULE_NAME).a

install: install-misc
	if [ -f $(MODULE_NAME).la ] ; then \
		$(LIBTOOL) --mode=install --tag=CC $(INSTALL_BIN) $(MODULE_NAME).la $(DESTDIR)$(LIBEXECDIR) ; \
	fi

install-misc:
	$(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0644 cacerts.pem $(DESTDIR)$(sysconfdir)/cacerts.pem

clean:
	$(LIBTOOL) --mode=clean $(RM) $(MODULE_NAME).a $(MODULE_NAME).la *.o *.lo .libs/*.o lib/proxy/*.o lib/proxy/*.lo lib/proxy/ftp/*.o lib/proxy/ftp/*.lo lib/proxy/reverse/*.lo lib/proxy/tls/*.lo

# Run the API tests
check:
	test -z "$(ENABLE_TESTS)" || (cd t/ && $(MAKE) api-tests)

distclean: clean
	$(RM) Makefile $(MODULE_NAME).h config.status config.cache config.log *.gcda *.gcno
	-$(RM) -r .libs/ .git/ CVS/ RCS/
