1 ##############################################################################
2 # pfixtools: a collection of postfix related tools #
4 # ________________________________________________________________________ #
6 # Redistribution and use in source and binary forms, with or without #
7 # modification, are permitted provided that the following conditions #
10 # 1. Redistributions of source code must retain the above copyright #
11 # notice, this list of conditions and the following disclaimer. #
12 # 2. Redistributions in binary form must reproduce the above copyright #
13 # notice, this list of conditions and the following disclaimer in the #
14 # documentation and/or other materials provided with the distribution. #
15 # 3. The names of its contributors may not be used to endorse or promote #
16 # products derived from this software without specific prior written #
19 # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND #
20 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE #
21 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR #
22 # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS #
23 # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR #
24 # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF #
25 # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS #
26 # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN #
27 # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) #
28 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF #
29 # THE POSSIBILITY OF SUCH DAMAGE. #
30 ##############################################################################
34 LDFLAGS += -Wl,--warn-common
39 CFLAGS += --std=gnu99 -D_GNU_SOURCE
42 PROGRAMS = postlicyd pfix-srsd
46 GENERATED = tokens.h tokens.c
48 lib_SOURCES = str.c buffer.c common.c epoll.c server.c $(GENERATED)
50 postlicyd_SOURCES = greylist.c rbl.c main-postlicyd.c lib.a
51 postlicyd_LIBADD = $(TC_LIBS)
53 pfix-srsd_SOURCES = main-srsd.c lib.a
54 pfix-srsd_LIBADD = -lsrs2
56 tst-rbl_SOURCES = tst-rbl.c
59 install -d $(DESTDIR)$(prefix)/sbin
60 install $(PROGRAMS) $(DESTDIR)$(prefix)/sbin
61 install -d $(DESTDIR)/etc/pfixtools
63 # RULES ###################################################################{{{
65 all: $(GENERATED) $(PROGRAMS) | $(GENERATED)
68 $(RM) $(LIBS:=.a) $(PROGRAMS) $(TESTS) .*.o .*.dep
74 .tags: $(shell git ls-files | egrep '\.[hc]$$')
77 headers: HEADACHEOPTS=-c mk/headache.cfg -h mk/COPYING
79 @which headache > /dev/null || \
80 ( echo "package headache not installed" ; exit 1 )
81 @git ls-files | egrep '(\.h|\.c|Makefile|*\.mk)$$' | xargs -t headache $(HEADACHEOPTS)
84 ./$< $@ || ($(RM) $@; exit 1)
87 ./$< $@ || ($(RM) $@; exit 1)
90 $(shell test -d $(@D) || mkdir -p $(@D))
91 $(CC) $(CFLAGS) -MMD -MT ".$*.dep $@" -MF .$*.dep -g -c -o $@ $<
97 $(LIBS:=.a): $$(patsubst %.c,.%.o,$$($$(patsubst %.a,%,$$@)_SOURCES)) Makefile
99 $(AR) rcs $@ $(filter %.o,$^)
101 $(PROGRAMS) $(TESTS): $$(patsubst %.c,.%.o,$$($$@_SOURCES)) Makefile common.ld
102 $(CC) -o $@ $(filter %.ld,$^) $(filter %.o,$^) $(LDFLAGS) $($@_LIBADD) $(filter %.a,$^)
104 -include $(foreach p,$(PROGRAMS) $(TESTS),$(patsubst %.c,.%.dep,$(filter %.c,$($p_SOURCES))))
106 ###########################################################################}}}