prepend DESTDIR to install locations
[mmh] / etc / Makefile.in
index b45ef86..8fb3ea2 100644 (file)
@@ -16,7 +16,10 @@ bindir      = @bindir@
 libdir      = @libdir@
 etcdir      = @sysconfdir@
 
-mailspool    = @mailspool@
+MTS         = @MTS@
+mailspool   = @mailspool@
+masquerade  = @masquerade@
+smtpservers = @smtpservers@
 
 INSTALL         = @INSTALL@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -34,74 +37,94 @@ SED = sed
 
 .SUFFIXES:
 
-# format and components files
-DIST_FILES = mhl.body mhl.digest mhl.format mhl.forward mhl.headers \
-             mhl.reply scan.default scan.mailx scan.nomime scan.size scan.time \
-             scan.timely scan.unseen components digestcomps distcomps \
-             forwcomps rcvdistcomps rcvdistcomps.outbox replcomps \
-            replgroupcomps MailAliases
+# static configuration, format, and components files
+STATIC_FILES =  MailAliases components digestcomps distcomps forwcomps \
+               mhl.body mhl.digest mhl.format mhl.forward mhl.headers  \
+               mhl.reply rcvdistcomps rcvdistcomps.outbox              \
+               replcomps replgroupcomps scan.MMDDYY scan.YYYYMMDD      \
+               scan.default scan.mailx scan.nomime scan.size scan.time \
+               scan.timely scan.unseen
 
-# format and configuration files to generate
-GEN_FILES = mhn.defaults mts.conf
+# templates and scripts from which non-static files are generated
+GENERATED_FILE_SRCS = mhn.defaults.sh mhn.find.sh mts.conf.in sendfiles.in
 
-# data files we need to install
-FILES = $(DIST_FILES) $(GEN_FILES)
+# scripts generated using above GENERATED_FILE_SRCs
+GENERATED_BIN_FILES = sendfiles
 
-# scripts to install
-SCRIPTS = sendfiles
+# non-scripts generated using above GENERATED_FILE_SRCs
+GENERATED_ETC_FILES = mhn.defaults mts.conf
 
-# auxiliary files
-AUX = Makefile.in mhn.defaults.sh mhn.find.sh mts.conf.in
+# auxiliary files (included in distribution but not installed)
+AUX = Makefile.in
 
-# all files in this directory included in the distribution
-DIST = $(DIST_FILES) $(SCRIPTS) $(AUX)
+# all non-generated files in this directory are included in the distribution
+DIST = $(STATIC_FILES) $(GENERATED_FILE_SRCS) $(AUX)
 
 # ========= DEPENDENCIES FOR BUILDING ==========
 
-all: $(GEN_FILES)
+all: $(GENERATED_BIN_FILES) $(GENERATED_ETC_FILES)
 
 mhn.defaults: $(srcdir)/mhn.defaults.sh $(MHNSEARCHPROG)
        rm -f $@
        $(srcdir)/mhn.defaults.sh $(MHNSEARCHPATH) $(MHNSEARCHPROG) > $@
 
-mts.conf: $(srcdir)/mts.conf.in
+mts.conf: $(srcdir)/mts.conf.in Makefile
        rm -f $@
-       $(SED) -e 's,%mailspool%,$(mailspool),' \
-              -e 's,%etcdir%,$(etcdir),' < $(srcdir)/mts.conf.in > $@
+       $(SED) -e 's,%mts%,$(MTS),' \
+              -e 's,%mailspool%,$(mailspool),' \
+              -e 's,%etcdir%,$(etcdir),' \
+              -e 's,%masquerade%,$(masquerade),' \
+              -e 's,%smtpservers%,$(smtpservers),' < $(srcdir)/mts.conf.in > $@
 
-install: install-files install-scripts
+sendfiles: $(srcdir)/sendfiles.in Makefile
+       rm -f $@
+       $(SED) -e 's,%libdir%,$(libdir),' < $(srcdir)/sendfiles.in > $@
 
-install-files:
-       $(top_srcdir)/mkinstalldirs $(etcdir)
-       for file in $(DIST_FILES); do \
-         if [ -f $(etcdir)/$$file ]; then \
-           mv $(etcdir)/$$file $(etcdir)/$$file.old; \
-         fi; \
-         $(INSTALL_DATA) $(srcdir)/$$file $(etcdir)/$$file; \
-       done
-       for file in $(GEN_FILES); do \
-         if [ -f $(etcdir)/$$file ]; then \
-           mv $(etcdir)/$$file $(etcdir)/$$file.old; \
-         fi; \
-         $(INSTALL_DATA) $$file $(etcdir)/$$file; \
+install: install-bin-files install-etc-files
+
+install-bin-files:
+       $(top_srcdir)/mkinstalldirs $(DESTDIR)$(bindir)
+       for script in $(GENERATED_BIN_FILES); do \
+         $(INSTALL_PROGRAM) $$script $(DESTDIR)$(bindir)/$$script; \
        done
 
-install-scripts:
-       $(top_srcdir)/mkinstalldirs $(bindir)
-       for script in $(SCRIPTS); do \
-         $(INSTALL_PROGRAM) $(srcdir)/$$script $(bindir)/$$script; \
+install-etc-files:
+       $(top_srcdir)/mkinstalldirs $(DESTDIR)$(etcdir)
+       INSTALL_FILES="$(GENERATED_ETC_FILES)"; \
+       for file in $(STATIC_FILES); do \
+         INSTALL_FILES="$$INSTALL_FILES $(srcdir)/$$file"; \
+       done; \
+       for path in $$INSTALL_FILES; do \
+         file=`basename $$path`; \
+         echo "Installing $$file..."; \
+         if [ -f $(DESTDIR)$(etcdir)/$$file ]; then \
+           mv $(DESTDIR)$(etcdir)/$$file $(DESTDIR)$(etcdir)/$$file.prev; \
+           $(INSTALL_DATA) $$path $(DESTDIR)$(etcdir)/$$file; \
+           if diff $(DESTDIR)$(etcdir)/$$file.prev $(DESTDIR)$(etcdir)/$$file; then \
+             rm $(DESTDIR)$(etcdir)/$$file.prev; \
+           else \
+             echo; \
+             echo "  Previous version of $$file saved as $$file.prev due\c";\
+             echo   " to diffs."; \
+             echo "  Please merge any local config changes into the new\c"; \
+             echo   " $$file."; \
+             echo; \
+           fi; \
+         else \
+           $(INSTALL_DATA) $$path $(DESTDIR)$(etcdir)/$$file; \
+         fi; \
        done
 
-uninstall: uninstall-files uninstall-scripts
+uninstall: uninstall-bin-files uninstall-etc-files
 
-uninstall-files:
-       for file in $(FILES); do \
-         rm -f $(etcdir)/$$file; \
+uninstall-bin-files:
+       for script in $(GENERATED_BIN_FILES); do \
+         rm -f $(DESTDIR)$(bindir)/$$script; \
        done
 
-uninstall-scripts:
-       for script in $(SCRIPTS); do \
-         rm -f $(bindir)/$$script; \
+uninstall-etc-files:
+       for file in $(STATIC_FILES) $(GENERATED_ETC_FILES); do \
+         rm -f $(DESTDIR)$(etcdir)/$$file; \
        done
 
 # ========== DEPENDENCIES FOR CLEANUP ==========
@@ -110,7 +133,7 @@ mostlyclean:
        rm -f *~
 
 clean: mostlyclean
-       rm -f $(GEN_FILES)
+       rm -f $(GENERATED_ETC_FILES) $(GENERATED_BIN_FILES)
 
 distclean: clean
        rm -f Makefile
@@ -124,7 +147,7 @@ superclean: realclean
 subdir = etc
 
 Makefile: Makefile.in ../config.status
-       cd .. && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= ./config.status
+       cd .. && ./config.status $(subdir)/$@
  
 distdir = ../`cat ../distname`/$(subdir)
 nmhdist: $(DIST)