#
# Files from which this is generated (inside directory `autoconf/make'):
#
# package.mk # package name and distribution details
# vars.mk # compilation, shell and linking variables
# filelist.mk # lists of files (autogenerated)
# unreal.mk # phony targets
# modules.mk # module linking rules (autogenerated)
# rules.mk # compilation rules
# link.mk # real top-level targets
# depend.mk # dependencies (autogenerated)
#
#
#
# Variables for Make.
#
srcdir = .
prefix =
exec_prefix = ${prefix}
bindir = ${exec_prefix}/bin
infodir = ${prefix}/info
mandir = ${prefix}/man
etcdir = /etc
datadir = ${prefix}/share
sbindir = ${exec_prefix}/sbin
SHELL = /bin/sh
CC = cc
LD = ld
DO_GZIP = gzip -f9
INSTALL = /usr/bin/install -c -o root -g wheel
INSTALL_DATA = install -o root -g wheel -m 444
UNINSTALL = rm -f
LDFLAGS = -r
DEFS = -DHAVE_CONFIG_H
CFLAGS = -fno-common -I/usr/include/mysql -fno-omit-frame-pointer -pipe -no-cpp-precomp
CPPFLAGS = -I/usr/local/include -I$(srcdir)/src/include -Isrc/include $(DEFS)
LIBS = -L/usr/local/lib -lgdbm -pipe -no-cpp-precomp -L/usr/lib/mysql -lmysqlclient -lz -lm
testdb := /tmp/qsftest.db
testfile := /tmp/qsftest.txt
testbackends := obtree btree list GDBM MySQL
alltarg = qsf
# EOF
#
# Package name, version, and distribution files.
#
package = qsf
version = 1.2.7
PACKAGE = qsf
distfiles = \
$(srcdir)/README \
$(srcdir)/autoconf \
$(srcdir)/configure \
$(srcdir)/doc \
$(srcdir)/src \
$(srcdir)/test \
$(srcdir)/debian \
$(srcdir)/extra
# EOF
# Automatically generated file listings
#
# Creation time: Tue Aug 28 14:27:40 BST 2007
allsrc = src/library.c \
src/md5.c \
src/db/obtree.c \
src/db/list.c \
src/db/main.c \
src/db/gdbm.c \
src/db/btree.c \
src/db/sqlite.c \
src/db/mysql.c \
src/main/help.c \
src/main/options.c \
src/main/version.c \
src/main/main.c \
src/main/log.c \
src/main/tick.c \
src/spam/update.c \
src/spam/merge.c \
src/spam/alloc.c \
src/spam/train.c \
src/spam/cksum.c \
src/spam/benchmark.c \
src/spam/check.c \
src/spam/plaintext.c \
src/spam/dump.c \
src/spam/token.c \
src/spam/db.c \
src/spam/prune.c \
src/spam/allowlist.c \
src/message/parse.c \
src/message/alloc.c \
src/message/read.c \
src/message/rfc2047.c \
src/message/header.c \
src/message/qp.c \
src/message/dump.c \
src/message/base64.c \
src/tests/gtube.c \
src/tests/main.c \
src/tests/imgcount.c \
src/tests/urls.c \
src/tests/gibberish.c \
src/tests/attached_files.c \
src/tests/html.c \
src/mailbox/alloc.c \
src/mailbox/count.c \
src/mailbox/select.c \
src/mailbox/scan.c
allobj = src/library.o \
src/md5.o \
src/db/obtree.o \
src/db/list.o \
src/db/main.o \
src/db/gdbm.o \
src/db/btree.o \
src/db/sqlite.o \
src/db/mysql.o \
src/main/help.o \
src/main/options.o \
src/main/version.o \
src/main/main.o \
src/main/log.o \
src/main/tick.o \
src/spam/update.o \
src/spam/merge.o \
src/spam/alloc.o \
src/spam/train.o \
src/spam/cksum.o \
src/spam/benchmark.o \
src/spam/check.o \
src/spam/plaintext.o \
src/spam/dump.o \
src/spam/token.o \
src/spam/db.o \
src/spam/prune.o \
src/spam/allowlist.o \
src/message/parse.o \
src/message/alloc.o \
src/message/read.o \
src/message/rfc2047.o \
src/message/header.o \
src/message/qp.o \
src/message/dump.o \
src/message/base64.o \
src/tests/gtube.o \
src/tests/main.o \
src/tests/imgcount.o \
src/tests/urls.o \
src/tests/gibberish.o \
src/tests/attached_files.o \
src/tests/html.o \
src/mailbox/alloc.o \
src/mailbox/count.o \
src/mailbox/select.o \
src/mailbox/scan.o \
src/db.o \
src/main.o \
src/spam.o \
src/message.o \
src/tests.o \
src/mailbox.o
alldep = src/library.d \
src/md5.d \
src/db/obtree.d \
src/db/list.d \
src/db/main.d \
src/db/gdbm.d \
src/db/btree.d \
src/db/sqlite.d \
src/db/mysql.d \
src/main/help.d \
src/main/options.d \
src/main/version.d \
src/main/main.d \
src/main/log.d \
src/main/tick.d \
src/spam/update.d \
src/spam/merge.d \
src/spam/alloc.d \
src/spam/train.d \
src/spam/cksum.d \
src/spam/benchmark.d \
src/spam/check.d \
src/spam/plaintext.d \
src/spam/dump.d \
src/spam/token.d \
src/spam/db.d \
src/spam/prune.d \
src/spam/allowlist.d \
src/message/parse.d \
src/message/alloc.d \
src/message/read.d \
src/message/rfc2047.d \
src/message/header.d \
src/message/qp.d \
src/message/dump.d \
src/message/base64.d \
src/tests/gtube.d \
src/tests/main.d \
src/tests/imgcount.d \
src/tests/urls.d \
src/tests/gibberish.d \
src/tests/attached_files.d \
src/tests/html.d \
src/mailbox/alloc.d \
src/mailbox/count.d \
src/mailbox/select.d \
src/mailbox/scan.d
#
# Rules for all phony targets.
#
.PHONY: all help dep depend depclean make \
check test memtest benchmark bigbenchmark \
clean distclean cvsclean \
index manhtml indent indentclean \
changelog doc dist release \
install uninstall \
rpmbuild srpm rpm deb
all: $(alltarg)
help:
@echo 'This Makefile has the following utility targets:'
@echo
@echo ' all build all binary targets'
@echo ' doc regenerate text version of man page'
@echo ' install install compiled package and manual'
@echo ' uninstall uninstall the package'
@echo ' check / test run standardised tests on the compiled binary'
@echo
@echo 'Developer targets:'
@echo
@echo ' make rebuild the Makefile (after adding new files)'
@echo ' dep / depend rebuild .d (dependency) files'
@echo ' clean remove .o (object) and .c~ (backup) files'
@echo ' depclean remove .d (dependency) files'
@echo ' indentclean remove files left over from "make indent"'
@echo ' distclean remove everything not distributed'
@echo ' cvsclean remove everything not in CVS'
@echo
@echo ' index generate an HTML index of source code'
@echo ' manhtml output HTML man page to stdout'
@echo ' indent reformat all source files with "indent"'
@echo ' changelog generate doc/changelog from CVS log info'
@echo
@echo ' memtest run "make test" using valgrind to find faults'
@echo ' benchmark run benchmarking tests'
@echo ' bigbenchmark run many benchmarking tests to make a graph'
@echo
@echo ' dist create a source tarball for distribution'
@echo ' rpm build a binary RPM (passes $$RPMFLAGS to RPM)'
@echo ' srpm build a source RPM (passes $$RPMFLAGS to RPM)'
@echo ' deb build a binary Debian package'
@echo ' release dist+rpm+srpm'
@echo
@echo 'Note that "test", "memtest", and "{,big}benchmark" can be passed'
@echo 'additional environment variables: BACKENDS is a space separated'
@echo 'list of backends to test (default is to test all) and MYSQLDB'
@echo 'is a database spec for testing the MySQL backend, in the same'
@echo 'format as for qsf -d, eg MYSQLDB=database=foo;host=...'
@echo
make:
echo > $(srcdir)/autoconf/make/filelist.mk
echo > $(srcdir)/autoconf/make/modules.mk
cd $(srcdir); \
bash autoconf/scripts/makemake.sh \
autoconf/make/filelist.mk \
autoconf/make/modules.mk
sh ./config.status
dep depend: $(alldep)
echo '#' > $(srcdir)/autoconf/make/depend.mk
echo '# Dependencies.' >> $(srcdir)/autoconf/make/depend.mk
echo '#' >> $(srcdir)/autoconf/make/depend.mk
echo >> $(srcdir)/autoconf/make/depend.mk
cat $(alldep) >> $(srcdir)/autoconf/make/depend.mk
sh ./config.status
clean:
rm -f $(allobj)
find . -type f -name "*.c~" -exec rm -f '{}' ';'
rm -f memtest-out-*
rm -f benchmark-report benchmark-data-* benchmark-graph-*
depclean:
rm -f $(alldep)
indentclean:
cd $(srcdir) && for FILE in $(allsrc); do rm -fv ./$${FILE}~; done
distclean: clean depclean
rm -f $(alltarg) src/include/config.h
rm -rf $(package)-$(version).tar* $(package)-$(version) BUILD-DEB
rm -f *.rpm *.deb
rm -f *.html config.*
rm -f test.db trace
rm -f .test-spam .test-non-spam
rm -f .test-benchmark-spam .test-benchmark-non-spam
rm -f .testdump-a .testdump-b .testdump-c
rm -f fakemail mboxsplit gmon.out
rm Makefile
cvsclean: distclean
rm -f doc/lsm
rm -f doc/$(package).spec
rm -f doc/quickref.1
rm -f doc/quickref.txt
rm -f configure
rm -f doc/changelog ChangeLog
cat /dev/null > $(srcdir)/autoconf/make/depend.mk
cat /dev/null > $(srcdir)/autoconf/make/filelist.mk
cat /dev/null > $(srcdir)/autoconf/make/modules.mk
doc: doc/quickref.txt
index:
(cd $(srcdir); sh autoconf/scripts/index.sh $(srcdir)) > index.html
manhtml:
@man2html ./doc/quickref.1 \
| sed -e '1,/<BODY/d' -e '/<\/BODY/,$$d' \
-e 's|<A [^>]*> </A>||ig' \
-e 's|<A [^>]*>\([^<]*\)</A>|\1|ig' \
-e '/<H1/d' -e 's|\(</H[0-9]>\)|\1<P>|ig' \
-e 's/<DL COMPACT>/<DL>/ig' \
-e 's/<[0-9A-Za-z_.-]\+@[0-9A-Za-z_.-]\+>//g' \
-e 's|<I>\(http://.*\)</I>|<A HREF="\1">\1</A>|ig' \
| sed -e '1,/<HR/d' -e '/<H2>Index/,/<HR/d' \
indent:
cd $(srcdir) && indent -npro -kr -i8 -cd42 -c45 $(allsrc)
changelog:
@which cvs2cl >/dev/null 2>&1 || ( \
echo '*** Please put cvs2cl in your PATH'; \
echo '*** Get it from http://www.red-bean.com/cvs2cl/'; \
exit 1; \
)
rm -f $(srcdir)/ChangeLog
cd $(srcdir) && cvs2cl -S -P
mv -f $(srcdir)/ChangeLog doc/changelog
dist: doc
test -d $(srcdir)/CVS && $(MAKE) changelog || :
rm -rf $(package)-$(version)
mkdir $(package)-$(version)
cp -dprf Makefile $(distfiles) $(package)-$(version)
cd $(package)-$(version); $(MAKE) distclean
-cp -dpf doc/changelog $(package)-$(version)/doc/
cp -dpf doc/lsm $(package)-$(version)/doc/
cp -dpf doc/$(package).spec $(package)-$(version)/doc/
cp -dpf doc/quickref.txt $(package)-$(version)/doc/
chmod 644 `find $(package)-$(version) -type f -print`
chmod 755 `find $(package)-$(version) -type d -print`
chmod 755 `find $(package)-$(version)/autoconf/scripts`
chmod 755 $(package)-$(version)/configure
chmod 755 $(package)-$(version)/debian/rules
rm -rf DUMMY `find $(package)-$(version) -type d -name CVS` \
`find $(package)-$(version) -type f -name .cvsignore`
tar cf $(package)-$(version).tar $(package)-$(version)
rm -rf $(package)-$(version)
-cat $(package)-$(version).tar \
| bzip2 > $(package)-$(version).tar.bz2 \
|| rm -f $(package)-$(version).tar.bz2
$(DO_GZIP) $(package)-$(version).tar
.test-spam:
$(CC) $(CFLAGS) $(CPPFLAGS) -o fakemail $(srcdir)/autoconf/scripts/fakemail.c
./fakemail \
$(srcdir)/test/tokenlist-non-spam 15 > .test-non-spam
./fakemail \
$(srcdir)/test/tokenlist-spam 15 > .test-spam
check test: $(package) .test-spam
@$(CC) -o mboxsplit $(srcdir)/autoconf/scripts/mboxsplit.c
@FAIL=0; PROG=./$(package); TESTDB=$(testdb); TESTFILE=$(testfile); \
export PROG TESTDB TESTFILE; \
test "x$$BACKENDS" = x && BACKENDS="$(testbackends)"; \
CREATEDTABLE=""; \
if test x$$MYSQLDB = x; then \
CREATEDTABLE=qsftest$$RANDOM; \
if mysql test -Be "CREATE TABLE $$CREATEDTABLE ( key1 BIGINT UNSIGNED NOT NULL, key2 BIGINT UNSIGNED NOT NULL, token VARCHAR(64) DEFAULT '' NOT NULL, value1 INT UNSIGNED NOT NULL, value2 INT UNSIGNED NOT NULL, value3 INT UNSIGNED NOT NULL, PRIMARY KEY (key1,key2,token), KEY (key1), KEY (key2), KEY (token) );" >/dev/null 2>&1; then \
MYSQLDB="database=test;host=localhost;port=3306;user=$$USER;pass=;table=$$CREATEDTABLE;key1=0;key2=0"; \
else \
CREATEDTABLE=""; \
fi; \
fi; \
for BACKEND in $$BACKENDS; do \
SKIPMYSQL=0; \
test $$BACKEND = MySQL && test x$$MYSQLDB = x && SKIPMYSQL=1; \
test $$BACKEND = mysql && test x$$MYSQLDB = x && SKIPMYSQL=1; \
test $$SKIPMYSQL = 1 && echo \*\*\* MySQL tests disabled - define \$$MYSQLDB; \
test $$SKIPMYSQL = 1 && echo \*\*\* to enable \(see man page for spec format\); \
test $$SKIPMYSQL = 1 && continue; \
TESTDB=$(testdb); \
rm -f $$TESTDB; \
export BACKEND; \
test $$BACKEND = MySQL && TESTDB=$$MYSQLDB; \
test $$BACKEND = mysql && TESTDB=$$MYSQLDB; \
for SCRIPT in $(srcdir)/test/t[0-9]*; do \
test -f $$SCRIPT || continue; \
sed -n 's/^# *TEST: */'"$$BACKEND"': /p' < $$SCRIPT | tr "\n" ' '; \
STATUS=0; \
sh -e $$SCRIPT || STATUS=1; \
test $$STATUS -eq 1 && FAIL=1; \
test $$STATUS -eq 1 && echo FAILED || echo OK; \
done; rm -f $$TESTDB $$TESTFILE; \
done; \
test x$$CREATEDTABLE = x || mysql test -Be "DROP TABLE $$CREATEDTABLE;" >/dev/null 2>&1; \
exit $$FAIL
memtest: $(package) .test-spam
@which valgrind >/dev/null 2>/dev/null || (\
echo These tests require valgrind to be installed.; \
echo See http://valgrind.kde.org/ for details.; \
exit 1; \
)
@$(CC) -o mboxsplit $(srcdir)/autoconf/scripts/mboxsplit.c
@FAIL=0; \
PROG="valgrind --tool=memcheck --leak-check=yes --db-attach=no ./$(package)"; \
TESTDB=$(testdb); TESTFILE=$(testfile); \
export PROG TESTDB TESTFILE; \
test "x$$BACKENDS" = x && BACKENDS="$(testbackends)"; \
CREATEDTABLE=""; \
if test x$$MYSQLDB = x; then \
CREATEDTABLE=qsftest$$RANDOM; \
if mysql test -Be "CREATE TABLE $$CREATEDTABLE ( key1 BIGINT UNSIGNED NOT NULL, key2 BIGINT UNSIGNED NOT NULL, token VARCHAR(64) DEFAULT '' NOT NULL, value1 INT UNSIGNED NOT NULL, value2 INT UNSIGNED NOT NULL, value3 INT UNSIGNED NOT NULL, PRIMARY KEY (key1,key2,token), KEY (key1), KEY (key2), KEY (token) );" >/dev/null 2>&1; then \
MYSQLDB="database=test;host=localhost;port=3306;user=$$USER;pass=;table=$$CREATEDTABLE;key1=0;key2=0"; \
else \
CREATEDTABLE=""; \
fi; \
fi; \
for BACKEND in $$BACKENDS; do \
SKIPMYSQL=0; \
test $$BACKEND = MySQL && test x$$MYSQLDB = x && SKIPMYSQL=1; \
test $$BACKEND = mysql && test x$$MYSQLDB = x && SKIPMYSQL=1; \
test $$SKIPMYSQL = 1 && echo \*\*\* MySQL tests disabled - define \$$MYSQLDB; \
test $$SKIPMYSQL = 1 && echo \*\*\* to enable \(see man page for spec format\); \
test $$SKIPMYSQL = 1 && continue; \
TESTDB=$(testdb); \
rm -f $$TESTDB; \
export BACKEND; \
test $$BACKEND = MySQL && TESTDB=$$MYSQLDB; \
test $$BACKEND = mysql && TESTDB=$$MYSQLDB; \
for SCRIPT in $(srcdir)/test/t[0-9]*; do \
test -f $$SCRIPT || continue; \
TESTOUT=memtest-out-$$BACKEND-`basename $$SCRIPT`; \
sed -n 's/^# *TEST: */'"$$BACKEND"': /p' < $$SCRIPT | tr "\n" ' '; \
STATUS=0; \
sh -e $$SCRIPT >$$TESTOUT 2>&1 || STATUS=1; \
grep '^==[0-9]\+== ERROR SUMMARY: ' $$TESTOUT \
| grep -q -v '^==[0-9]\+== ERROR SUMMARY: 0 ' && STATUS=2; \
test $$STATUS -eq 1 && FAIL=1; \
test $$STATUS -eq 2 && FAIL=1; \
test $$STATUS -eq 1 && echo FAILED, MEMTEST OK; \
test $$STATUS -eq 2 && echo FAILED MEMTEST; \
test $$STATUS -eq 0 && echo OK; \
done; rm -f $$TESTDB $$TESTFILE; \
done; \
test x$$CREATEDTABLE = x || mysql test -Be "DROP TABLE $$CREATEDTABLE;" >/dev/null 2>&1; \
exit $$FAIL
.test-benchmark-spam:
$(CC) $(CFLAGS) $(CPPFLAGS) -o fakemail $(srcdir)/autoconf/scripts/fakemail.c
./fakemail \
$(srcdir)/test/tokenlist-non-spam 1500 > .test-benchmark-non-spam
./fakemail \
$(srcdir)/test/tokenlist-spam 1500 > .test-benchmark-spam
benchmark: $(package) .test-benchmark-spam
@test "x$$BACKENDS" = x && BACKENDS="$(testbackends)"; \
CREATEDTABLE=""; \
if test x$$MYSQLDB = x; then \
CREATEDTABLE=qsftest$$RANDOM; \
if mysql test -Be "CREATE TABLE $$CREATEDTABLE ( key1 BIGINT UNSIGNED NOT NULL, key2 BIGINT UNSIGNED NOT NULL, token VARCHAR(64) DEFAULT '' NOT NULL, value1 INT UNSIGNED NOT NULL, value2 INT UNSIGNED NOT NULL, value3 INT UNSIGNED NOT NULL, PRIMARY KEY (key1,key2,token), KEY (key1), KEY (key2), KEY (token) );" >/dev/null 2>&1; then \
MYSQLDB="database=test;host=localhost;port=3306;user=$$USER;pass=;table=$$CREATEDTABLE;key1=0;key2=0"; \
else \
CREATEDTABLE=""; \
fi; \
fi; \
for BACKEND in $$BACKENDS; do \
SKIPMYSQL=0; \
test $$BACKEND = MySQL && test x$$MYSQLDB = x && SKIPMYSQL=1; \
test $$BACKEND = mysql && test x$$MYSQLDB = x && SKIPMYSQL=1; \
test $$SKIPMYSQL = 1 && echo \*\*\* MySQL tests disabled - define \$$MYSQLDB; \
test $$SKIPMYSQL = 1 && echo \*\*\* to enable \(see man page for spec format\); \
test $$SKIPMYSQL = 1 && continue; \
TESTDB=$$BACKEND; \
test $$BACKEND = MySQL && TESTDB=mysql:$$MYSQLDB; \
test $$BACKEND = mysql && TESTDB=mysql:$$MYSQLDB; \
./$(package) -d $$TESTDB -B .test-benchmark-spam .test-benchmark-non-spam; \
done; \
test x$$CREATEDTABLE = x || mysql test -Be "DROP TABLE $$CREATEDTABLE;" >/dev/null 2>&1
bigbenchmark: $(package) .test-benchmark-spam
rm -f benchmark-report benchmark-data-* benchmark-graph-*
test "x$$BACKENDS" = x && BACKENDS="$(testbackends)"; \
echo "set title 'Training times'" > benchmark-graph-train; \
echo "set title 'Classification times'" > benchmark-graph-class; \
echo "set title 'Accuracy of trained database'" > benchmark-graph-accuracy; \
for GRAPH in train class accuracy; do \
CMD=""; \
for BACKEND in $$BACKENDS; do \
CMD="$$CMD, 'benchmark-data-$$GRAPH-$$BACKEND' title '$$BACKEND' with linespoints"; \
done; \
echo "$$CMD" | sed -e 's/^,/plot/' -e 's/SQLite2/sqlite/g' >> benchmark-graph-$$GRAPH; \
done
for NUM in 5 6 7 8 9 10 11 12 14 16 18 20 22 24 26 28 30 35 40 45 50 55 60 65 70 80 90 100 120 140 160 180 200 250 300 350 400 450 500 600 700 800 900 1000 1100 1200 1300 1400 1500; do \
./fakemail $(srcdir)/test/tokenlist-non-spam $$NUM > .test-benchmark-non-spam; \
./fakemail $(srcdir)/test/tokenlist-spam $$NUM > .test-benchmark-spam; \
$(MAKE) benchmark | tee benchmark-report; \
awk -f $(srcdir)/autoconf/scripts/benchmark.awk < benchmark-report; \
$(MAKE) benchmark | tee benchmark-report; \
awk -f $(srcdir)/autoconf/scripts/benchmark.awk < benchmark-report; \
$(MAKE) benchmark | tee benchmark-report; \
awk -f $(srcdir)/autoconf/scripts/benchmark.awk < benchmark-report; \
done
@echo
@echo 'You can now load the files "benchmark-graph-*" into "gnuplot".'
@echo
install: all doc
$(srcdir)/autoconf/scripts/mkinstalldirs \
"$(DESTDIR)/$(bindir)"
$(srcdir)/autoconf/scripts/mkinstalldirs \
"$(DESTDIR)/$(mandir)/man1"
$(INSTALL) -m 755 $(package) \
"$(DESTDIR)/$(bindir)/$(package)"
$(INSTALL) -m 644 doc/quickref.1 \
"$(DESTDIR)/$(mandir)/man1/$(package).1"
$(DO_GZIP) "$(DESTDIR)/$(mandir)/man1/$(package).1" || :
uninstall:
$(UNINSTALL) "$(DESTDIR)/$(bindir)/$(package)"
$(UNINSTALL) "$(DESTDIR)/$(mandir)/man1/$(package).1"
$(UNINSTALL) "$(DESTDIR)/$(mandir)/man1/$(package).1.gz"
rpmbuild:
echo macrofiles: `rpm --showrc \
| grep ^macrofiles \
| cut -d : -f 2- \
| sed 's,^[^/]*/,/,'`:`pwd`/rpmmacros > rpmrc
echo %_topdir `pwd`/rpm > rpmmacros
rm -rf rpm
mkdir rpm
mkdir rpm/SPECS rpm/BUILD rpm/SOURCES rpm/RPMS rpm/SRPMS
-cat /usr/lib/rpm/rpmrc /etc/rpmrc $$HOME/.rpmrc \
| grep -hsv ^macrofiles \
>> rpmrc
srpm:
-test -e $(package)-$(version).tar.gz || $(MAKE) dist
-test -e rpmrc || $(MAKE) rpmbuild
rpmbuild $(RPMFLAGS) --rcfile=rpmrc -ts $(package)-$(version).tar.bz2
mv rpm/SRPMS/*$(package)-*.rpm .
rm -rf rpm rpmmacros rpmrc
rpm:
-test -e $(package)-$(version).tar.gz || $(MAKE) dist
-test -e rpmrc || $(MAKE) rpmbuild
rpmbuild $(RPMFLAGS) --rcfile=rpmrc -tb $(package)-$(version).tar.bz2
rpmbuild $(RPMFLAGS) --rcfile=rpmrc -tb --with static $(package)-$(version).tar.bz2
mv rpm/RPMS/*/$(package)-*.rpm .
rm -rf rpm rpmmacros rpmrc
deb: dist
rm -rf BUILD-DEB
mkdir BUILD-DEB
cd BUILD-DEB && tar xzf ../$(package)-$(version).tar.gz
cd BUILD-DEB && cd $(package)-$(version) && dpkg-buildpackage -rfakeroot
mv BUILD-DEB/*.deb .
rm -rf BUILD-DEB
release: dist rpm srpm
# Automatically generated module linking rules
#
# Creation time: Tue Aug 28 14:27:40 BST 2007
src/db.o: src/db/btree.o src/db/gdbm.o src/db/list.o src/db/main.o src/db/mysql.o src/db/obtree.o src/db/sqlite.o
$(LD) $(LDFLAGS) -o $@ src/db/btree.o src/db/gdbm.o src/db/list.o src/db/main.o src/db/mysql.o src/db/obtree.o src/db/sqlite.o
src/main.o: src/main/help.o src/main/log.o src/main/main.o src/main/options.o src/main/tick.o src/main/version.o
$(LD) $(LDFLAGS) -o $@ src/main/help.o src/main/log.o src/main/main.o src/main/options.o src/main/tick.o src/main/version.o
src/spam.o: src/spam/alloc.o src/spam/allowlist.o src/spam/benchmark.o src/spam/check.o src/spam/cksum.o src/spam/db.o src/spam/dump.o src/spam/merge.o src/spam/plaintext.o src/spam/prune.o src/spam/token.o src/spam/train.o src/spam/update.o
$(LD) $(LDFLAGS) -o $@ src/spam/alloc.o src/spam/allowlist.o src/spam/benchmark.o src/spam/check.o src/spam/cksum.o src/spam/db.o src/spam/dump.o src/spam/merge.o src/spam/plaintext.o src/spam/prune.o src/spam/token.o src/spam/train.o src/spam/update.o
src/message.o: src/message/alloc.o src/message/base64.o src/message/dump.o src/message/header.o src/message/parse.o src/message/qp.o src/message/read.o src/message/rfc2047.o
$(LD) $(LDFLAGS) -o $@ src/message/alloc.o src/message/base64.o src/message/dump.o src/message/header.o src/message/parse.o src/message/qp.o src/message/read.o src/message/rfc2047.o
src/tests.o: src/tests/attached_files.o src/tests/gibberish.o src/tests/gtube.o src/tests/html.o src/tests/imgcount.o src/tests/main.o src/tests/urls.o
$(LD) $(LDFLAGS) -o $@ src/tests/attached_files.o src/tests/gibberish.o src/tests/gtube.o src/tests/html.o src/tests/imgcount.o src/tests/main.o src/tests/urls.o
src/mailbox.o: src/mailbox/alloc.o src/mailbox/count.o src/mailbox/scan.o src/mailbox/select.o
$(LD) $(LDFLAGS) -o $@ src/mailbox/alloc.o src/mailbox/count.o src/mailbox/scan.o src/mailbox/select.o
#
# Compilation rules.
#
#
.SUFFIXES: .c .d .o
.c.o:
$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
.c.d:
sh $(srcdir)/autoconf/scripts/depend.sh \
$(CC) $< $(<:%.c=%) $(srcdir) $(CFLAGS) $(CPPFLAGS) > $@
doc/quickref.txt: doc/quickref.1
man doc/quickref.1 | col -b | cat -s > doc/quickref.txt || :
chmod 644 doc/quickref.txt || :
#
# Targets.
#
#
mainobjs := src/main.o src/md5.o src/library.o src/db.o src/message.o src/mailbox.o src/spam.o src/tests.o
$(package): $(mainobjs)
$(CC) $(CFLAGS) -o $@ $(mainobjs) $(LIBS)
$(package)-static: $(mainobjs)
$(CC) $(CFLAGS) -static -o $@ $(mainobjs) $(LIBS)
# EOF
#
# Dependencies.
#
src/library.d src/library.o: src/library.c src/include/config.h
src/md5.d src/md5.o: src/md5.c src/include/md5.h src/include/config.h
src/db/obtree.d src/db/obtree.o: src/db/obtree.c src/include/config.h src/include/database.h src/include/log.h
src/db/list.d src/db/list.o: src/db/list.c src/include/config.h src/include/database.h src/include/log.h
src/db/main.d src/db/main.o: src/db/main.c src/include/config.h src/include/database.h
src/db/gdbm.d src/db/gdbm.o: src/db/gdbm.c src/include/config.h src/include/database.h
src/db/btree.d src/db/btree.o: src/db/btree.c src/include/config.h src/include/database.h src/include/log.h
src/db/sqlite.d src/db/sqlite.o: src/db/sqlite.c src/include/config.h src/include/database.h src/include/log.h
src/db/mysql.d src/db/mysql.o: src/db/mysql.c src/include/config.h src/include/database.h src/include/log.h
src/main/help.d src/main/help.o: src/main/help.c src/include/config.h
src/main/options.d src/main/options.o: src/main/options.c src/include/config.h src/include/options.h src/include/spam.h src/include/message.h src/include/log.h
src/main/version.d src/main/version.o: src/main/version.c src/include/config.h
src/main/main.d src/main/main.o: src/main/main.c src/include/config.h src/include/options.h src/include/message.h src/include/spam.h src/include/database.h src/include/log.h
src/main/log.d src/main/log.o: src/main/log.c src/include/config.h src/include/log.h
src/main/tick.d src/main/tick.o: src/main/tick.c src/include/config.h
src/spam/update.d src/spam/update.o: src/spam/update.c src/include/config.h src/spam/spami.h src/include/options.h src/include/message.h src/include/database.h src/include/spam.h
src/spam/merge.d src/spam/merge.o: src/spam/merge.c src/include/config.h src/spam/spami.h src/include/options.h src/include/message.h src/include/database.h src/include/spam.h
src/spam/alloc.d src/spam/alloc.o: src/spam/alloc.c src/include/config.h src/spam/spami.h src/include/options.h src/include/message.h src/include/database.h src/include/spam.h
src/spam/train.d src/spam/train.o: src/spam/train.c src/include/config.h src/include/mailbox.h src/include/options.h src/spam/spami.h src/include/message.h src/include/database.h src/include/spam.h
src/spam/cksum.d src/spam/cksum.o: src/spam/cksum.c src/include/config.h src/include/md5.h
src/spam/benchmark.d src/spam/benchmark.o: src/spam/benchmark.c src/include/config.h src/include/mailbox.h src/include/options.h src/spam/spami.h src/include/message.h src/include/database.h src/include/spam.h
src/spam/check.d src/spam/check.o: src/spam/check.c src/include/config.h src/spam/spami.h src/include/options.h src/include/message.h src/include/database.h src/include/spam.h src/include/log.h
src/spam/plaintext.d src/spam/plaintext.o: src/spam/plaintext.c src/include/config.h src/spam/spami.h src/include/options.h src/include/message.h src/include/database.h src/include/spam.h src/include/log.h
src/spam/dump.d src/spam/dump.o: src/spam/dump.c src/include/config.h src/spam/spami.h src/include/options.h src/include/message.h src/include/database.h src/include/spam.h
src/spam/token.d src/spam/token.o: src/spam/token.c src/include/config.h src/spam/spami.h src/include/options.h src/include/message.h src/include/database.h src/include/spam.h
src/spam/db.d src/spam/db.o: src/spam/db.c src/include/config.h src/spam/spami.h src/include/options.h src/include/message.h src/include/database.h src/include/spam.h
src/spam/prune.d src/spam/prune.o: src/spam/prune.c src/include/config.h src/spam/spami.h src/include/options.h src/include/message.h src/include/database.h src/include/spam.h
src/spam/allowlist.d src/spam/allowlist.o: src/spam/allowlist.c src/include/config.h src/spam/spami.h src/include/options.h src/include/message.h src/include/database.h src/include/spam.h src/include/log.h
src/message/parse.d src/message/parse.o: src/message/parse.c src/include/config.h src/include/message.h src/include/options.h src/include/md5.h
src/message/alloc.d src/message/alloc.o: src/message/alloc.c src/include/config.h src/include/message.h src/include/options.h
src/message/read.d src/message/read.o: src/message/read.c src/include/config.h src/include/message.h src/include/options.h
src/message/rfc2047.d src/message/rfc2047.o: src/message/rfc2047.c src/include/config.h src/include/message.h src/include/options.h
src/message/header.d src/message/header.o: src/message/header.c src/include/config.h src/include/message.h src/include/options.h
src/message/qp.d src/message/qp.o: src/message/qp.c src/include/config.h
src/message/dump.d src/message/dump.o: src/message/dump.c src/include/config.h src/include/message.h src/include/options.h src/include/log.h
src/message/base64.d src/message/base64.o: src/message/base64.c src/include/config.h
src/tests/gtube.d src/tests/gtube.o: src/tests/gtube.c src/include/config.h src/tests/testi.h src/include/options.h src/include/message.h
src/tests/main.d src/tests/main.o: src/tests/main.c src/include/config.h src/tests/testi.h src/include/options.h src/include/message.h
src/tests/imgcount.d src/tests/imgcount.o: src/tests/imgcount.c src/include/config.h src/tests/testi.h src/include/options.h src/include/message.h
src/tests/urls.d src/tests/urls.o: src/tests/urls.c src/include/config.h src/tests/testi.h src/include/options.h src/include/message.h src/include/spam.h
src/tests/gibberish.d src/tests/gibberish.o: src/tests/gibberish.c src/include/config.h src/tests/testi.h src/include/options.h src/include/message.h
src/tests/attached_files.d src/tests/attached_files.o: src/tests/attached_files.c src/include/config.h src/tests/testi.h src/include/options.h src/include/message.h
src/tests/html.d src/tests/html.o: src/tests/html.c src/include/config.h src/tests/testi.h src/include/options.h src/include/message.h src/include/spam.h
src/mailbox/alloc.d src/mailbox/alloc.o: src/mailbox/alloc.c src/include/config.h src/include/mailbox.h src/include/options.h src/mailbox/mailboxi.h
src/mailbox/count.d src/mailbox/count.o: src/mailbox/count.c src/include/config.h src/include/mailbox.h src/include/options.h src/mailbox/mailboxi.h
src/mailbox/select.d src/mailbox/select.o: src/mailbox/select.c src/include/config.h src/include/mailbox.h src/include/options.h src/mailbox/mailboxi.h
src/mailbox/scan.d src/mailbox/scan.o: src/mailbox/scan.c src/include/config.h src/include/mailbox.h src/include/options.h src/mailbox/mailboxi.h
syntax highlighted by Code2HTML, v. 0.9.1