* Updates for automake 1.4 and autoconf 2.13

* Check for a libc version of GNU glob and, if found, don't use the local
  glob headers.
* Fix a bug in OpenVMS archive handling.
* Fix a bug in VMS siglist processing.
This commit is contained in:
Paul Smith 1999-02-19 18:07:49 +00:00
parent 5808507144
commit 84f38c9c6f
7 changed files with 101 additions and 34 deletions

View file

@ -1,3 +1,38 @@
1999-02-19 Paul D. Smith <psmith@gnu.org>
* configure.in: Check to see if the GNU glob library is already
installed on the system. If so, _don't_ add -I./glob to the
compile line. Using the system glob code with the local headers
is very bad mojo!
Rewrite SCCS macros to use more autoconf facilities.
* Makefile.am: Move -Iglob out of INCLUDES; it'll get added to
CPPFLAGS by configure now.
Automake 1.4 introduced its own "include" feature which conflicts
with the maintMakefile stuff. A hack that seems to work is add a
space before the include :-/.
* build.template: Move -Iglob out of the compile line; it'll get
added to CPPFLAGS by configure now.
1999-02-16 Glenn D. Wolf <Glenn_Wolf@email.sps.mot.com>
* arscan.c (ar_scan): [VMS] Initialized VMS_member_date before
calling lbr$get_index since if the archive is empty,
VMS_get_member_info won't get called at all, and any leftover date
will be used. This bug shows up if any member of any archive is
made, followed by a dependency check on a different, empty
archive.
1998-11-30 Paul D. Smith <psmith@gnu.org>
* signame.c (init_sig): Check the sizes of signals being set up to
avoid array overwrites (if the system headers have problems).
1998-11-17 Paul D. Smith <psmith@gnu.org>
* read.c (record_files): Clean up some indentation.
1998-10-13 Paul D. Smith <psmith@gnu.org>
* job.c (new_job): If the command list resolves to empty (through

View file

@ -15,7 +15,7 @@ make_LDADD = @LIBOBJS@ @ALLOCA@ glob/libglob.a
info_TEXINFOS = make.texinfo
man_MANS = make.1
INCLUDES = -I$(srcdir)/glob -DLIBDIR=\"$(libdir)\" -DINCLUDEDIR=\"$(includedir)\"
INCLUDES = -DLIBDIR=\"$(libdir)\" -DINCLUDEDIR=\"$(includedir)\"
BUILT_SOURCES = README build.sh.in
@ -130,5 +130,7 @@ check-regression: all
if MAINT_MAKEFILE
# Note this requires GNU make. Not to worry, since it will only be included
# in the Makefile if we're in the maintainer's environment.
include $(srcdir)/maintMakefile
# Ulp! Need a leading space to "hide" this include from automake's new (in
# 1.4) include feature :(
include $(srcdir)/maintMakefile
endif

View file

@ -177,6 +177,7 @@ ar_scan (archive, function, arg)
VMS_function = function;
VMS_member_date = (time_t) -1;
lbr$get_index (&VMS_lib_idx, &index, VMS_get_member_info, 0);
/* Undo the damage. */

View file

@ -51,7 +51,7 @@ objs="%objs% remote-${REMOTE}.o ${extras} ${ALLOCA}"
for file in `echo ${objs} | sed 's/\.o/.c/g'`; do
echo compiling ${file}...
$CC $defines $CPPFLAGS $CFLAGS \
-c -I. -I${srcdir} -I${srcdir}/glob ${srcdir}/$file
-c -I. -I${srcdir} ${srcdir}/$file
done
# The object files were actually all put in the current directory.

View file

@ -1,6 +1,6 @@
dnl Process this file with autoconf to produce a configure script.
AC_REVISION([$Id$])
AC_PREREQ(2.12)dnl dnl Minimum Autoconf version required.
AC_PREREQ(2.13)dnl dnl Minimum Autoconf version required.
AC_INIT(vpath.c)dnl dnl A distinctive file to look for in srcdir.
AM_INIT_AUTOMAKE(make, 3.77.90)
@ -16,7 +16,6 @@ AC_PROG_INSTALL
AC_CHECK_PROG(AR, ar, ar, ar)
AC_PROG_RANLIB
AC_PROG_CPP dnl Later checks need this.
dnl AC_ARG_PROGRAM -- implied by AM_INIT_AUTOMAKE; gives errors if run twice.
AC_AIX
AC_ISC_POSIX
AC_MINIX
@ -127,26 +126,51 @@ AC_ARG_WITH(customs,
;;
esac])
echo checking for location of SCCS get command
AC_CACHE_CHECK(for location of SCCS get command, make_cv_path_sccs_get, [
if test -f /usr/sccs/get; then
SCCS_GET=/usr/sccs/get
AC_DEFINE(SCCS_GET, "/usr/sccs/get")
make_cv_path_sccs_get=/usr/sccs/get
else
SCCS_GET=get
AC_DEFINE(SCCS_GET, "get")
fi
make_cv_path_sccs_get=get
fi])
AC_DEFINE_UNQUOTED(SCCS_GET,["$make_cv_path_sccs_get"])
ac_clean_files="$ac_clean_files s.conftest conftoast" # Remove these later.
if ( /usr/sccs/admin -n s.conftest || admin -n s.conftest ) >/dev/null 2>&1 &&
test -f s.conftest; then
# We successfully created an SCCS file.
echo checking if SCCS get command understands -G
if $SCCS_GET -Gconftoast s.conftest >/dev/null 2>&1 &&
test -f conftoast; then
AC_DEFINE(SCCS_GET_MINUS_G)
fi
AC_CACHE_CHECK(if SCCS get command understands -G, make_cv_sys_get_minus_G, [
if $make_cv_path_sccs_get -Gconftoast s.conftest >/dev/null 2>&1 &&
test -f conftoast; then
make_cv_sys_get_minus_G=yes
else
make_cv_sys_get_minus_G=no
fi])
case "$make_cv_sys_get_minus_G" in
yes) AC_DEFINE(SCCS_GET_MINUS_G);;
esac
fi
rm -f s.conftest conftoast
AC_MSG_CHECKING(if system libc has GNU glob)
AC_CACHE_VAL(make_cv_sys_gnu_glob, [
AC_TRY_CPP([
#include <glob.h>
#include <fnmatch.h>
#define GLOB_INTERFACE_VERSION 1
#if !defined _LIBC && defined __GNU_LIBRARY__ && __GNU_LIBRARY__ > 1
# include <gnu-versions.h>
# if _GNU_GLOB_INTERFACE_VERSION == GLOB_INTERFACE_VERSION
# error have gnu glob
# endif
#endif
], make_cv_sys_gnu_glob=no, make_cv_sys_gnu_glob=yes)])
case "$make_cv_sys_gnu_glob" in
yes) AC_MSG_RESULT(yes) ;;
no) AC_MSG_RESULT([no; using local copy])
CPPFLAGS="$CPPFLAGS -I$srcdir/glob" ;;
esac
AC_OUTPUT(Makefile glob/Makefile build.sh)
case "$make_badcust" in
@ -173,8 +197,8 @@ case "$ac_cv_func_waitpid/$ac_cv_func_wait3" in
no/no) echo
echo "WARNING: Your system has neither waitpid() nor wait3()."
echo " Without one of these, signal handling is unreliable."
echo " You should be aware that run GNU make with -j could"
echo " result in erratic behavior."
echo " You should be aware that running GNU make with -j"
echo " could result in erratic behavior."
echo ;;
esac

19
read.c
View file

@ -1597,16 +1597,13 @@ record_files (filenames, pattern, pattern_percent, deps, cmds_started,
if (f->double_colon)
fatal (flocp,
"target file `%s' has both : and :: entries",
f->name);
"target file `%s' has both : and :: entries", f->name);
/* If CMDS == F->CMDS, this target was listed in this rule
more than once. Just give a warning since this is harmless. */
if (cmds != 0 && cmds == f->cmds)
error
(flocp,
"target `%s' given more than once in the same rule.",
f->name);
error (flocp, "target `%s' given more than once in the same rule.",
f->name);
/* Check for two single-colon entries both with commands.
Check is_target so that we don't lose on files such as .c.o
@ -1614,11 +1611,10 @@ record_files (filenames, pattern, pattern_percent, deps, cmds_started,
else if (cmds != 0 && f->cmds != 0 && f->is_target)
{
error (&cmds->fileinfo,
"warning: overriding commands for target `%s'",
f->name);
"warning: overriding commands for target `%s'", f->name);
error (&f->cmds->fileinfo,
"warning: ignoring old commands for target `%s'",
f->name);
"warning: ignoring old commands for target `%s'",
f->name);
}
f->is_target = 1;
@ -1699,8 +1695,7 @@ record_files (filenames, pattern, pattern_percent, deps, cmds_started,
we don't lose on default suffix rules or makefiles. */
if (f != 0 && f->is_target && !f->double_colon)
fatal (flocp,
"target file `%s' has both : and :: entries",
f->name);
"target file `%s' has both : and :: entries", f->name);
f = enter_file (name);
/* If there was an existing entry and it was a double-colon
entry, enter_file will have returned a new one, making it the

View file

@ -70,12 +70,14 @@ extern char *sys_siglist[];
/* Table of abbreviations for signals. Note: A given number can
appear more than once with different abbreviations. */
#define SIG_TABLE_SIZE (NSIG*2)
typedef struct
{
int number;
const char *abbrev;
} num_abbrev;
static num_abbrev sig_table[NSIG*2];
static num_abbrev sig_table[SIG_TABLE_SIZE];
/* Number of elements of sig_table used. */
static int sig_table_nelts = 0;
@ -88,10 +90,18 @@ init_sig (number, abbrev, name)
const char *name;
{
#ifndef HAVE_SYS_SIGLIST
sys_siglist[number] = name;
/* If this value is ever greater than NSIG it seems like it'd be a bug in
the system headers, but... better safe than sorry. We know, for
example, that this isn't always true on VMS. */
if (number >= 0 && number < NSIG)
sys_siglist[number] = name;
#endif
sig_table[sig_table_nelts].number = number;
sig_table[sig_table_nelts++].abbrev = abbrev;
if (sig_table_nelts < SIG_TABLE_SIZE)
{
sig_table[sig_table_nelts].number = number;
sig_table[sig_table_nelts++].abbrev = abbrev;
}
}
void