1SHELL	= /bin/sh
2SRCS	= postmap.c 
3OBJS	= postmap.o
4HDRS	= 
5TESTSRC	= 
6DEFS	= -I. -I$(INC_DIR) -D$(SYSTYPE)
7CFLAGS	= $(DEBUG) $(OPT) $(DEFS)
8TESTPROG= 
9PROG	= postmap
10INC_DIR	= ../../include
11LIBS	= ../../lib/lib$(LIB_PREFIX)global$(LIB_SUFFIX) \
12	../../lib/lib$(LIB_PREFIX)util$(LIB_SUFFIX)
13
14.c.o:;	$(CC) $(CFLAGS) -c $*.c
15
16$(PROG):	$(OBJS) $(LIBS)
17	$(CC) $(CFLAGS) $(SHLIB_RPATH) -o $@ $(OBJS) $(LIBS) $(SYSLIBS)
18
19$(OBJS): ../../conf/makedefs.out
20
21Makefile: Makefile.in
22	cat ../../conf/makedefs.out $? >$@
23
24update: ../../bin/$(PROG)
25
26../../bin/$(PROG): $(PROG)
27	cp $(PROG) ../../bin
28
29tests:	test1 test2 fail_test quote_test file_test lmdb_abb_test \
30	lmdb_bulk_test lmdb_incr_test
31
32root_tests:
33
34test1:	$(PROG) map.in map-abc1.ref map-ghi1.ref map-uABC1.ref
35	$(SHLIB_ENV) $(VALGRIND) ./$(PROG) map.in
36	for key in abc ghi; \
37	do \
38	    $(SHLIB_ENV) $(VALGRIND) ./$(PROG) -q $${key} map.in | diff map-$${key}1.ref -; \
39	done
40	$(SHLIB_ENV) $(VALGRIND) ./$(PROG) -f map.in
41	for key in ABC; \
42	do \
43	    $(SHLIB_ENV) $(VALGRIND) ./$(PROG) -fq $${key} map.in | diff map-u$${key}1.ref -; \
44	done
45	rm -f map.in.db
46
47test2:	$(PROG) map.in map-abc2.ref map-ghi2.ref map-uABC2.ref
48	$(SHLIB_ENV) $(VALGRIND) ./$(PROG) map.in
49	for key in abc ghi; \
50	do \
51	    echo $${key} | $(SHLIB_ENV) $(VALGRIND) ./$(PROG) -q - map.in | diff map-$${key}2.ref -; \
52	done
53	$(SHLIB_ENV) $(VALGRIND) ./$(PROG) -f map.in
54	for key in ABC; \
55	do \
56	    echo $${key} | $(SHLIB_ENV) $(VALGRIND) ./$(PROG) -fq - map.in | diff map-u$${key}2.ref -; \
57	done
58	rm -f map.in.db
59
60fail_test: $(PROG) aliases fail_test.in fail_test.ref
61	-($(SHLIB_ENV) sh fail_test.in || exit 0) >fail_test.tmp 2>&1
62	diff fail_test.ref fail_test.tmp
63	rm -f fail_test.tmp
64
65quote_test: $(PROG) aliases quote_test.in quote_test.ref
66	rm -f quote_test_map.*
67	$(SHLIB_ENV) sh quote_test.in >quote_test.tmp 2>&1
68	diff quote_test.ref quote_test.tmp
69	rm -f quote_test.tmp quote_test_map.*
70
71file_test: $(PROG) file_test.in file_test.ref
72	rm -f file_test_map.* postmap-file-1 postmap-file-2
73	$(SHLIB_ENV) sh file_test.in >file_test.tmp 2>&1
74	diff file_test.ref file_test.tmp
75	rm -f file_test.tmp file_test_map.* postmap-file-1 postmap-file-2
76
77lmdb_abb_test: $(PROG) lmdb_abb lmdb_abb.ref
78	rm -f lmdb_abb.lmdb
79	($(SHLIB_ENV) $(VALGRIND) ./postmap lmdb:lmdb_abb; \
80	$(SHLIB_ENV) $(VALGRIND) ./postmap -s lmdb:lmdb_abb | sort) >lmdb_abb.tmp 2>&1
81	diff lmdb_abb.ref lmdb_abb.tmp
82	rm -f lmdb_abb.tmp lmdb_abb.lmdb
83
84lmdb_bulk_test: $(PROG)
85	rm -f lmdb_retry.lmdb main.cf
86	tr A-Z a-z < /usr/share/dict/words| \
87	    sed -e 's/.*/&	&/' -e 10000q| LANG=C sort -u >lmdb_retry
88	echo lmdb_map_size=10240 >main.cf
89	($(SHLIB_ENV) $(VALGRIND) ./postmap -c . lmdb:lmdb_retry; \
90	$(SHLIB_ENV) $(VALGRIND) ./postmap -s lmdb:lmdb_retry | \
91	    LANG=C sort > lmdb_retry.tmp)
92	cmp lmdb_retry lmdb_retry.tmp
93	rm -f lmdb_retry lmdb_retry.tmp lmdb_retry.lmdb main.cf
94
95lmdb_incr_test: $(PROG)
96	rm -f lmdb_retry.lmdb main.cf
97	tr A-Z a-z < /usr/share/dict/words| \
98	    sed -e 's/.*/&	&/' -e 1000q| LANG=C sort -u >lmdb_retry
99	echo lmdb_map_size=10240 >main.cf
100	($(SHLIB_ENV) $(VALGRIND) ./postmap -ic . lmdb:lmdb_retry <lmdb_retry; \
101	$(SHLIB_ENV) $(VALGRIND) ./postmap -s lmdb:lmdb_retry | \
102	    LANG=C sort > lmdb_retry.tmp)
103	cmp lmdb_retry lmdb_retry.tmp
104	rm -f lmdb_retry lmdb_retry.tmp lmdb_retry.lmdb main.cf
105
106printfck: $(OBJS) $(PROG)
107	rm -rf printfck
108	mkdir printfck
109	sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
110	set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
111	cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
112
113lint:
114	lint $(DEFS) $(SRCS) $(LINTFIX)
115
116clean:
117	rm -f *.o *core $(PROG) $(TESTPROG) *.tmp junk *.db
118	rm -rf printfck
119
120tidy:	clean
121
122depend: $(MAKES)
123	(sed '1,/^# do not edit/!d' Makefile.in; \
124	set -e; for i in [a-z][a-z0-9]*.c; do \
125	    $(CC) -E $(DEFS) $(INCL) $$i | grep -v '[<>]' | sed -n -e '/^# *1 *"\([^"]*\)".*/{' \
126	    -e 's//'`echo $$i|sed 's/c$$/o/'`': \1/' \
127	    -e 's/o: \.\//o: /' -e p -e '}' ; \
128	done | LANG=C sort -u) | grep -v '[.][o][:][ ][/]' >$$$$ && mv $$$$ Makefile.in
129	@$(EXPORT) make -f Makefile.in Makefile 1>&2
130
131# do not edit below this line - it is generated by 'make depend'
132postmap.o: ../../include/argv.h
133postmap.o: ../../include/check_arg.h
134postmap.o: ../../include/clean_env.h
135postmap.o: ../../include/dict.h
136postmap.o: ../../include/dict_db.h
137postmap.o: ../../include/dict_proxy.h
138postmap.o: ../../include/header_opts.h
139postmap.o: ../../include/mail_conf.h
140postmap.o: ../../include/mail_dict.h
141postmap.o: ../../include/mail_params.h
142postmap.o: ../../include/mail_parm_split.h
143postmap.o: ../../include/mail_task.h
144postmap.o: ../../include/mail_version.h
145postmap.o: ../../include/maillog_client.h
146postmap.o: ../../include/mime_state.h
147postmap.o: ../../include/mkmap.h
148postmap.o: ../../include/msg.h
149postmap.o: ../../include/msg_vstream.h
150postmap.o: ../../include/myflock.h
151postmap.o: ../../include/mymalloc.h
152postmap.o: ../../include/readlline.h
153postmap.o: ../../include/rec_type.h
154postmap.o: ../../include/set_eugid.h
155postmap.o: ../../include/split_at.h
156postmap.o: ../../include/stringops.h
157postmap.o: ../../include/sys_defs.h
158postmap.o: ../../include/vbuf.h
159postmap.o: ../../include/vstream.h
160postmap.o: ../../include/vstring.h
161postmap.o: ../../include/vstring_vstream.h
162postmap.o: ../../include/warn_stat.h
163postmap.o: postmap.c
164