1VERSION=6.1
2CC?=@CC@
3INSTALL=@INSTALL@
4prefix=@prefix@
5CFLAGS=@CFLAGS@ @DEFS@ -Wall -I. -DVERSION=\"$(VERSION)\" -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DPREFIX=\"$(prefix)\" @DEBUG@
6LIBS=@LIBS@
7mandir=@mandir@
8sbindir=@sbindir@
9DESTDIR=
10DIRPAX=@DIRPAX@
11PAX=@PAX@
12
13HEADERS=bftpdutmp.h commands.h commands_admin.h cwd.h dirlist.h list.h login.h logging.h main.h mystring.h options.h targzip.h mypaths.h md5.h md5_loc.h config.h
14OBJS=bftpdutmp.o commands.o commands_admin.o cwd.o dirlist.o list.o login.o logging.o main.o mystring.o options.o md5.o
15SRCS=bftpdutmp.c commands.c commands_admin.c cwd.c dirlist.c list.c login.c logging.c main.c mystring.c options.c md5.c
16
17OBJS2LINK=$(OBJS) $(PAX)
18LDFLAGS=
19
20all: bftpd
21
22bftpd: $(OBJS)
23	./mksources $(DIRPAX)
24	$(CC) $(OBJS2LINK) $(LDFLAGS) $(LIBS) -o bftpd
25
26$(OBJS): Makefile
27
28%.d: %.c Makefile
29	$(CC) -MM -MT"$@ $(@:.d=.o)" -MF$@ $(CFLAGS) $(INCLUDES) $<
30
31ifneq ($(MAKECMDGOALS),clean)
32ifneq ($(MAKECMDGOALS),distclean)
33-include $(OBJS:.o=.d)
34endif
35endif
36
37%.o: %.d
38
39install: all
40	mkdir -p $(DESTDIR)/$(prefix)/sbin
41	$(INSTALL) -g 0 -m 700 -o 0 bftpd $(DESTDIR)/$(prefix)/sbin
42	mkdir -p $(DESTDIR)/$(mandir)/man8
43	$(INSTALL) -g 0 -m 644 -o 0 bftpd.8 $(DESTDIR)/$(mandir)/man8
44	mkdir -p $(DESTDIR)/$(prefix)/etc
45	[ -f $(DESTDIR)/$(prefix)/etc/bftpd.conf ] || \
46		$(INSTALL) -g 0 -m 600 -o 0 bftpd.conf $(DESTDIR)/$(prefix)/etc
47	mkdir -p $(DESTDIR)/$(prefix)/var/log
48	touch $(DESTDIR)/$(prefix)/var/log/bftpd.log
49	chmod 644 $(DESTDIR)/$(prefix)/var/log/bftpd.log
50	mkdir -p $(DESTDIR)/$(prefix)/var/run/bftpd
51	chmod 755 $(DESTDIR)/$(prefix)/var/run/bftpd
52
53clean distclean:
54	rm -f *~ $(OBJS) bftpd mksources.finished config.cache
55	[ "$(DIRPAX)" = "" ] || make -C $(DIRPAX) clean
56	rm -f *.d
57
58newversion: clean
59	cat Makefile.in | sed -e s/$(VERSION)/$(NEWVERSION)/g > Makefile.foo
60	mv Makefile.foo Makefile.in
61	./configure --enable-pax=pax --enable-libz --enable-pam
62
63uninstall:
64	rm -f $(DESTDIR)/$(prefix)/sbin/bftpd $(DESTDIR)/$(mandir)/man8/bftpd.8 \
65		$(DESTDIR)/$(prefix)/etc/bftpd.conf
66
67distribute: install
68	rm -rf dist
69	mkdir dist
70	# Build source tarball
71	rm -rf bftpd-$(VERSION)
72	mkdir bftpd-$(VERSION)
73	autoconf
74	autoheader configure.in > config.h.in
75	mkdir bftpd-$(VERSION)/doc
76	cp CHANGELOG COPYING Makefile.in $(SRCS) $(HEADERS) \
77	configure.in configure config.h.in bftpd.conf install-sh mksources \
78	bftpd.spec.in acconfig.h bftpd.8 bftpd-$(VERSION)
79	cp -r doc bftpd-$(VERSION)
80	cd bftpd-$(VERSION)/doc/en && sgml2txt bftpddoc-en.sgml
81	cd bftpd-$(VERSION) && ln -s doc/en/bftpddoc-en.txt INSTALL
82	cd bftpd-$(VERSION) && ln -s doc/en/bftpddoc-en.txt README
83	rm -f -r debian/tmp
84	cp -a debian bftpd-$(VERSION)
85	tar c bftpd-$(VERSION) | gzip -v9 > dist/bftpd-$(VERSION).tar.gz
86	cp -Lr pax bftpd-$(VERSION)
87	tar c bftpd-$(VERSION) | gzip -v9 > bftpd-$(VERSION)-pax.tar.gz
88	# Build binary RPM
89	./configure --enable-pam --enable-libz --enable-pax=pax && make install
90	cat bftpd.spec.in | sed -e 's/VERSION/$(VERSION)/g' \
91	> bftpd-$(VERSION)-1.spec
92	rpm -bb bftpd-$(VERSION)-1.spec
93	rm -f bftpd-$(VERSION)-1.spec
94	cp -a /usr/src/rpm/RPMS/i386/bftpd-$(VERSION)-1.i386.rpm \
95	dist/bftpd-$(VERSION).i386.rpm
96	# Build binary DEB
97	mv bftpd-$(VERSION)-pax.tar.gz bftpd-$(VERSION).tar.gz
98	cd bftpd-$(VERSION) && (\
99		cat debian/changelog.in | sed -e 's/VERSION/$(VERSION)/g' \
100			> debian/changelog; \
101		dpkg-buildpackage; \
102	) && cd ..
103	rm -f bftpd-$(VERSION).tar.gz
104	cp bftpd_$(VERSION)-1_i386.deb dist
105	rm -f bftpd_*
106	# Remove temporary directory
107	rm -rf bftpd-$(VERSION)
108
109tarball: clean
110	(cd .. && tar czf bftpd-$(VERSION).tar.gz bftpd)
111
112