Fix automatic makefile dependencies for generated ld/e*.c
authorAlan Modra <amodra@gmail.com>
Tue, 23 Apr 2019 07:12:27 +0000 (16:42 +0930)
committerAlan Modra <amodra@gmail.com>
Tue, 23 Apr 2019 07:32:44 +0000 (17:02 +0930)
Commit c40e31a121 broke --enable-dependency-tracking=no.

* Makefile.am (GENDEPDIR): New var, used..
(GENSCRIPTS): ..here.
* Makefile.in: Regenerate.
* genscripts.sh: Test for $DEPDIR set before every use.

ld/ChangeLog
ld/Makefile.am
ld/Makefile.in
ld/genscripts.sh

index 76b202bccb44b47b0c6e4da84ae815d3503cad6e..4b4956e9ccc99c5a1fe33bca5d0bba63b382d902 100644 (file)
@@ -1,3 +1,10 @@
+2019-04-23  Alan Modra  <amodra@gmail.com>
+
+       * Makefile.am (GENDEPDIR): New var, used..
+       (GENSCRIPTS): ..here.
+       * Makefile.in: Regenerate.
+       * genscripts.sh: Test for $DEPDIR set before every use.
+
 2019-04-22  Matthew Fortune  <matthew.fortune@mips.com>
 
        * testsuite/ld-mips-elf/mips-elf-flags.exp: Fix expected ASEs
index 0e9dc862e55974045e1a410679a75411419d146c..4a0bb152271cfdda3bef453c3353d958b9def93d 100644 (file)
@@ -152,6 +152,7 @@ AM_CPPFLAGS = -I. -I$(srcdir) -I../bfd -I$(BFDDIR) -I$(INCDIR) \
 BFDLIB = ../bfd/libbfd.la
 LIBIBERTY = ../libiberty/libiberty.a
 
+# These all start with e so 'make clean' can find them.
 ALL_EMULATION_SOURCES = \
        eaix5ppc.c \
        eaix5rs6.c \
@@ -611,9 +612,12 @@ ldemul-list.h: Makefile
 stringify.sed: ${srcdir}/emultempl/$(STRINGIFY)
          cp ${srcdir}/emultempl/$(STRINGIFY) stringify.sed
 
-# These all start with e so 'make clean' can find them.
-
-GENSCRIPTS = $(SHELL) $(srcdir)/genscripts.sh "${srcdir}" "${libdir}" "${prefix}" "${exec_prefix}" @host@ @target@ @target_alias@ "${DEPDIR}" "${LIB_PATH}" "@EMULATION_LIBPATH@" "@NATIVE_LIB_DIRS@" @use_sysroot@ @enable_initfini_array@
+if AMDEP
+  GENDEPDIR=$(DEPDIR)
+else
+  GENDEPDIR=
+endif
+GENSCRIPTS = $(SHELL) $(srcdir)/genscripts.sh "${srcdir}" "${libdir}" "${prefix}" "${exec_prefix}" @host@ @target@ @target_alias@ "$(GENDEPDIR)" "${LIB_PATH}" "@EMULATION_LIBPATH@" "@NATIVE_LIB_DIRS@" @use_sysroot@ @enable_initfini_array@
 GEN_DEPENDS = $(srcdir)/genscripts.sh stringify.sed
 
 @TDIRS@
index e71b4d4ab2e0c059b08bccfa2efd06bc6cfb3fd1..fbccfbc9d7ca8223af3088bc29ee49d19f612c11 100644 (file)
@@ -638,6 +638,8 @@ AM_CPPFLAGS = -I. -I$(srcdir) -I../bfd -I$(BFDDIR) -I$(INCDIR) \
 
 BFDLIB = ../bfd/libbfd.la
 LIBIBERTY = ../libiberty/libiberty.a
+
+# These all start with e so 'make clean' can find them.
 ALL_EMULATION_SOURCES = \
        eaix5ppc.c \
        eaix5rs6.c \
@@ -979,9 +981,9 @@ OFILES = ldgram.@OBJEXT@ ldlex-wrapper.@OBJEXT@ lexsup.@OBJEXT@ ldlang.@OBJEXT@
 STAGESTUFF = *.@OBJEXT@ ldscripts/* e*.c
 SRC_POTFILES = $(CFILES) $(HFILES)
 BLD_POTFILES = $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES)
-
-# These all start with e so 'make clean' can find them.
-GENSCRIPTS = $(SHELL) $(srcdir)/genscripts.sh "${srcdir}" "${libdir}" "${prefix}" "${exec_prefix}" @host@ @target@ @target_alias@ "${DEPDIR}" "${LIB_PATH}" "@EMULATION_LIBPATH@" "@NATIVE_LIB_DIRS@" @use_sysroot@ @enable_initfini_array@
+@AMDEP_FALSE@GENDEPDIR = 
+@AMDEP_TRUE@GENDEPDIR = $(DEPDIR)
+GENSCRIPTS = $(SHELL) $(srcdir)/genscripts.sh "${srcdir}" "${libdir}" "${prefix}" "${exec_prefix}" @host@ @target@ @target_alias@ "$(GENDEPDIR)" "${LIB_PATH}" "@EMULATION_LIBPATH@" "@NATIVE_LIB_DIRS@" @use_sysroot@ @enable_initfini_array@
 GEN_DEPENDS = $(srcdir)/genscripts.sh stringify.sed
 
 # We need this for automake to use YLWRAP.
index 7ee03d2b1ce96c090b5a3838745383c5d77778e0..cb2b081e9e975fb5e797f822958c8940760d8b6e 100755 (executable)
@@ -129,11 +129,15 @@ TOOL_LIB=$2
 
 source_sh()
 {
-  echo $1 >> ${DEPDIR}/e${EMULATION_NAME}.Tc
+  if test -n "${DEPDIR}"; then
+    echo $1 >> ${DEPDIR}/e${EMULATION_NAME}.Tc
+  fi
   . $1
 }
 
-rm -f ${DEPDIR}/e${EMULATION_NAME}.Tc
+if test -n "${DEPDIR}"; then
+  rm -f ${DEPDIR}/e${EMULATION_NAME}.Tc
+fi
 
 # Include the emulation-specific parameters:
 CUSTOMIZER_SCRIPT="${srcdir}/emulparams/${EMULATION_NAME}.sh"
@@ -639,12 +643,14 @@ fi
 > e${EMULATION_NAME}.c
 source_em ${srcdir}/emultempl/${TEMPLATE_NAME-generic}.em
 
-ecdeps=
-for dep in `cat ${DEPDIR}/e${EMULATION_NAME}.Tc`; do
-  case " $ecdeps " in
-    *" $dep "*): ;;
-    *) ecdeps="$ecdeps $dep" ;;
-  esac
-done
-rm -f ${DEPDIR}/e${EMULATION_NAME}.Tc
-echo "e${EMULATION_NAME}.c:${ecdeps}" > ${DEPDIR}/e${EMULATION_NAME}.Pc
+if test -n "${DEPDIR}"; then
+  ecdeps=
+  for dep in `cat ${DEPDIR}/e${EMULATION_NAME}.Tc`; do
+    case " $ecdeps " in
+      *" $dep "*): ;;
+      *) ecdeps="$ecdeps $dep" ;;
+    esac
+  done
+  rm -f ${DEPDIR}/e${EMULATION_NAME}.Tc
+  echo "e${EMULATION_NAME}.c:${ecdeps}" > ${DEPDIR}/e${EMULATION_NAME}.Pc
+fi