[gthumb-list] GNU Makefile Conventions
- From: "Ronald F. Guilmette" <rfg tristatelogic com>
- To: gthumb-list gnome org
- Subject: [gthumb-list] GNU Makefile Conventions
- Date: Fri, 11 May 2012 16:16:56 -0700
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]