### 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
syntax highlighted by Code2HTML, v. 0.9.1