bug-coreutils
[Top][All Lists]
Advanced

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

Re: [PATCH] Generalize GNUmakefile, ...


From: Eric Blake
Subject: Re: [PATCH] Generalize GNUmakefile, ...
Date: Mon, 24 Mar 2008 05:54:03 -0600
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.12) Gecko/20080213 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

According to Jim Meyering on 3/20/2008 7:58 AM:
|> Here's stage 1 of the sync for coreutils.  The patch looks big, but that's
|> due to how 'git format-patch' handles renames.

I just learned 'git config --global diff.renames true' to make renaming
patches default to their more compact representation.

|>  Once gnulib is further
|> fixed to dump GNUmakefile into the top directory, stage 2 would be using
|> the gnulib module rather than synchronizing the files.

As follows.

- --
Don't work too hard, make some time for fun as well!

Eric Blake             address@hidden
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkfnlloACgkQ84KuGfSFAYBY/QCffxkfSN0urLDFRG4yIezxGET7
i4wAn3lE3QP1KHXYjfZj2FA6H4VWKEw4
=4DwV
-----END PGP SIGNATURE-----
>From bb003f7e035fab9a8c4e8dc6d0c5c945f48952f1 Mon Sep 17 00:00:00 2001
From: Eric Blake <address@hidden>
Date: Mon, 24 Mar 2008 05:51:10 -0600
Subject: [PATCH] Use new gnulib gnumakefile module.

* bootstrap.conf (gnulib_modules): Pull in new module.
* GNUmakefile: Remove from version control.
* .gitignore: Update.
* configure.ac (AC_CONFIG_LINKS): Delete; rely on gnulib to do
this now.
* Makefile.am (EXTRA_DIST, distclean-local): Likewise.

Signed-off-by: Eric Blake <address@hidden>
---
 .gitignore     |    2 +
 GNUmakefile    |   86 --------------------------------------------------------
 Makefile.am    |    7 +----
 bootstrap.conf |    2 +-
 configure.ac   |   14 ---------
 5 files changed, 4 insertions(+), 107 deletions(-)
 delete mode 100644 GNUmakefile

diff --git a/.gitignore b/.gitignore
index b5c507e..c5d7a01 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,6 +10,7 @@
 .version
 ABOUT-NLS
 ChangeLog
+GNUmakefile
 ID
 INSTALL
 Makefile
@@ -50,6 +51,7 @@ lib/libcoreutils.a
 lib/printf.c
 lib/progname.c
 lib/progname.h
+lib/selinux
 m4/.cvsignore
 m4/.gitignore
 po/*.gmo
diff --git a/GNUmakefile b/GNUmakefile
deleted file mode 100644
index 38dd126..0000000
--- a/GNUmakefile
+++ /dev/null
@@ -1,86 +0,0 @@
-# Having a separate GNUmakefile lets me `include' the dynamically
-# generated rules created via cfg.mk (package-local configuration)
-# as well as maint.mk (generic maintainer rules).
-# This makefile is used only if you run GNU Make.
-# It is necessary if you want to build targets usually of interest
-# only to the maintainer.
-
-# Copyright (C) 2001, 2003, 2006-2008 Free Software Foundation, Inc.
-
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Systems where /bin/sh is not the default shell need this.  The $(shell)
-# command below won't work with e.g. stock DOS/Windows shells.
-ifeq ($(wildcard /bin/s[h]),/bin/sh)
-SHELL = /bin/sh
-else
-# will be used only with the next shell-test line, then overwritten
-# by a configured-in value
-SHELL = sh
-endif
-
-# If the user runs GNU make but has not yet run ./configure,
-# give them a diagnostic.
-_have-Makefile := $(shell test -f Makefile && echo yes)
-ifeq ($(_have-Makefile),yes)
-
-# Make tar archive easier to reproduce.
-export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner
-
-include Makefile
-
-# Some projects override e.g., _autoreconf here.
--include $(srcdir)/cfg.mk
-include $(srcdir)/maint.mk
-
-# Allow cfg.mk to override these.
-_build-aux ?= build-aux
-_autoreconf ?= autoreconf
-
-# Ensure that $(VERSION) is up to date for dist-related targets, but not
-# for others: rerunning autoreconf and recompiling everything isn't cheap.
-_have-git-version-gen := \
-  $(shell test -f $(srcdir)/$(_build-aux)/git-version-gen && echo yes)
-ifeq ($(_have-git-version-gen)0,yes$(MAKELEVEL))
-  _is-dist-target = $(filter-out %clean, \
-    $(filter dist% alpha beta major,$(MAKECMDGOALS)))
-  ifneq (,$(_is-dist-target))
-    _curr-ver := $(shell cd $(srcdir) && ./$(_build-aux)/git-version-gen \
-                   $(srcdir)/.tarball-version)
-    ifneq ($(_curr-ver),$(VERSION))
-      $(info INFO: running autoreconf for new version string: $(_curr-ver))
-      _dummy := $(shell cd $(srcdir) && rm -rf autom4te.cache && 
$(_autoreconf)))
-    endif
-  endif
-endif
-
-else
-
-.DEFAULT_GOAL := abort-due-to-no-makefile
-
-# The package can override .DEFAULT_GOAL to run actions like autoreconf.
--include ./cfg.mk
-include ./maint.mk
-
-abort-due-to-no-makefile:
-       @echo There seems to be no Makefile in this directory.   1>&2
-       @echo "You must run ./configure before running \`make'." 1>&2
-       @exit 1
-
-endif
-
-# Tell version 3.79 and up of GNU make to not build goals in this
-# directory in parallel.  This is necessary in case someone tries to
-# build multiple targets on one command line.
-.NOTPARALLEL:
diff --git a/Makefile.am b/Makefile.am
index e7fc118..91ce284 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -16,7 +16,7 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 SUBDIRS = lib src doc man po tests gnulib-tests
-EXTRA_DIST = cfg.mk maint.mk GNUmakefile \
+EXTRA_DIST = cfg.mk maint.mk \
   .prev-version THANKS-to-translators THANKStt.in \
   .version \
   .vg-suppressions \
@@ -94,11 +94,6 @@ gen-ChangeLog:
 distcheck-hook: check-ls-dircolors
        $(MAKE) my-distcheck
 
-# Arrange to remove the symlink to GNUmakefile in VPATH builds.
-# TODO remove this once automake vs. AC_CONFIG_LINKS issue is fixed.
-distclean-local:
-       if test x"$(VPATH)" != x ; then rm -f GNUmakefile ; fi
-
 DISTCLEANFILES = VERSION
 MAINTAINERCLEANFILES = THANKS-to-translators
 THANKS-to-translators: po/LINGUAS THANKStt.in
diff --git a/bootstrap.conf b/bootstrap.conf
index 452c67b..8bde0ad 100644
--- a/bootstrap.conf
+++ b/bootstrap.conf
@@ -57,7 +57,7 @@ gnulib_modules="
        gettext gettime gettimeofday getugroups getusershell
        git-version-gen
        gitlog-to-changelog
-       gnu-make gnupload
+       gnu-make gnumakefile gnupload
        group-member hard-locale hash hash-pjw host-os human idcache
        inttostr inttypes isapipe
        lchmod lchown lib-ignore linebuffer link-follow
diff --git a/configure.ac b/configure.ac
index 14505fc..0e101a1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -334,20 +334,6 @@ AC_SUBST([CONFIG_STATUS_DEPENDENCIES])
 AM_GNU_GETTEXT([external], [need-formatstring-macros])
 AM_GNU_GETTEXT_VERSION([0.15])
 
-dnl Allow maintainer rules under GNU make even in VPATH builds.  This does
-dnl not work in autoconf 2.61 or earlier, but we don't want to require
-dnl non-maintainers to use unreleased autoconf, hence the version test.
-dnl TODO remove the version check once autoconf 2.62 is released.
-dnl Meanwhile, we must use a shell variable so that we bypass automake's
-dnl attempts to remove the sole copy of GNUmakefile in a non-VPATH build
-dnl during 'make distclean'.
-dnl TODO avoid the shell variable once automake is fixed.
-GNUmakefile=GNUmakefile
-m4_if(m4_version_compare([2.61a.100],
-       m4_defn([m4_PACKAGE_VERSION])), [1], [],
-      [AC_CONFIG_LINKS([$GNUmakefile:$GNUmakefile], [],
-       [GNUmakefile=$GNUmakefile])])
-
 AC_CONFIG_FILES(
   Makefile
   doc/Makefile
-- 
1.5.4


reply via email to

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