Fixed some more problems caught by gcc -ansi -pedantic.
[mmh] / Makefile.am
index 56369c0..7f6b922 100644 (file)
@@ -73,6 +73,7 @@ TESTS = test/bad-input/test-header \
 
 check_SCRIPTS = test/common.sh
 check_PROGRAMS = test/getfullname test/getfqdn test/fakesmtp
+DISTCHECK_CONFIGURE_FLAGS = DISABLE_SETGID_MAIL=1
 
 ##
 ## Stuff that should be cleaned via "make clean"
@@ -80,7 +81,7 @@ check_PROGRAMS = test/getfullname test/getfqdn test/fakesmtp
 CLEANFILES = config/version.c sbr/sigmsg.h etc/mts.conf etc/sendfiles \
             etc/mhn.defaults man/man.sed man/mh-chart.man $(man_MANS)
 clean-local:
-       @rm -rf RPM a.out.DSYM uip/a.out.DSYM
+       @rm -rf RPM a.out.dSYM uip/a.out.dSYM
        @rm -rf test/testdir
 
 ##
@@ -174,7 +175,7 @@ dist_doc_DATA = COPYRIGHT VERSION docs/COMPLETION-BASH docs/COMPLETION-TCSH \
 ## Contribs that get installed in docdir/contrib/
 ##
 contribdir = $(docdir)/contrib
-dist_contrib_DATA = docs/contrib/nmh.spec docs/contrib/replyfilter
+dist_contrib_DATA = docs/contrib/replyfilter docs/contrib/build_nmh
 
 ##
 ## Our man pages
@@ -184,7 +185,7 @@ man_MANS = man/ali.1 man/anno.1 man/ap.8 man/burst.1 man/comp.1 \
           man/fmtdump.8 man/fnext.1 man/folder.1 man/folders.1 \
           man/forw.1 man/fprev.1 man/inc.1 man/install-mh.1 man/mark.1 \
           man/mh-alias.5 man/mh-chart.1 man/mh-draft.5 man/mh-format.5 \
-          man/mh-mail.5 man/mh-profile.5 man/mh-sequence.5 \
+          man/mh-mail.5 man/mh-profile.5 man/mh_profile.5 man/mh-sequence.5 \
           man/mh-tailor.5 man/mhbuild.1 man/mhl.1 man/mhlist.1 \
           man/mhmail.1 man/mhn.1 man/mhparam.1 man/mhpath.1 \
           man/mhshow.1 man/mhstore.1 man/msgchk.1 man/msh.1 \
@@ -209,11 +210,11 @@ EXTRA_DIST = config/version.sh sbr/sigmsg.awk etc/mts.conf.in etc/sendfiles.in \
             man/folders.man man/forw.man man/fprev.man man/inc.man \
             man/install-mh.man man/mark.man man/mh-alias.man \
             man/mh-chart-gen.sh man/mh-draft.man man/mh-format.man \
-            man/mh-mail.man man/mh-profile.man man/mh-sequence.man \
-            man/mh-tailor.man man/mhbuild.man man/mhl.man man/mhlist.man \
-            man/mhmail.man man/mhn.man man/mhparam.man man/mhpath.man \
-            man/mhshow.man man/mhstore.man man/msgchk.man man/msh.man \
-            man/mts.conf.man man/new.man man/next.man man/nmh.man \
+            man/mh-mail.man man/mh-profile.man man/mh_profile.man \
+            man/mh-sequence.man man/mh-tailor.man man/mhbuild.man man/mhl.man \
+            man/mhlist.man man/mhmail.man man/mhn.man man/mhparam.man \
+            man/mhpath.man man/mhshow.man man/mhstore.man man/msgchk.man \
+            man/msh.man man/mts.conf.man man/new.man man/next.man man/nmh.man \
             man/packf.man man/pick.man man/post.man man/prev.man \
             man/prompter.man man/rcvdist.man man/rcvpack.man \
             man/rcvstore.man man/rcvtty.man man/refile.man man/repl.man \
@@ -222,7 +223,8 @@ EXTRA_DIST = config/version.sh sbr/sigmsg.awk etc/mts.conf.in etc/sendfiles.in \
             man/unseen.man man/whatnow.man man/whom.man \
             test/README $(TESTS) test/inc/deb359167.mbox \
             test/inc/fromline.txt test/inc/msgheader.txt test/inc/filler.txt \
-            test/inc/md5sums test/post/test-post-common.sh
+            test/inc/md5sums test/post/test-post-common.sh \
+            SPECS/nmh.spec SPECS/build-nmh-cygwin
 
 ##
 ## These are all of the definitions for each of the programs listed above.
@@ -412,6 +414,10 @@ etc/sendfiles: $(srcdir)/etc/sendfiles.in Makefile
 ##
 ## This rule gets called at "make install" time; we use it to create links
 ## between different programs.
+## On Cygwin, the choice of ln or ln -s must be made at install time,
+## not configure time, because some filesystems (NTFS) support hard
+## links but others (FAT32) don't.  The fallback to cp -p might not be
+## needed, but it's here just in case.
 ##
 install-exec-hook:
        rm -f $(DESTDIR)$(bindir)/flists$(EXEEXT)
@@ -421,21 +427,34 @@ install-exec-hook:
        rm -f $(DESTDIR)$(bindir)/unseen$(EXEEXT)
        rm -f $(DESTDIR)$(bindir)/prev$(EXEEXT)
        rm -f $(DESTDIR)$(bindir)/next$(EXEEXT)
-       ln $(DESTDIR)$(bindir)/flist$(EXEEXT) $(DESTDIR)$(bindir)/flists$(EXEEXT)
-       ln $(DESTDIR)$(bindir)/folder$(EXEEXT) $(DESTDIR)$(bindir)/folders$(EXEEXT)
-       ln $(DESTDIR)$(bindir)/new$(EXEEXT) $(DESTDIR)$(bindir)/fnext$(EXEEXT)
-       ln $(DESTDIR)$(bindir)/new$(EXEEXT) $(DESTDIR)$(bindir)/fprev$(EXEEXT)
-       ln $(DESTDIR)$(bindir)/new$(EXEEXT) $(DESTDIR)$(bindir)/unseen$(EXEEXT)
-       ln $(DESTDIR)$(bindir)/show$(EXEEXT) $(DESTDIR)$(bindir)/prev$(EXEEXT)
-       ln $(DESTDIR)$(bindir)/show$(EXEEXT) $(DESTDIR)$(bindir)/next$(EXEEXT)
+       cd $(DESTDIR)$(bindir) && \
+         if ln flist$(EXEEXT) flists$(EXEEXT) 2>/dev/null && \
+           ln folder$(EXEEXT) folders$(EXEEXT) && \
+           ln new$(EXEEXT) fnext$(EXEEXT) && \
+           ln new$(EXEEXT) fprev$(EXEEXT) && \
+           ln new$(EXEEXT) unseen$(EXEEXT) && \
+           ln show$(EXEEXT) prev$(EXEEXT) && \
+           ln show$(EXEEXT) next$(EXEEXT); then :; \
+         elif ln -s flist$(EXEEXT) flists$(EXEEXT) 2>/dev/null && \
+           ln -s folder$(EXEEXT) folders$(EXEEXT) && \
+           ln -s new$(EXEEXT) fnext$(EXEEXT) && \
+           ln -s new$(EXEEXT) fprev$(EXEEXT) && \
+           ln -s new$(EXEEXT) unseen$(EXEEXT) && \
+           ln -s show$(EXEEXT) prev$(EXEEXT) && \
+           ln -s show$(EXEEXT) next$(EXEEXT); then :; \
+         else cp -p flist$(EXEEXT) flists$(EXEEXT) && \
+           cp -p folder$(EXEEXT) folders$(EXEEXT) && \
+           cp -p new$(EXEEXT) fnext$(EXEEXT) && \
+           cp -p new$(EXEEXT) fprev$(EXEEXT) && \
+           cp -p new$(EXEEXT) unseen$(EXEEXT) && \
+           cp -p show$(EXEEXT) prev$(EXEEXT) && \
+           cp -p show$(EXEEXT) next$(EXEEXT); \
+         fi
        if test x$(SETGID_MAIL) != x; then \
-               chgrp $(MAIL_SPOOL_GRP) $(DESTDIR)$(bindir)/inc$(EXEEXT); \
+               chgrp $(MAIL_SPOOL_GRP) $(DESTDIR)$(bindir)/inc$(EXEEXT) && \
                chmod 2755 $(DESTDIR)$(bindir)/inc$(EXEEXT); \
        fi
 
-install-data-hook:
-       rm -f $(DESTDIR)$(man5dir)/mh_profile.5
-       ln $(DESTDIR)$(man5dir)/mh-profile.5 $(DESTDIR)$(man5dir)/mh_profile.5
 ##
 ## Make sure we remove those links at uninstall time
 ##
@@ -447,7 +466,6 @@ uninstall-hook:
        rm -f $(DESTDIR)$(bindir)/unseen$(EXEEXT)
        rm -f $(DESTDIR)$(bindir)/prev$(EXEEXT)
        rm -f $(DESTDIR)$(bindir)/next$(EXEEXT)
-       rm -f $(DESTDIR)$(man5dir)/mh_profile.5
 
 ##
 ## Our rules to build our internal libraries (libmh.a, libmts.a)
@@ -559,14 +577,12 @@ ChangeLog:
 ##
 rpm: dist
        @test -d $(rpmdir)/SOURCES || $(MKDIR_P) $(rpmdir)/SOURCES
-       @test -d $(rpmdir)/SPECS || $(MKDIR_P) $(rpmdir)/SPECS
        @mv -f $(DIST_ARCHIVES) $(rpmdir)/SOURCES
        @cp -p VERSION $(rpmdir)/SOURCES
-       @cp -p docs/contrib/nmh.spec $(rpmdir)/SPECS
        @rpmbuild --define '_topdir $(rpmdir)' \
          --define '_tmppath %{_topdir}/TMP' \
          --define "_sysconfdir $(DESTDIR)$(sysconfdir)" \
-         -ba $(rpmdir)/SPECS/nmh.spec
+         -ba SPECS/nmh.spec
 .PHONY: rpm
 
 ##
@@ -594,7 +610,7 @@ gcov:
           gcov -p -o `echo $$i | $(SED) 's%\\(.*\\)/%\\1 %'`; \
         done
        @for i in `find . -name '*.gcno'`; do \
-          if ! test -f `echo $$i | sed 's%\.gcno%.gcda%'`; then \
+          if test -f `echo $$i | sed 's%\.gcno%.gcda%'`; then :; else \
             echo untested: $$i; \
           fi; \
         done
@@ -625,5 +641,5 @@ upload: dist
                chmod 664 $(DIST_ARCHIVES).sig; \
        fi
        @echo "Uploading to savannah"
-       scp -p $(DIST_ARCHIVES)* $(SAVANNAH_USERNAME)@savannah.gnu.org:/releases/nmh
+       scp -p $(DIST_ARCHIVES)* $(SAVANNAH_USERNAME)@dl.sv.nongnu.org:/releases/nmh
 .PHONY: upload