From: Dmitry Goncharov Date: Sat, 17 Apr 2021 21:50:07 +0000 (-0400) Subject: [SV 60378] Don't add duplicate default search directories X-Git-Tag: 4.3.90~172 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5e829188d3595c8749f9e7bcbe4b515c085779a6;p=thirdparty%2Fmake.git [SV 60378] Don't add duplicate default search directories Depending on how make was configured it may add duplicate directories in the default include search path: avoid this. (Tweaked by psmith@gnu.org) * configure.ac: Set AM variable KNOWN_PREFIX if --prefix is known * Makefile.am: Only set INCLUDEDIR if prefix is not known * read.c [default_include_directories]: Only add INCLUDEDIR if set --- diff --git a/Makefile.am b/Makefile.am index 2b5765e3..9be60fec 100644 --- a/Makefile.am +++ b/Makefile.am @@ -73,8 +73,12 @@ make_LDADD = $(LIBOBJS) $(_GUILE_LIBS) lib/libgnu.a $(GETLOADAVG_LIBS) \ localedir = $(datadir)/locale AM_CPPFLAGS = -Isrc -I$(top_srcdir)/src -Ilib -I$(top_srcdir)/lib \ - -DLIBDIR=\"$(libdir)\" -DINCLUDEDIR=\"$(includedir)\" \ - -DLOCALEDIR=\"$(localedir)\" + -DLIBDIR=\"$(libdir)\" -DLOCALEDIR=\"$(localedir)\" + +# If prefix is not a standard location, look in prefix as well +if !KNOWN_PREFIX + AM_CPPFLAGS += -DINCLUDEDIR=\"$(includedir)\" +endif AM_CFLAGS = $(_GUILE_CFLAGS) diff --git a/configure.ac b/configure.ac index 7d8f9ef9..6ad20949 100644 --- a/configure.ac +++ b/configure.ac @@ -523,6 +523,11 @@ AS_IF([test "x$make_cv_posix_spawn" = xno && test "x$user_posix_spawn" = xyes], echo ]) +# autoconf initializes $prefix to NONE. +AM_CONDITIONAL([KNOWN_PREFIX], + [test "x$prefix" = xNONE -o "x$prefix" = x/usr/local \ + -o "x$prefix" = x/usr/gnu -o "x$prefix" = x/usr]) + # Specify what files are to be created. AC_CONFIG_FILES([Makefile build.cfg lib/Makefile po/Makefile.in doc/Makefile \ tests/config-flags.pm]) diff --git a/src/read.c b/src/read.c index c0e3315f..4b285c57 100644 --- a/src/read.c +++ b/src/read.c @@ -107,7 +107,9 @@ static const char *default_include_directories[] = This is defined as a placeholder. */ # define INCLUDEDIR "." #endif +#if defined(INCLUDEDIR) INCLUDEDIR, +#endif #ifndef _AMIGA "/usr/gnu/include", "/usr/local/include",