cleanups
[apps/pfixtools.git] / Makefile
index 88e599d..06ccd1e 100644 (file)
--- a/Makefile
+++ b/Makefile
 #     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.                                           #
+#  THIS SOFTWARE IS PROVIDED BY THE 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 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.                                               #
+#                                                                            #
+#   Copyright (c) 2006-2008 the Authors                                      #
+#   see AUTHORS and source files for details                                 #
 ##############################################################################
 
-prefix ?= /usr/local
-
-PROGRAMS = postlicyd pfix-srsd
-LIBS     = common
-SUBDIRS  = $(LIBS) $(PROGRAMS)
+PROGDIRS = postlicyd pfix-srsd
+LIBDIRS  = common
+SUBDIRS  = $(LIBDIRS) $(PROGDIRS)
 
-CLEAN_TARGETS     = $(addprefix clean-,$(SUBDIRS))
-DISTCLEAN_TARGETS = $(addprefix distclean-,$(SUBDIRS))
-INSTALL_TARGETS   = $(addprefix install-,$(SUBDIRS))
+DOCS     = pfixtools.7
 
 # RULES ###################################################################{{{
 
-all: $(SUBDIRS)
-
-clean: $(CLEAN_TARGETS)
-
-distclean: $(DISTCLEAN_TARGETS)
-
-install: all $(INSTALL_TARGETS)
+all clean distclean doc install: %: %-recurse
 
-$(PROGRAMS): $(LIBS)
+%-recurse:
+       @set -e $(foreach dir,$(SUBDIRS),; $(MAKE) -C $(dir) $*)
 
-$(SUBDIRS): %:
-       make -C $@ all
-
-$(CLEAN_TARGETS): clean-%:
-       make -C $* clean
-
-$(DISTCLEAN_TARGETS): distclean-%:
-       make -C $* distclean
-
-$(INSTALL_TARGETS): install-%: % install-dir
-       make -C $* install
-
-install-postlicyd: install-postlicyd-tools install-postlicyd-conf
+install-recurse: install-dir
+install: install-postlicyd-tools install-postlicyd-conf
 install-dir:
        install -d $(DESTDIR)$(prefix)/sbin
+       install -d $(DESTDIR)$(prefix)/bin
+       install -d $(DESTDIR)$(prefix)/share/doc/pfixtools
        install -d $(DESTDIR)/etc/pfixtools
 
 install-postlicyd-tools:
@@ -74,11 +59,11 @@ install-postlicyd-tools:
        install tools/rbldns2postlicyd   $(DESTDIR)$(prefix)/bin/rbldns2postlicyd
 
 install-postlicyd-conf:
-       install example/postlicyd.conf $(DESTDIR)/etc/pfixtools/postlicyd.example.conf
-       install example/postlicyd-rsyncrbl.conf $(DESTDIR)/etc/pfixtools/postlicyd-rsyncrbl.example.conf
+       install -m 640 example/postlicyd.conf $(DESTDIR)/etc/pfixtools/postlicyd.example.conf
+       install -m 640 example/postlicyd-rsyncrbl.conf $(DESTDIR)/etc/pfixtools/postlicyd-rsyncrbl.example.conf
 
-.PHONY: clean distclean install install-dir $(SUBDIRS) $(CLEAN_TARGETS) \
-                               $(DISTCLEAN_TARGETS) $(INSTALL_TARGETS) install-postlicyd-tools \
-                               install-postlicyd-conf
+.PHONY: clean distclean install install-% %-recurse
 
 ###########################################################################}}}
+
+include mk/common.mk