groff
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Groff] Automake migration proposal


From: Ingo Schwarze
Subject: Re: [Groff] Automake migration proposal
Date: Mon, 11 Aug 2014 20:59:58 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

Hi,

Bertrand Garrigues wrote on Sun, Aug 10, 2014 at 12:23:06AM +0200:

> I have made some progress on the Automake migration. The targets that
> were not functionnal yet (namely make install, uninstall, check, dist,
> distcheck) are now completed.

I'm only coming round to start testing this now, i was busy with
the mandoc 1.13.1 release.  Sorry for being late to the party.

Before starting the tests, i have verified that master still works
fine, so issues i am finding are indeed due to changes on the
automake branch, not due to unrelated commits, and don't affect the
master.

> I've pushed a new branch (called 'automake') on groff's git
> repository. To test it:
> 
> git clone git://git.savannah.gnu.org/groff.git
> git checkout automake
> ./bootstrap
> mkdir build
> cd build
> ../configure
> make -j
> 
> For the moment I've tested it only on my main Linux distro (Arch Linux),
> more tests are needed.

Using $< in a non-suffix rule context is a GNUmake idiom (Makefile:8454)
*** Error 2 in /co/groff/build (Makefile:3654 'all')

Please apply the following patch to the automake branch.

Yours,
  Ingo


P.S.  (Et ceterum censeo...)-:
It won't come as a surprise that i consider the whole direction
this is taking completely insane.  We shouldn't pile layers and
layers of abstraction on top of each other, always more and more,
becoming more and more complex and hence, more an more error-prone,
unmaintainable, and insecure.  We should reduce complexity.  Even
autoconf is basically obsolete today.  Its main raison-d'etre,
incompatible, feature-starved shells that didn't allow writing
configuration scripts that were both readable and portable, is
long irrelevant - all relevant systems have reasonably POSIX-
compatible shells nowadays.  Software isn't perfect when there
is nothing more to add, it is perfect when there is nothing more
to take away.  So this whole change is a *HUGE* step backwards.

Besides, the diff is completely unreviewable.  It literally is
a 154479 line diff (yes, over 150 thousand lines of changes)
touching 261 files.


commit 09a0b6c3be24d489ea38112febb74c6e307c6894
Author: Ingo Schwarze <address@hidden>
Date:   Mon Aug 11 20:29:10 2014 +0200

    Do not use $< in non-suffix rules.
    
    It is not portable but only works with GNU make.

diff --git a/contrib/groffer/groffer.am b/contrib/groffer/groffer.am
index 1a1a4db..c4b64c9 100644
--- a/contrib/groffer/groffer.am
+++ b/contrib/groffer/groffer.am
@@ -83,7 +83,7 @@ $(ROFF2PROGS): $(groffer_srcdir)/roff2.pl
 
 $(ROFF2MAN):  $(groffer_srcdir)/roff2.man
        @$(MKDIR_P) contrib/groffer
-       sed -e 's/address@hidden@]/'"$$@"'/g' $< > $@;
+       sed -e 's/address@hidden@]/'"$$@"'/g' $> > $@;
 
 groffer: $(GROFFER_PERL) $(GROFFER_REST) $(SH_DEPS_SED_SCRIPT)
          echo "Using perl version of groffer."; \
diff --git a/contrib/pdfmark/pdfmark.am b/contrib/pdfmark/pdfmark.am
index 00d0f2a..8f3e4d8 100644
--- a/contrib/pdfmark/pdfmark.am
+++ b/contrib/pdfmark/pdfmark.am
@@ -64,7 +64,7 @@ PDFROFF=\
 
 contrib/pdfmark/pdfmark.pdf: contrib/pdfmark/pdfmark.ms
        @$(MKDIR_P) `dirname address@hidden
-       $(PDFROFF) -mspdf --stylesheet=$(pdfmark_srcdir)/cover.ms $< >$@
+       $(PDFROFF) -mspdf --stylesheet=$(pdfmark_srcdir)/cover.ms $> >$@
 
 # The pdf files use the local script to generate.
 $(PDFDOCFILES): pdfroff groff troff gropdf 
diff --git a/doc/doc.am b/doc/doc.am
index 8e12549..8a269ac 100644
--- a/doc/doc.am
+++ b/doc/doc.am
@@ -21,11 +21,15 @@
 doc_srcdir = $(abs_top_srcdir)/doc
 doc_builddir = $(abs_top_builddir)/doc
 
-DOC_GROFF=\
-  sed -e "s;@VERSION@;$(VERSION);" $< \
-  | GROFF_COMMAND_PREFIX= \
-    GROFF_BIN_PATH="$(GROFF_BIN_PATH)" \
-    $(GROFFBIN) -I$(abs_top_builddir) -M $(doc_srcdir) $(TFLAG) $(FFLAG) -Upet 
-ww 
+DOC_SED = sed -e "s;@VERSION@;$(VERSION);"
+
+DOC_GROFF_ONLY=\
+  GROFF_COMMAND_PREFIX= \
+  GROFF_BIN_PATH="$(GROFF_BIN_PATH)" \
+  $(GROFFBIN) -I$(abs_top_builddir) -M $(doc_srcdir) \
+       $(TFLAG) $(FFLAG) -Upet -ww 
+
+DOC_GROFF = $(DOC_SED) $< | $(DOC_GROFF_ONLY)
 
 # Other doc, installed in $(docdir)
 if BUILD_OTHERDOC
@@ -129,8 +133,8 @@ doc/pic.html: $(dist_devpsfont_DATA) 
$(nodist_devpsfont_DATA)
 doc/pic.html: $(doc_srcdir)/pic.ms $(devhtmlfont_DATA)
        @$(MKDIR_P) $(doc_builddir)
        cd $(doc_builddir) && \
-       $(DOC_GROFF) -P-p -P-I`basename $< | sed -e 's|.ms$$||'` \
-                -P-D$(imagedir) -P-j`basename $< | sed -e 's|.ms$$||'` \
+       $(DOC_SED) $(doc_srcdir)/pic.ms | \
+               $(DOC_GROFF_ONLY) -P-p -P-Ipic -P-D$(imagedir) -P-jpic \
                 -Thtml -P-V -ms > pic.html
 
 doc/examples.stamp: doc/groff.css
@@ -144,8 +148,8 @@ doc/webpage.html: $(dist_devpsfont_DATA) 
$(nodist_devpsfont_DATA)
 doc/webpage.html: $(doc_srcdir)/webpage.ms gnu.eps $(doc_srcdir)/groff.css
        @$(MKDIR_P) doc
        cd $(doc_builddir) && \
-       $(DOC_GROFF) -P-j`basename $< | sed -e 's|.ms$$||'` \
-                -P-nrpb -P-I`basename $< | sed -e 's|.ms$$||'` \
+       $(DOC_SED) $(doc_srcdir)/webpage.ms | \
+               $(DOC_GROFF_ONLY) -P-jwebpage -P-nrpb -P-Iwebpage \
                 -P-D$(imagedir) -Thtml -ms > webpage.html
 
 doc/grnexmpl.ps: doc/grnexmpl.me doc/grnexmpl.g



reply via email to

[Prev in Thread] Current Thread [Next in Thread]