+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
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
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
VMS_function = function;
+ VMS_member_date = (time_t) -1;
lbr$get_index (&VMS_lib_idx, &index, VMS_get_member_info, 0);
/* Undo the damage. */
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.
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)
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
;;
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
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
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
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;
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
/* 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;
const char *name;
{
#ifndef HAVE_SYS_SIGLIST
- sys_siglist[number] = name;
-#endif
- sig_table[sig_table_nelts].number = number;
- sig_table[sig_table_nelts++].abbrev = abbrev;
+ /* 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
+ if (sig_table_nelts < SIG_TABLE_SIZE)
+ {
+ sig_table[sig_table_nelts].number = number;
+ sig_table[sig_table_nelts++].abbrev = abbrev;
+ }
}
void