[gthumb-list] GNU Makefile Conventions




For whatever it's worth, I just wanted to say that Paolo was right,
and that all three of the problems I encountered which caused the
Help subsystem in gthumb to malfunction did, in the end, turn out
to be specific to the FreeBSD port of gthumb.  (I can also report
that those are now being corrected in the FreeBSD port.)

Before I go back into silent lurking mode however, i did want to
contribute at least something that might be generally useful across
platforms.

While I was working on the gthumb sources, trying to find the cause(s)
of the help problem(s) I had occasion to do "make maintainer-clean",
you know, in order to be sure that I was really starting from a clean
slate.

Unfortunately, after I had done that I was no longer able to even
run ./configure from the top-level directory.  This didn't seem right,
so I looked into a bit further.

What I found, pretty quickly, was the following old post to the GNU
autoconf mailing list which goes into some very specific detail (in the
latter half of the posting) about which files should NOT be deleted by
maintainer-clean:

   http://lists.gnu.org/archive/html/autoconf/2007-03/msg00043.html

The information is that posting is entire borne out by the clear and
unambiguous text of the GNU Makefile coding standard:

   http://www.gnu.org/prep/standards/html_node/Standard-Targets.html#Standard-Targets

So anyway, as a result of reading the above, I ended up making the following
changes to three files within the gthumb 2.14.3 sources... although really,
the changes below for the top-level Makefile.in file are arguably unnecessary,
because thas file should be automatically regenerated from the (modified)
top-level Makefile.am file before another release tarball is created.

In my opinion, all of these changes are necessary in order to bring the
various files of gthumb into conformance with the GNU Makefile coding
conventions.  Certainly, without these changes, after running the command
"make maintainer-clean" one can no longer run configure from the top-level,
and the GNU Makefile Coding Standard is quite clear and specific about that:

`maintainer-clean'

        ...
        More generally, `make maintainer-clean' should not delete anything
        that needs to exist in order to run `configure' and then begin to
        build the program...

Apparently, there is some rather widespread misunderstanding of this very
point.


Regards,
rfg

P.S.  After applying the following patches (to 2.14.3) I can report that yes,
I was then subsequently able to make maintainer-clean and then ./configure
successfully.



diff -rc2 src/gthumb-2.14.3/Makefile.am build/gthumb-2.14.3/Makefile.am
*** src/gthumb-2.14.3/Makefile.am       2011-10-17 01:50:17.000000000 -0700
--- build/gthumb-2.14.3/Makefile.am     2012-05-05 18:48:21.000000000 -0700
***************
*** 18,36 ****
        intltool-extract                \
        intltool-merge                  \
!       intltool-update                 \
!       gnome-doc-utils.make
  
  MAINTAINERCLEANFILES =                        \
-       $(srcdir)/INSTALL               \
-       $(srcdir)/aclocal.m4            \
        $(srcdir)/autoscan.log          \
-       $(srcdir)/compile               \
-       $(srcdir)/config.guess          \
-       $(srcdir)/config.h.in           \
-       $(srcdir)/config.sub            \
        $(srcdir)/configure.scan        \
-       $(srcdir)/depcomp               \
-       $(srcdir)/install-sh            \
-       $(srcdir)/ltmain.sh             \
        $(srcdir)/m4/gnome-doc-utils.m4 \
        $(srcdir)/m4/intltool.m4        \
--- 18,26 ----
        intltool-extract                \
        intltool-merge                  \
!       intltool-update
  
  MAINTAINERCLEANFILES =                        \
        $(srcdir)/autoscan.log          \
        $(srcdir)/configure.scan        \
        $(srcdir)/m4/gnome-doc-utils.m4 \
        $(srcdir)/m4/intltool.m4        \
***************
*** 40,50 ****
        $(srcdir)/m4/ltsugar.m4         \
        $(srcdir)/m4/ltversion.m4       \
-       $(srcdir)/missing               \
-       $(srcdir)/mkinstalldirs         \
        $(srcdir)/omf.make              \
        $(srcdir)/xmldocs.make          \
!       $(srcdir)/gtk-doc.make          \
!       $(srcdir)/ChangeLog             \
!       `find "$(srcdir)" -type f -name Makefile.in -print`
  
  GITIGNOREFILES = build .autotools .cdt* .cproject .project .settings/
--- 30,36 ----
        $(srcdir)/m4/ltsugar.m4         \
        $(srcdir)/m4/ltversion.m4       \
        $(srcdir)/omf.make              \
        $(srcdir)/xmldocs.make          \
!       $(srcdir)/gtk-doc.make
  
  GITIGNOREFILES = build .autotools .cdt* .cproject .project .settings/
diff -rc2 src/gthumb-2.14.3/Makefile.in build/gthumb-2.14.3/Makefile.in
*** src/gthumb-2.14.3/Makefile.in       2012-04-25 13:06:42.916888000 -0700
--- build/gthumb-2.14.3/Makefile.in     2012-05-05 18:48:21.000000000 -0700
***************
*** 337,355 ****
        intltool-extract                \
        intltool-merge                  \
!       intltool-update                 \
!       gnome-doc-utils.make
  
  MAINTAINERCLEANFILES = \
-       $(srcdir)/INSTALL               \
-       $(srcdir)/aclocal.m4            \
        $(srcdir)/autoscan.log          \
-       $(srcdir)/compile               \
-       $(srcdir)/config.guess          \
-       $(srcdir)/config.h.in           \
-       $(srcdir)/config.sub            \
        $(srcdir)/configure.scan        \
-       $(srcdir)/depcomp               \
-       $(srcdir)/install-sh            \
-       $(srcdir)/ltmain.sh             \
        $(srcdir)/m4/gnome-doc-utils.m4 \
        $(srcdir)/m4/intltool.m4        \
--- 337,345 ----
        intltool-extract                \
        intltool-merge                  \
!       intltool-update
  
  MAINTAINERCLEANFILES = \
        $(srcdir)/autoscan.log          \
        $(srcdir)/configure.scan        \
        $(srcdir)/m4/gnome-doc-utils.m4 \
        $(srcdir)/m4/intltool.m4        \
***************
*** 359,369 ****
        $(srcdir)/m4/ltsugar.m4         \
        $(srcdir)/m4/ltversion.m4       \
-       $(srcdir)/missing               \
-       $(srcdir)/mkinstalldirs         \
        $(srcdir)/omf.make              \
        $(srcdir)/xmldocs.make          \
!       $(srcdir)/gtk-doc.make          \
!       $(srcdir)/ChangeLog             \
!       `find "$(srcdir)" -type f -name Makefile.in -print`
  
  GITIGNOREFILES = build .autotools .cdt* .cproject .project .settings/
--- 349,355 ----
        $(srcdir)/m4/ltsugar.m4         \
        $(srcdir)/m4/ltversion.m4       \
        $(srcdir)/omf.make              \
        $(srcdir)/xmldocs.make          \
!       $(srcdir)/gtk-doc.make
  
  GITIGNOREFILES = build .autotools .cdt* .cproject .project .settings/
diff -rc2 src/gthumb-2.14.3/po/Makefile.in.in build/gthumb-2.14.3/po/Makefile.in.in
*** src/gthumb-2.14.3/po/Makefile.in.in 2012-03-01 02:03:27.000000000 -0800
--- build/gthumb-2.14.3/po/Makefile.in.in       2012-05-05 18:48:21.000000000 -0700
***************
*** 167,171 ****
        @echo "This command is intended for maintainers to use;"
        @echo "it deletes files that may require special tools to rebuild."
-       rm -f Makefile.in.in
  
  distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
--- 167,170 ----



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