Cleanup source structure.
authorFlorent Bruneau <florent.bruneau@polytechnique.org>
Tue, 9 Sep 2008 11:52:58 +0000 (13:52 +0200)
committerFlorent Bruneau <florent.bruneau@polytechnique.org>
Tue, 9 Sep 2008 11:52:58 +0000 (13:52 +0200)
Signed-off-by: Florent Bruneau <florent.bruneau@polytechnique.org>
25 files changed:
Makefile
common/Makefile [new file with mode: 0644]
common/buffer.c [moved from buffer.c with 100% similarity]
common/buffer.h [moved from buffer.h with 100% similarity]
common/common.c [moved from common.c with 100% similarity]
common/common.h [moved from common.h with 100% similarity]
common/epoll.c [moved from epoll.c with 100% similarity]
common/epoll.h [moved from epoll.h with 100% similarity]
common/mem.h [moved from mem.h with 100% similarity]
common/server.c [moved from server.c with 100% similarity]
common/server.h [moved from server.h with 100% similarity]
common/str.c [moved from str.c with 100% similarity]
common/str.h [moved from str.h with 100% similarity]
mk/common.mk [new file with mode: 0644]
pfix-srsd/Makefile [new file with mode: 0644]
pfix-srsd/main-srsd.c [moved from main-srsd.c with 100% similarity]
postlicyd/Makefile [new file with mode: 0644]
postlicyd/greylist.c [moved from greylist.c with 100% similarity]
postlicyd/greylist.h [moved from greylist.h with 100% similarity]
postlicyd/main-postlicyd.c [moved from main-postlicyd.c with 100% similarity]
postlicyd/qsort.c [moved from qsort.c with 100% similarity]
postlicyd/rbl.c [moved from rbl.c with 100% similarity]
postlicyd/rbl.h [moved from rbl.h with 100% similarity]
postlicyd/tokens.sh [moved from tokens.sh with 100% similarity]
postlicyd/tst-rbl.c [moved from tst-rbl.c with 100% similarity]

index 5508e3d..a46a1e4 100644 (file)
--- a/Makefile
+++ b/Makefile
 #  THE POSSIBILITY OF SUCH DAMAGE.                                           #
 ##############################################################################
 
-all:
-
-LDFLAGS += -Wl,--warn-common
-
-include mk/cflags.mk
-include mk/tc.mk
-
-CFLAGS += --std=gnu99 -D_GNU_SOURCE
 prefix ?= /usr/local
 
 PROGRAMS = postlicyd pfix-srsd
-LIBS     = lib
-TESTS    = tst-rbl
-
-GENERATED = tokens.h tokens.c
+LIBS     = common
+SUBDIRS  = $(LIBS) $(PROGRAMS)
 
-lib_SOURCES = str.c buffer.c common.c epoll.c server.c $(GENERATED)
-
-postlicyd_SOURCES = greylist.c rbl.c main-postlicyd.c lib.a
-postlicyd_LIBADD  = $(TC_LIBS)
-
-pfix-srsd_SOURCES = main-srsd.c lib.a
-pfix-srsd_LIBADD  = -lsrs2
-
-tst-rbl_SOURCES = tst-rbl.c
-
-install: all
-       install -d $(DESTDIR)$(prefix)/sbin
-       install $(PROGRAMS) $(DESTDIR)$(prefix)/sbin
-       install -d $(DESTDIR)/etc/pfixtools
+CLEAN_TARGETS     = $(addprefix clean-,$(SUBDIRS))
+DISTCLEAN_TARGETS = $(addprefix distclean-,$(SUBDIRS))
+INSTALL_TARGETS   = $(addprefix install-,$(SUBDIRS))
 
 # RULES ###################################################################{{{
 
-all: $(GENERATED) $(PROGRAMS) | $(GENERATED)
-
-clean:
-       $(RM) $(LIBS:=.a) $(PROGRAMS) $(TESTS) .*.o .*.dep
-
-distclean: clean
-       $(RM) $(GENERATED)
+all: $(SUBDIRS)
 
-tags: .tags
-.tags: $(shell git ls-files | egrep '\.[hc]$$')
-       ctags -o $@ $^
+clean: $(CLEAN_TARGETS)
 
-headers: HEADACHEOPTS=-c mk/headache.cfg -h mk/COPYING
-headers:
-       @which headache > /dev/null || \
-               ( echo "package headache not installed" ; exit 1 )
-       @git ls-files | egrep '(\.h|\.c|Makefile|*\.mk)$$' | xargs -t headache $(HEADACHEOPTS)
+distclean: $(DISTCLEAN_TARGETS)
 
-%.h: %.sh
-       ./$< $@ || ($(RM) $@; exit 1)
+install: all $(INSTALL_TARGETS)
 
-%.c: %.sh
-       ./$< $@ || ($(RM) $@; exit 1)
+$(PROGRAMS): $(LIBS)
 
-.%.o: %.c Makefile
-       $(shell test -d $(@D) || mkdir -p $(@D))
-       $(CC) $(CFLAGS) -MMD -MT ".$*.dep $@" -MF .$*.dep -g -c -o $@ $<
+$(SUBDIRS): %:
+       make -C $@ all
 
-.%.dep: .%.o
+$(CLEAN_TARGETS): clean-%:
+       make -C $* clean
 
-.SECONDEXPANSION:
+$(DISTCLEAN_TARGETS): distclean-%:
+       make -C $* distclean
 
-$(LIBS:=.a): $$(patsubst %.c,.%.o,$$($$(patsubst %.a,%,$$@)_SOURCES)) Makefile
-       $(RM) $@
-       $(AR) rcs $@ $(filter %.o,$^)
+$(INSTALL_TARGETS): install-%: install-dir
+       make -C $* install
 
-$(PROGRAMS) $(TESTS): $$(patsubst %.c,.%.o,$$($$@_SOURCES)) Makefile common.ld
-       $(CC) -o $@ $(filter %.ld,$^) $(filter %.o,$^) $(LDFLAGS) $($@_LIBADD) $(filter %.a,$^)
-
--include $(foreach p,$(PROGRAMS) $(TESTS),$(patsubst %.c,.%.dep,$(filter %.c,$($p_SOURCES))))
+install-dir:
+       install -d $(DESTDIR)$(prefix)/sbin
+       install -d $(DESTDIR)/etc/pfixtools
 
+.PHONY: clean distclean install install-dir $(SUBDIRS) $(CLEAN_TARGETS) \
+                               $(DISTCLEAN_TARGETS) $(INSTALL_TARGETS)
 ###########################################################################}}}
diff --git a/common/Makefile b/common/Makefile
new file mode 100644 (file)
index 0000000..0c20bf0
--- /dev/null
@@ -0,0 +1,36 @@
+##############################################################################
+#          pfixtools: a collection of postfix related tools                  #
+#          ~~~~~~~~~                                                         #
+#  ________________________________________________________________________  #
+#                                                                            #
+#  Redistribution and use in source and binary forms, with or without        #
+#  modification, are permitted provided that the following conditions        #
+#  are met:                                                                  #
+#                                                                            #
+#  1. Redistributions of source code must retain the above copyright         #
+#     notice, this list of conditions and the following disclaimer.          #
+#  2. Redistributions in binary form must reproduce the above copyright      #
+#     notice, this list of conditions and the following disclaimer in the    #
+#     documentation and/or other materials provided with the distribution.   #
+#  3. The names of its contributors may not be used to endorse or promote    #
+#     products derived from this software without specific prior written     #
+#     permission.                                                            #
+#                                                                            #
+#  THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND   #
+#  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE     #
+#  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR        #
+#  PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS    #
+#  BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR    #
+#  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF      #
+#  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS  #
+#  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN   #
+#  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)   #
+#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF    #
+#  THE POSSIBILITY OF SUCH DAMAGE.                                           #
+##############################################################################
+
+LIBS = lib
+
+lib_SOURCES = str.c buffer.c common.c epoll.c server.c
+
+include ../mk/common.mk
similarity index 100%
rename from buffer.c
rename to common/buffer.c
similarity index 100%
rename from buffer.h
rename to common/buffer.h
similarity index 100%
rename from common.c
rename to common/common.c
similarity index 100%
rename from common.h
rename to common/common.h
similarity index 100%
rename from epoll.c
rename to common/epoll.c
similarity index 100%
rename from epoll.h
rename to common/epoll.h
similarity index 100%
rename from mem.h
rename to common/mem.h
similarity index 100%
rename from server.c
rename to common/server.c
similarity index 100%
rename from server.h
rename to common/server.h
similarity index 100%
rename from str.c
rename to common/str.c
similarity index 100%
rename from str.h
rename to common/str.h
diff --git a/mk/common.mk b/mk/common.mk
new file mode 100644 (file)
index 0000000..3fcb4e4
--- /dev/null
@@ -0,0 +1,57 @@
+include ../mk/cflags.mk
+
+prefix ?= /usr/local
+LDFLAGS += -Wl,--warn-common
+CFLAGS  += --std=gnu99 -D_GNU_SOURCE -I../ -I../common
+
+INSTALL_PROGS = $(addprefix install-,$(PROGRAMS))
+
+install: all $(INSTALL_PROGS)
+
+$(INSTALL_PROGS): install-%:
+       install $* $(DESTDIR)$(prefix)/sbin
+
+all: $(GENERATED) $(LIBS) $(PROGRAMS) | $(GENERATED)
+
+clean:
+       $(RM) $(LIBS:=.a) $(PROGRAMS) $(TESTS) .*.o .*.dep
+
+distclean: clean
+       $(RM) $(GENERATED)
+
+tags: .tags
+.tags: $(shell git ls-files | egrep '\.[hc]$$')
+       ctags -o $@ $^
+
+headers: HEADACHEOPTS=-c mk/headache.cfg -h mk/COPYING
+headers:
+       @which headache > /dev/null || \
+               ( echo "package headache not installed" ; exit 1 )
+       @git ls-files | egrep '(\.h|\.c|Makefile|*\.mk)$$' | xargs -t headache $(HEADACHEOPTS)
+
+%.h: %.sh
+       ./$< $@ || ($(RM) $@; exit 1)
+
+%.c: %.sh
+       ./$< $@ || ($(RM) $@; exit 1)
+
+.%.o: %.c Makefile
+       $(shell test -d $(@D) || mkdir -p $(@D))
+       $(CC) $(CFLAGS) -MMD -MT ".$*.dep $@" -MF .$*.dep -g -c -o $@ $<
+
+.%.dep: .%.o
+
+$(LIBS): %: %.a
+
+.SECONDEXPANSION:
+
+$(LIBS:=.a): $$(patsubst %.c,.%.o,$$($$(patsubst %.a,%,$$@)_SOURCES)) Makefile
+       $(RM) $@
+       $(AR) rcs $@ $(filter %.o,$^)
+
+$(PROGRAMS) $(TESTS): $$(patsubst %.c,.%.o,$$($$@_SOURCES)) Makefile ../common.ld
+       $(CC) -o $@ $(filter %.ld,$^) $(filter %.o,$^) $(LDFLAGS) $($@_LIBADD) $(filter %.a,$^)
+
+-include $(foreach p,$(PROGRAMS) $(TESTS),$(patsubst %.c,.%.dep,$(filter %.c,$($p_SOURCES))))
+
+.PHONY: install-dir $(INSTALL_PROGS)
diff --git a/pfix-srsd/Makefile b/pfix-srsd/Makefile
new file mode 100644 (file)
index 0000000..65f3f36
--- /dev/null
@@ -0,0 +1,37 @@
+##############################################################################
+#          pfixtools: a collection of postfix related tools                  #
+#          ~~~~~~~~~                                                         #
+#  ________________________________________________________________________  #
+#                                                                            #
+#  Redistribution and use in source and binary forms, with or without        #
+#  modification, are permitted provided that the following conditions        #
+#  are met:                                                                  #
+#                                                                            #
+#  1. Redistributions of source code must retain the above copyright         #
+#     notice, this list of conditions and the following disclaimer.          #
+#  2. Redistributions in binary form must reproduce the above copyright      #
+#     notice, this list of conditions and the following disclaimer in the    #
+#     documentation and/or other materials provided with the distribution.   #
+#  3. The names of its contributors may not be used to endorse or promote    #
+#     products derived from this software without specific prior written     #
+#     permission.                                                            #
+#                                                                            #
+#  THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND   #
+#  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE     #
+#  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR        #
+#  PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS    #
+#  BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR    #
+#  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF      #
+#  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS  #
+#  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN   #
+#  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)   #
+#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF    #
+#  THE POSSIBILITY OF SUCH DAMAGE.                                           #
+##############################################################################
+
+PROGRAMS  = pfix-srsd
+
+pfix-srsd_SOURCES = main-srsd.c ../common/lib.a
+pfix-srsd_LIBADD  = -lsrs2
+
+include ../mk/common.mk
similarity index 100%
rename from main-srsd.c
rename to pfix-srsd/main-srsd.c
diff --git a/postlicyd/Makefile b/postlicyd/Makefile
new file mode 100644 (file)
index 0000000..5a0ab49
--- /dev/null
@@ -0,0 +1,43 @@
+##############################################################################
+#          pfixtools: a collection of postfix related tools                  #
+#          ~~~~~~~~~                                                         #
+#  ________________________________________________________________________  #
+#                                                                            #
+#  Redistribution and use in source and binary forms, with or without        #
+#  modification, are permitted provided that the following conditions        #
+#  are met:                                                                  #
+#                                                                            #
+#  1. Redistributions of source code must retain the above copyright         #
+#     notice, this list of conditions and the following disclaimer.          #
+#  2. Redistributions in binary form must reproduce the above copyright      #
+#     notice, this list of conditions and the following disclaimer in the    #
+#     documentation and/or other materials provided with the distribution.   #
+#  3. The names of its contributors may not be used to endorse or promote    #
+#     products derived from this software without specific prior written     #
+#     permission.                                                            #
+#                                                                            #
+#  THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND   #
+#  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE     #
+#  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR        #
+#  PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS    #
+#  BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR    #
+#  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF      #
+#  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS  #
+#  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN   #
+#  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)   #
+#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF    #
+#  THE POSSIBILITY OF SUCH DAMAGE.                                           #
+##############################################################################
+
+include ../mk/tc.mk
+
+PROGRAMS  = postlicyd
+GENERATED = tokens.h tokens.c
+TESTS     = test-rbl
+
+postlicyd_SOURCES = greylist.c rbl.c main-postlicyd.c $(GENERATED) ../common/lib.a
+postlicyd_LIBADD  = $(TC_LIBS)
+
+tst-rbl_SOURCES   = tst-rbl.c
+
+include ../mk/common.mk
similarity index 100%
rename from greylist.c
rename to postlicyd/greylist.c
similarity index 100%
rename from greylist.h
rename to postlicyd/greylist.h
similarity index 100%
rename from main-postlicyd.c
rename to postlicyd/main-postlicyd.c
similarity index 100%
rename from qsort.c
rename to postlicyd/qsort.c
similarity index 100%
rename from rbl.c
rename to postlicyd/rbl.c
similarity index 100%
rename from rbl.h
rename to postlicyd/rbl.h
similarity index 100%
rename from tokens.sh
rename to postlicyd/tokens.sh
similarity index 100%
rename from tst-rbl.c
rename to postlicyd/tst-rbl.c