1# Note: we include the additional tweaking of top_builddir, so that LIBTOOL 2# resolves to the correct place. 3top_builddir=@top_builddir@/../.. 4top_srcdir=@top_srcdir@ 5srcdir=@srcdir@ 6 7include $(top_builddir)/Make.rules 8 9.SUFFIXES: .la .lo 10 11SHARED_CFLAGS=-DPR_SHARED_MODULE 12SHARED_LDFLAGS=-avoid-version -export-dynamic -module 13VPATH=@srcdir@ 14 15MODULE_LIBS=@MODULE_LIBS@ 16 17MODULE_NAME=mod_sftp 18MODULE_OBJS=mod_sftp.o msg.o packet.o cipher.o mac.o umac.o umac128.o \ 19 compress.o kex.o keys.o crypto.o utf8.o session.o service.o kbdint.o \ 20 auth-hostbased.o auth-kbdint.o auth-password.o auth-publickey.o auth.o \ 21 disconnect.o rfc4716.o keystore.o channel.o blacklist.o agent.o \ 22 interop.o tap.o fxp.o scp.o display.o misc.o date.o bcrypt.o 23SHARED_MODULE_OBJS=mod_sftp.lo msg.lo packet.lo cipher.lo mac.lo umac.lo \ 24 umac128.lo compress.lo kex.lo keys.lo crypto.lo utf8.lo session.lo \ 25 service.lo kbdint.lo auth-hostbased.lo auth-kbdint.lo auth-password.lo \ 26 auth-publickey.lo auth.lo disconnect.lo rfc4716.lo keystore.lo channel.lo \ 27 blacklist.lo agent.lo interop.lo tap.lo fxp.lo scp.lo display.lo misc.lo \ 28 date.lo bcrypt.lo 29 30# Necessary redefinitions 31INCLUDES=-I. -I../.. -I../../include -I$(top_srcdir)/../../include @INCLUDES@ 32CPPFLAGS=$(ADDL_CPPFLAGS) -DHAVE_CONFIG_H $(DEFAULT_PATHS) $(PLATFORM) $(INCLUDES) 33LDFLAGS=-L../../lib @LDFLAGS@ 34 35# We special-case the building of umac128.o in order to use preprocessor 36# tricks to get the implementation, rather than making it be all in runtime. 37UMAC128_CPPFLAGS=-DUMAC_OUTPUT_LEN=16 -Dumac_alloc=umac128_alloc -Dumac_init=umac128_init -Dumac_new=umac128_new -Dumac_update=umac128_update -Dumac_final=umac128_final -Dumac_delete=umac128_delete -Dumac_reset=umac128_reset 38 39umac128.o: $(top_srcdir)/umac.c 40 $(CC) $(CPPFLAGS) $(CFLAGS) $(UMAC128_CPPFLAGS) -o umac128.o -c $(top_srcdir)/umac.c 41 42%.o: %.c 43 $(CC) $(CPPFLAGS) $(CFLAGS) -c $< 44 45umac128.lo: $(top_srcdir)/umac.c 46 $(LIBTOOL) --mode=compile --tag=CC $(CC) $(CPPFLAGS) $(CFLAGS) $(SHARED_CFLAGS) $(UMAC128_CPPFLAGS) -o umac128.lo -c $(top_srcdir)/umac.c 47 48%.lo: %.c 49 $(LIBTOOL) --mode=compile --tag=CC $(CC) $(CPPFLAGS) $(CFLAGS) $(SHARED_CFLAGS) -c $< 50 51shared: $(SHARED_MODULE_OBJS) 52 $(LIBTOOL) --mode=link --tag=CC $(CC) -o $(MODULE_NAME).la $(SHARED_MODULE_OBJS) -rpath $(LIBEXECDIR) $(LDFLAGS) $(SHARED_LDFLAGS) $(MODULE_LIBS) $(SHARED_MODULE_LIBS) `cat $(top_srcdir)/$(MODULE_NAME).c | grep '$$Libraries:' | sed -e 's/^.*\$$Libraries: \(.*\)\\$$/\1/'` 53 54static: $(MODULE_OBJS) 55 test -z "$(MODULE_LIBS)" || echo "$(MODULE_LIBS)" >> $(MODULE_LIBS_FILE) 56 $(AR) rc $(MODULE_NAME).a $(MODULE_OBJS) 57 $(RANLIB) $(MODULE_NAME).a 58 59install: install-headers install-misc 60 if [ -f $(MODULE_NAME).la ] ; then \ 61 $(LIBTOOL) --mode=install --tag=CC $(INSTALL_BIN) $(MODULE_NAME).la $(DESTDIR)$(LIBEXECDIR) ; \ 62 fi 63 64# BSD install -d doesn't work, so ... 65$(DESTDIR)$(includedir) $(DESTDIR)$(includedir)/proftpd: 66 @if [ ! -d $@ ]; then \ 67 mkdir -p $@; \ 68 chown $(INSTALL_USER):$(INSTALL_GROUP) $@; \ 69 chmod 0755 $@; \ 70 fi 71 72install-headers: $(DESTDIR)$(includedir)/proftpd 73 $(INSTALL_MAN) $(MODULE_NAME).h $(DESTDIR)$(includedir)/proftpd/$(MODULE_NAME).h 74 75install-misc: 76 $(INSTALL) -d -m 0755 $(DESTDIR)$(sysconfdir)/proftpd 77 $(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0644 $(top_srcdir)/dhparams.pem $(DESTDIR)$(sysconfdir)/proftpd/dhparams.pem.sample 78 $(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0644 $(top_srcdir)/blacklist.dat $(DESTDIR)$(sysconfdir)/proftpd/blacklist.dat.sample 79 80clean: 81 $(LIBTOOL) --mode=clean $(RM) $(MODULE_NAME).a $(MODULE_NAME).la *.o *.lo .libs/*.o 82 83distclean: clean 84 $(RM) Makefile $(MODULE_NAME).h config.status config.cache config.log *.gcda *.gcno 85 -$(RM) -r CVS/ RCS/ 86