### General stuff ## Override this if needed CC = gcc PROG= ftpd MAN= ftpchroot.5 xferlog.5 ftpd.8 OBJS= ftpd.o ftpcmd.o logwtmp.o popen.o CLEANFILES= ftpcmd.c LIBS= ../port/libbsdport.a -lcrypt ### Common flags and features OPT_CFLAGS= -Wall -O2 -Wno-unused -Wno-uninitialized CFLAGS= ${OPT_CFLAGS} -I../port -DLINUX -DVIRTUAL_HOSTING ## Large file support CFLAGS+= -D_LARGEFILE_SOURCE CFLAGS+= -D_FILE_OFFSET_BITS=64 ## Use sendfile(2). It will increase the performance, but it may be ## incompatible with -D_FILE_OFFSET_BITS=64 #CFLAGS+= -DUSE_SENDFILE ## Support for "SITE MD5" command CFLAGS+= -DUSE_MD5 ## IPv6 support CFLAGS+= -DINET6 ##CFLAGS+= -DSETPROCTITLE -DOLD_SETPROCTITLE ### ### TLS/SSL support ## Comment lines below to disable TLS/SSL support CFLAGS+= -DUSE_SSL LIBS+= -lssl -lcrypto ## Next lines must present regardless of TLS/SSL support state OBJS+= sslapp.o ssl_port.o ssl_port_ftpd.o CFLAGS+= -I../ssl ### ### Internal LS support CFLAGS+= -DINTERNAL_LS LSDIR= ../contrib/ls LSPATH= ${CURDIR}/${LSDIR} CFLAGS+= -Dmain=ls_main -I${LSPATH} OBJS+= ls.o cmp.o print.o util.o bsdport.o ### ### Support for tcp_wrappers CFLAGS+=-DTCPWRAPPERS LIBS+= -lwrap -lnsl ### ### Support for shadow.h ## allow usage of shadow passwd file in some shadow implementations CFLAGS+= -DHAVE_SHADOW_H ### ### PAM support ## Normally next lines will be included from ./Makefile.inc with help of the ## config.sh script. #CFLAGS+= -DUSE_PAM #LIBS+= -lpam ### ### You shouldn't need to edit anything below include ${CURDIR}/../Makefile.inc include ${CURDIR}/Makefile.inc $(PROG): $(OBJS) $(LIBS) man $(CC) -o $(PROG) $(CFLAGS) $(OBJS) $(LIBS) man: $(MAN) @for i in $(MAN); \ do (gzip -9 -c $$i>$$i.gz) || exit; \ done clean: rm -f *.o $(PROG) $(CLEANFILES) @for i in $(MAN); \ do (rm -f $$i.gz) || exit; \ done ftpcmd.c: ftpcmd.y @if [ -f /usr/bin/byacc ]; then \ echo "/usr/bin/byacc ftpcmd.y"; \ /usr/bin/byacc ftpcmd.y; \ else \ if [ -f /usr/local/bin/byacc ]; then \ echo "/usr/local/bin/byacc ftpcmd.y"; \ /usr/local/bin/byacc ftpcmd.y; \ else \ echo "WARNING: Can not find byacc, trying to use yacc."; \ echo "WARNING: Please note that Berkeley Yacc is required."; \ if [ -f /usr/bin/yacc ]; then \ echo "/usr/bin/yacc ftpcmd.y"; \ /usr/bin/yacc ftpcmd.y; \ else \ if [ -f /usr/local/bin/yacc ]; then \ echo "/usr/local/bin/yacc ftpcmd.y"; \ /usr/local/bin/yacc ftpcmd.y; \ else \ echo "ERROR: Can not find Berkeley Yacc."; \ fi; \ fi; \ fi; \ fi; mv y.tab.c ftpcmd.c ftpcmd.o: ftpcmd.c $(CC) -c $(CFLAGS) ftpcmd.c sslapp.o: ../ssl/sslapp.c $(CC) -c $(CFLAGS) ../ssl/sslapp.c ssl_port.o: ../ssl/ssl_port.c $(CC) -c $(CFLAGS) ../ssl/ssl_port.c ssl_port_ftpd.o: ../ssl/ssl_port_ftpd.c $(CC) -c $(CFLAGS) ../ssl/ssl_port_ftpd.c ls.o: ${LSPATH}/ls.c $(CC) -c $(CFLAGS) ${LSPATH}/ls.c cmp.o: ${LSPATH}/cmp.c $(CC) -c $(CFLAGS) ${LSPATH}/cmp.c print.o: ${LSPATH}/print.c $(CC) -c $(CFLAGS) ${LSPATH}/print.c util.o: ${LSPATH}/util.c $(CC) -c $(CFLAGS) ${LSPATH}/util.c bsdport.o: ${LSPATH}/bsdport.c $(CC) -c $(CFLAGS) ${LSPATH}/bsdport.c