From 80bdb2b015a82eb6c96c8622177111592b98869b Mon Sep 17 00:00:00 2001 From: Simon Josefsson Date: Tue, 14 Feb 2006 11:25:31 +0000 Subject: [PATCH] * modules/maintainer-makefile: New module. * build-aux/Makefile.maint: New file, from GNU CoreUtils, although severaly stripped to make it possible to build it up from scratch with reliable tests. * build-aux/GNUmakefile: New file, from GNU CoreUtils with some fixes to permit overriding the default actions when configure and makefile are not available. --- ChangeLog | 12 +++++++++ build-aux/GNUmakefile | 61 +++++++++++++++++++++++++++++++++++++++++++++ build-aux/Makefile.maint | 44 ++++++++++++++++++++++++++++++++ modules/maintainer-makefile | 12 +++++++++ 4 files changed, 129 insertions(+) create mode 100644 build-aux/GNUmakefile create mode 100644 build-aux/Makefile.maint create mode 100644 modules/maintainer-makefile diff --git a/ChangeLog b/ChangeLog index 248a16746..642218aa5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2006-02-14 Simon Josefsson + + * modules/maintainer-makefile: New module. + + * build-aux/Makefile.maint: New file, from GNU CoreUtils, although + severaly stripped to make it possible to build it up from scratch + with reliable tests. + + * build-aux/GNUmakefile: New file, from GNU CoreUtils with some + fixes to permit overriding the default actions when configure and + makefile are not available. + 2006-02-13 Simon Josefsson * gnulib-tool (Usage): Fix --import, from diff --git a/build-aux/GNUmakefile b/build-aux/GNUmakefile new file mode 100644 index 000000000..f8293b258 --- /dev/null +++ b/build-aux/GNUmakefile @@ -0,0 +1,61 @@ +# Having a separate GNUmakefile lets me `include' the dynamically +# generated rules created via Makefile.maint as well as Makefile.maint itself. +# 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 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 2 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, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +# 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 + +# Make tar archive easier to reproduce. +export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner + +# Ran autoreconf and configure or not? +have-Makefile := $(shell test -f Makefile && echo yes) +ifeq ($(have-Makefile),yes) + +include Makefile +-include $(srcdir)/Makefile.cfg +include $(srcdir)/Makefile.maint + +else + +.DEFAULT_GOAL := abort-due-to-no-makefile + +-include ./Makefile.cfg +include ./Makefile.maint + +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/build-aux/Makefile.maint b/build-aux/Makefile.maint new file mode 100644 index 000000000..be933983b --- /dev/null +++ b/build-aux/Makefile.maint @@ -0,0 +1,44 @@ +# -*-Makefile-*- +# This Makefile fragment is intended to be useful by any GNU-like project. +# This file originate from coreutils, CPPI, Bison, and Autoconf. + +## Copyright (C) 2001-2006 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 2, 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, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +## 02110-1301, USA. + +# List of all C-like source code files that will be tested for +# stylistic "errors". You may want to define this to something +# more complex in Makefile.cfg. +C_SOURCES ?= $(shell find . -name '*.[chly]') + +# Add some more files to check, typically set in Makefile.cfg. +C_SOURCES += $(C_SOURCES_ADD) + +# Do not save the original name or timestamp in the .tar.gz file. +# Use --rsyncable if available. +gzip_rsyncable := \ + $(shell gzip --help|grep rsyncable >/dev/null && echo --rsyncable) +GZIP_ENV = '--no-name --best $(gzip_rsyncable)' + +# Prevent programs like 'sort' from considering distinct strings to be equal. +# Doing it here saves us from having to set LC_ALL elsewhere in this file. +export LC_ALL = C + +# Casting arguments to free is never necessary. +sc_cast_of_argument_to_free: + @grep -nE '\&2; \ + exit 1; } || : diff --git a/modules/maintainer-makefile b/modules/maintainer-makefile new file mode 100644 index 000000000..ca44d12e4 --- /dev/null +++ b/modules/maintainer-makefile @@ -0,0 +1,12 @@ +Description: +Helper GNUmakefile with syntax checks, build improvements, etc. + +Files: +build-aux/GNUmakefile +build-aux/Makefile.maint + +License: +GPLed build tool + +Maintainer: +all -- 2.11.0